Java and Mathematics; modes, means, and extent.
poweruserm at live.com.au
Mon Apr 30 07:32:39 UTC 2018
What sorts of changes are possible in Java 2 SE
in the areas of floating point, arithmetic, and mathematics?
The whole thing is, is that certain floating point operators,
upon two floating point types, with the base 10 solution
within range accuracy or not, produces overflow and underflow.
With no option to enforce range accuracy and turn the denormals
There is the case of javax.vecmath.Vector3d, which uses non range
accurate presumption to try and form a denormal vulnerable results
for cross products.
If you need numbers and operations, to range accuracy, beyond the extend
of long, or decimal numbers more precise than double, you then need to use other types.
However the problem is that BigInteger and BigDecimal, or any available other types,
don't allow the use of operators. BigInteger and BigDecimal types also aren't pro extensible
inside virtual machine memory either, being heir to an array length limit; they are not pro extensible.
Also combined with the fact that there isn't an Oracle robust StrictMath equivalent for BigDecimal,
for trigonometry, advanced powers, nth root, pi and e.
All of these problems are serious reductions in development and maintanence time, legibility,
even cross language code legibility for less Java centric folk. However the set of these problems
also includes a forbidding of the extent of allowed numbers (certainly in 64 bit Java).
More information about the adoption-discuss