Fw: Question about JEP 306. (original) (raw)
joe darcy joe.darcy at oracle.com
Wed Dec 6 23:15:57 UTC 2017
- Previous message: Fw: Question about JEP 306.
- Next message: Change in properties for logging: deliberate?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
PS With a more concrete example below....
On 12/5/2017 6:55 PM, Joseph D. Darcy wrote:
Hello,
On 12/5/2017 5:07 PM, David Holmes wrote: Adding core-libs-dev as both mailing lists are named in this JEP.
[snip]
It should also be the case that there should be a round half up for the decimal place beyond the last one in the float or double range, to help support all notions of
(pow(sqrt(3),2) == 3) //true Putting aside non-finite values like NaN and infinities, this identity is difficult to have hold in any fixed-precision system, including IEEE-style floating-point. The mathematical square root function in general returns irrational results for rational inputs so the result is fundamentally approximated. If my rusty calculus is correct, for x >= 0.25, the derivative of sqrt of x has magnitude less than one and is positive, meaning there exists some set of multiple input values that must get mapped to the same output value. Therefore, the information to do an exact inverse operation based on the output is not present just from a pigeon hole principle argument.
Consider the square root function on the interval [1, 2), that is the half-open region that includes 1 but does not include 2. This corresponds to the floating-point numbers with an exponent of 0. There are 2^52 floating-point values with this exponent. Mathematically, sqrt(1) = 1 and sqrt(2) ~= 1.414... Therefore, in floating-point, for values 1.0 <= x < 2.0, the result of sqrt(x) also has an exponent of 0. Now we see that there are 2^52 floating-point values with an exponent of 0 and taking a square root of those values will only yield about 0.414 * 2^52 distinct answers. Therefore, we see that using a fixed floating-point precision, the square root function on [1.0, 2.0) cannot be inverted losslessly since only a minority of the input elements have distinct answers.
HTH,
-Joe
- Previous message: Fw: Question about JEP 306.
- Next message: Change in properties for logging: deliberate?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]