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

Reply via email to