> The `default` method `nextDouble(double origin, double bound)` in > `java.util.random.RandomGenerator` aims at generating a uniformly and > spatially equidistributed random `double` in the left-closed and right-open > range [`origin`, `bound`). It does so by applying the affine transform > `origin + (bound - origin) * r` to a uniformly and spatially equidistributed > random `double` `r` in the range [0, 1). > > Since floating-point arithmetic suffers from small but noticeable rounding > errors, this ends up slightly deforming the distribution of `r` when applying > the affine transform.
Raffaello Giulietti has updated the pull request incrementally with one additional commit since the last revision: 8302987: Add uniform and spatially equidistributed bounded float/double streams to RandomGenerator Refactored to have just one public API point. ------------- Changes: - all: https://git.openjdk.org/jdk/pull/12719/files - new: https://git.openjdk.org/jdk/pull/12719/files/2d1f8e9c..a38cb827 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=12719&range=03 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=12719&range=02-03 Stats: 137 lines in 1 file changed: 12 ins; 98 del; 27 mod Patch: https://git.openjdk.org/jdk/pull/12719.diff Fetch: git fetch https://git.openjdk.org/jdk pull/12719/head:pull/12719 PR: https://git.openjdk.org/jdk/pull/12719