- static double randDouble01(RNG rng = RNG()) {
- return std::generate_canonical<double, std::numeric_limits<double>::digits>
- (rng);
+ static double randDouble01(RNG&& rng) {
+ return std::generate_canonical<double, std::numeric_limits<double>::digits>(
+ rng);
+ }
+
+ /**
+ * Returns a double in [min, max), if min == max, returns 0.
+ */
+ static double randDouble(double min, double max) {
+ return randDouble(min, max, ThreadLocalPRNG());