mirror of
https://github.com/php/php-src.git
synced 2026-04-23 16:08:35 +02:00
582b724c35
The reference implementation of the "Drawing Random Floating-Point Numbers from an Interval" paper contains two mistakes that will result in erroneous values being returned under certain circumstances: - For large values of `g` the multiplication of `k * g` might overflow to infinity. - The value of `ceilint()` might exceed 2^53, possibly leading to a rounding error when promoting `k` to double within the multiplication of `k * g`. This commit updates the implementation based on Prof. Goualard suggestions after reaching out to him. It will correctly handle inputs larger than 2^-1020 in absolute values. This limitation will be documented and those inputs possibly be rejected in a follow-up commit depending on performance concerns.