RFR: 8284493: Improve computeNextExponential tail performance and accuracy [v16]
Chris Hennick
duke at openjdk.org
Sun Jan 15 09:00:15 UTC 2023
On Tue, 4 Oct 2022 17:36:56 GMT, Chris Hennick <duke at openjdk.org> wrote:
>> This PR improves both the worst-case performance of `nextExponential` and `nextGaussian` and the distribution of output at the tails. It fixes the following imperfections:
>>
>> * Repeatedly adding DoubleZigguratTables.exponentialX0 to extra causes a rounding error to accumulate at the tail of the distribution (probably starting around `2*exponentialX0 == 0x1.e46eff20739afp3 ~ 15.1`); this PR fixes that by tracking the multiple of exponentialX0 as a long. (This distortion is worst when `x > 0x1.0p56` since in that case, a rounding error means `extra + x == extra`.
>> * Reduces several equations using `Math.fma`. (This will almost certainly improve performance, and may or may not improve output distribution.)
>> * Uses the newly-extracted `computeWinsorizedNextExponential` function to prevent `nextGaussian` from going into the `nextExponential` tail twice.
>
> Chris Hennick has updated the pull request incrementally with one additional commit since the last revision:
>
> Add parameter to enable/disable fixed PRNG seed
Keep open.
On Sat, Jan 14, 2023, 14:15 bridgekeeper[bot] ***@***.***>
wrote:
> @Pr0methean <https://github.com/Pr0methean> This pull request has been
> inactive for more than 4 weeks and will be automatically closed if another
> 4 weeks passes without any activity. To avoid this, simply add a new
> comment to the pull request. Feel free to ask for assistance if you need
> help with progressing this pull request towards integration!
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/openjdk/jdk/pull/8131#issuecomment-1382939712>, or
> unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ABF3NBO4MWUYIPGXBF7LBCDWSMQRHANCNFSM5SWZWANA>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
-------------
PR: https://git.openjdk.org/jdk/pull/8131
More information about the core-libs-dev
mailing list