Al Chou wrote:

--- "Mark R. Diggory" <[EMAIL PROTECTED]> wrote:


(1) Does it seem logical that when working with "n" (or values.length) to use Math.pow(n, x), as positive integers, the risk is actually 'integer overflow' when the array representing the number of cases gets very large, for which the log implementation of Math.pow would help retain greater numerical accuracy?



values.length would have to be > sqrt( Integer.MAX_VALUE ) ~ 46340 in order to run into that overflow, but I can imagine some users blithely using a 64k-element array.

Or in UnivariateImpl's memoryless Inifinite window case, based on the number of times addValue(...) has been called.

(2) In the opposite case from below, where values[i] are very large, doesn't the log based Math.pow(values[i], 2.0) again work in our favor to reduce overflow? Seems a catch22.

More than anyone really ever wanted to know about Math.pow's implementation:
http://www.netlib.org/fdlibm/e_pow.c



I notice that java.lang.StrictMath explicitly mentions fdlibm. Does
java.lang.Math also use fdlibm's routines?


Yes, Math deligates to StrictMath in many cases, which then uses native methods to call fdlibm. Math.pow is one of these cases.

Maybe we should just trust Math.pow (or StrictMath.pow?) by default until we
create some test cases that give us cause to doubt it....

Al




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to