commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Phil Steitz <phil.ste...@gmail.com>
Subject Re: [Math] Factorial
Date Tue, 02 Nov 2010 18:05:54 GMT
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-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message