1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 20:47:28 +08:00

Fix FastRandom using uint instead of int for NextDouble()

This commit is contained in:
smoogipoo 2018-03-01 16:17:01 +09:00
parent 8f10dc7512
commit 8cfb119383

View File

@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Mania.MathUtils
/// </summary> /// </summary>
internal class FastRandom internal class FastRandom
{ {
private const double uint_to_real = 1.0 / (uint.MaxValue + 1.0); private const double int_to_real = 1.0 / (int.MaxValue + 1.0);
private const uint int_mask = 0x7FFFFFFF; private const uint int_mask = 0x7FFFFFFF;
private const uint y = 842502087; private const uint y = 842502087;
private const uint z = 3579807591; private const uint z = 3579807591;
@ -65,7 +65,7 @@ namespace osu.Game.Rulesets.Mania.MathUtils
/// Generates a random double value within the range [0, 1). /// Generates a random double value within the range [0, 1).
/// </summary> /// </summary>
/// <returns>The random value.</returns> /// <returns>The random value.</returns>
public double NextDouble() => uint_to_real * NextUInt(); public double NextDouble() => int_to_real * Next();
private uint bitBuffer; private uint bitBuffer;
private int bitIndex = 32; private int bitIndex = 32;