Java Valhalla and Maths support, Floating point
A Z
poweruserm at live.com.au
Thu Mar 8 06:30:20 UTC 2018
I have found that double and float types in java are heirs to arithmetic underflow and overflow at any use.
I have found that presently, floating point is an arithmetic approximation. My problem is that
the java language needs to be changed here, so that one may have arithmetic accuracy with
floats and doubles.
Is Valhalla aiming to rectify the following kinds of shortfalls? It does strike me that
the former code calls in already built software could remain compatible with some further
adjustments.
I have attempted to, and have more carefully described these problems, via the java bugs database:
JDK-8190947
JDK-8197995
JDK-8190991
JDK-8190946
-These types, as things are, must be computationally discarded, used only in terms of push and pull,
and be programmed around using BigDecimal, which will be a waste of memory,
program execution speed, and a total confusion due to the lack of any operator
usage options on BigDecimals.
-It is the case that setting up BigDecimals can be and is presently a circumstantial waste of memory
with very many tasks, combined with the fact that the fact that having to use BigDecimal
method calls is nowhere near as efficient or legible to developers or mathematics and enginner
programmers (and useful with their time) as
+, -, *, /, %, +=,-+,*=,/=,%=, ++, --
.This is a syntax argument largely, but also an instruction argument
since BigDecimals have to be set up or used with an extra, thereby second, call.
-It is the case that every other major language includes both floating point and accuracy mode
options with these two types and or Objects, either as a source code instruction or as a
compiler switch option. These languages at least provide both options for floating
point and mathematical accuracy mode.
There is also a trigonometric and numerics shortfall when it comes to BigDecimal.
Java could, fiarly directly, produce a StrictMath equivalent for BigDecimal,
to return a PI BigDecimal, specified by a BigInteger number of decimal places.
The same thing can be done for e, Euler's constant. However, the square root,
Nth root and powers need to be specified upon a BigDecimal, by means of another BigDecimal.
BigInteger can just be left, in a way.
This Oracle lecture seems to suggest such is possible:
https://www.youtube.com/watch?v=qTKeU_3rhk4
Can someone please reply to me on these things?
Does Valhalla aim to eliminate floating point overflow and underflow somehow?
Could there be some more operator usage included on just the two BigInteger and BigDecimal classes?
If anyone here knows, could overflow and underflow be changed in SE Java where it stands?
More information about the valhalla-dev
mailing list