Hi, I'm currently working on MATH-753, and the underlying accuracy issues. I therefore implemented the Gamma function for Dfps, and came accross a few strange things. For example, althoug the javadoc states that the maximum exponent is 32768, there is no systematic check on this limit. I suppose overflow should happen in the following case {code} DfpField field = new DfpField(40); final Dfp x = field.getOne().power10K(Integer.MAX_VALUE); System.out.println(x); System.out.println(x.isInfinite()); {code}
Instead, what happens is {console} 1.000000000000000000000000000000000000e-4 false {console} The surprising answer comes from the fact that power10K actually increments its integer argument. I do not think the above printout is the expected behavior, am I wrong? I think this is potentially a vast issue, because a quick check seems to indicate that "this.nans == INFINITE" is often checked in class Dfp, but I don't think the statement "this.nans = INFINITE" ever occurs, which would mean that overflow is never dealt with properly. Again, I'm probably wrong, I'd like to have the feeling of someone more used to this class than I am. Sébastien --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org