On Tue, 4 Oct 2022 17:36:56 GMT, Chris Hennick <d...@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

@JimLaskey May I please have a review on this?

-------------

PR: https://git.openjdk.org/jdk/pull/8131

Reply via email to