On 11/2/10 1:16 PM, Gilles Sadowski wrote:
In "MathUtils", the documentation of method "factorialDouble" says that it
will return INFINITY when the result is larger than MAX_VALUE. It also says
that this will happen when n> 170. So, I think that it should be more
appropriate to throw an "ArithmeticException" (as is done in the method
"factorial" when n> 20).
Interesting question. The rationale for the current setup is that there is no
infinity for Integers (nor NaN) so exception is the only option; whereas
infinity is an option for doubles and while we can argue about the absence of
overflow exceptions in Java, returning Infinity on double overflow is
consistent with the Java language spec (4.2.3).
171! is not equal to Infinity, so the returned value is wrong. That's why I
suggest to signal the problem by throwing the exception.
That is inconsistent with the JLS, unless what you are saying is
that 171! is less than Double.MAX_VALUE.
Phil
Gilles
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org