Skip to content

Commit

Permalink
Revert "#7430 implemented multiFactorial"
Browse files Browse the repository at this point in the history
This reverts commit b6cd5c7.
  • Loading branch information
YujingZHG committed Oct 15, 2024
1 parent b6cd5c7 commit 99f97f6
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 81 deletions.
28 changes: 0 additions & 28 deletions guava/src/com/google/common/math/BigIntegerMath.java
Original file line number Diff line number Diff line change
Expand Up @@ -521,33 +521,5 @@ static boolean fitsInLong(BigInteger x) {
return x.bitLength() <= Long.SIZE - 1;
}

/**
* Returns multifactorial of n with step size BigInteger k.
* This is used for large values of n.
*
* @param n the number to compute the multifactorial of. Must be non-negative.
* @param k the step size. Must be positive.
* @return the multifactorial of n with step size k. If none-zero n is less than k then return n, else return one.
* @throws IllegalArgumentException if n is negative or if k is less than 1.
*/
public static BigInteger multiFactorial(int n, int k) {
if (n < 0) {
throw new IllegalArgumentException("n cannot be negative!");
}
if (k < 1) {
throw new IllegalArgumentException("k must be positive!");
}

if (n <= k) {
return n == 0 ? BigInteger.ONE : BigInteger.valueOf(n);
}

BigInteger result = BigInteger.valueOf(n);
for (int i = n - k; i > 1; i -= k) {
result = result.multiply(BigInteger.valueOf(i));
}
return result;
}

private BigIntegerMath() {}
}
27 changes: 0 additions & 27 deletions guava/src/com/google/common/math/IntMath.java
Original file line number Diff line number Diff line change
Expand Up @@ -722,32 +722,5 @@ public static boolean isPrime(int n) {
return LongMath.isPrime(n);
}

/**
* Returns multifactorial of Int n with step size k.
*
* @param n the number to compute. Must be non-negative.
* @param k the step size for the multifactorial. Must be positive.
* @return the multifactorial of n with step size k. If none-zero n is less than k then return n, else return 1.
* @throws IllegalArgumentException if n is negative or if k is less than 1.
*/
public static int multiFactorial(int n, int k) {
if (n < 0) {
throw new IllegalArgumentException("n cannot be negative!");
}
if (k < 1) {
throw new IllegalArgumentException("k must be positive!");
}
if (n <= k) {
return n == 0 ? 1 : n;
}

int result = n;
for (int i = n - k; i > 1; i -= k) {
result *= i;
}
return result;
}

private IntMath() {}

}
26 changes: 0 additions & 26 deletions guava/src/com/google/common/math/LongMath.java
Original file line number Diff line number Diff line change
Expand Up @@ -1346,31 +1346,5 @@ public static double roundToDouble(long x, RoundingMode mode) {
throw new AssertionError("impossible");
}

/**
* Returns multifactorial of int n with step size k.
*
* @param n the number to compute. Must be non-negative.
* @param k the step size must be positive.
* @return the long type multifactorial of n with step size k. If none-zero n is less than k then return (long) n, else return 1L.
* @throws IllegalArgumentException if n is negative or if k is less than 1.
*/
public static long multiFactorial(int n, int k) {
if (n < 0) {
throw new IllegalArgumentException("n cannot be negative!");
}
if (k < 1) {
throw new IllegalArgumentException("k must be positive!");
}
if (n <= k) {
return n == 0 ? 1L : (long)n;
}

long result = n;
for (long i = n - k; i > 1; i -= k) {
result *= i;
}
return result;
}

private LongMath() {}
}

0 comments on commit 99f97f6

Please sign in to comment.