To core-libs-dev, and Glavo, given this inner nature of C++, which I had not seen, I do renege those code snippets.
It is still the case that I and others need Java floating point and StrictMath (the key double type calculator class) to be repaired. It has been made clear to us by a number of publicly available sources, irrespective of their age, from their date of publication and going forwards, that with registry additions already present in Java relevant hardware, being SSE and beyond, that repair can and must be wrought for Java float and double numeric types utilised in both Java SE and OpenJDK's runtime environments. This includes their present ranges, whenever arithmetic operations at all or certain method calls involving them are made, where the results manage to straddle the edge of those ranges. float from 1.40129846432481707e-45 to 3.40282346638528860e+38 (positive or negative). double from 4.94065645841246544e-324d to 1.79769313486231570e+308d (positive or negative). As I attempted to submit in my previous message to core-libs-dev, IEEE 754 is silent on pertinent matters around decimal arithmetic, mainly certain end facts concluding that binary and decimal use in computer software need to have objectivity. The proper precedent to draw from is not a standard with a small "blind spot", but the phenomenon which simply states that both information and behaviour can be encoded into a computer, so that such a machine can behave by means of that information rapidly, consistently, and usefully (therefore meaningfully), to the advantage of humans. Range complete decimal mathematics is for humans, and binary mathematics is for computers. Therefore, for a decimal result to have proper meaning, it must be entirely correct within its (rational, truncated) range. The most efficient and only meaningful thing to do is to utilise additional (SEE and similar) registers, with appropriate sub-java code, to use all registry space, including the extra space if needed, to produce range accurate Java results via improved operational logic. It is known that having a little more registry space past the number (result range) limit, for use and consideration, is the only range, base-10 perfect way to go. It is certainly better than the available class approaches, which waste memory, speed, and lack important and appropriate auxiliary use options. In recent times, it has been the case that there are upstream and downstream vendors of the OpenJDK. Discussions with them have proven impossible, since all of them only agree to conform and derive from whatever the OpenJDK and the JCP choose to do. May the Java Community Process reconsider the present floating point operations and method calls situation, based on an imperfect standard and improper workaround, and provide corrected, defaulting or specifying-compatible waya for Java floating point arithmetic and Calculator class method results to always cohere in their ranges, without denormal and pronormal inclusion? > Message: 2 > Date: Fri, 15 Apr 2022 13:37:03 +0800 > From: Glavo zjx001...@gmail.com > > To: "sminervini.prism" sminervini.pr...@protonmail.com > > Cc: "core-libs-dev@openjdk.java.net" core-libs-dev@openjdk.java.net > > Subject: Re: OpenJDK or SE Java Floating Point Options? > Message-ID: > CAJL5A3nhQOjuH2kktQrEugqxgHHzM=hch946xp02gzkmdmk...@mail.gmail.com > > Content-Type: text/plain; charset="UTF-8" > > Your code snippet C++ shows different results than Java, simply because > cout doesn't output full precision numbers. > > To see accurate results in C++, add this line of code at the beginning of > the main function (need to import header file `iomanip`): > > std::cout << std::setprecision(20); > > > After this, you can see the correct value of floating point numbers in C++.