diff --git a/src/java/org/apache/commons/math/util/MathUtils.java b/src/java/org/apache/commons/math/util/MathUtils.java index 30c35290f..4c0e5b7dc 100644 --- a/src/java/org/apache/commons/math/util/MathUtils.java +++ b/src/java/org/apache/commons/math/util/MathUtils.java @@ -19,7 +19,7 @@ package org.apache.commons.math.util; /** * Some useful additions to the built-in functions in {@link Math}. * - * @version $Revision: 1.19 $ $Date: 2004/06/23 16:26:16 $ + * @version $Revision: 1.20 $ $Date: 2004/10/14 04:01:04 $ */ public final class MathUtils { @@ -348,7 +348,7 @@ public final class MathUtils { * *
* Preconditions:
n > 0
(otherwise
+ * n >= 0
(otherwise
* IllegalArgumentException
is thrown)long
. The
* largest value of n
for which n!
@@ -362,6 +362,7 @@ public final class MathUtils {
* @return n!
* @throws ArithmeticException if the result is too large to be represented
* by a long integer.
+ * @throws IllegalArgumentException if n < 0
*/
public static long factorial(final int n) {
long result = Math.round(factorialDouble(n));
@@ -380,7 +381,7 @@ public final class MathUtils {
*
* * Preconditions:
n > 0
(otherwise
+ * n >= 0
(otherwise
* IllegalArgumentException
is thrown)double
. The
* largest value of n
for which n!
@@ -391,10 +392,11 @@ public final class MathUtils {
*
* @param n argument
* @return n!
+ * @throws IllegalArgumentException if n < 0
*/
public static double factorialDouble(final int n) {
- if (n <= 0) {
- throw new IllegalArgumentException("must have n > 0 for n!");
+ if (n < 0) {
+ throw new IllegalArgumentException("must have n >= 0 for n!");
}
return Math.floor(Math.exp(factorialLog(n)) + 0.5);
}
@@ -403,7 +405,7 @@ public final class MathUtils {
* Returns the natural logarithm of n!.
* * Preconditions:
n > 0
(otherwise
+ * n >= 0
(otherwise
* IllegalArgumentException
is thrown)