1using System.Diagnostics;
5 static int m_counter = (int)(Stopwatch.GetTimestamp() + DateTime.Now.Ticks);
15 m_s1 = (uint)(value >> 32);
31 public void Seed(
int seed) {
32 m_s0 = (uint)(seed + 42817);
33 m_s1 = (uint)(seed + 324508639);
36 public int Sign() => (int)((
UInt() & 1) * 2 - 1);
40 public bool Bool(
float probability) =>
Int() / 2.147484E+09f < probability;
51 public int Int() => (int)(
UInt() & 0x7FFFFFFF);
53 public int Int(
int bound) => (int)(
Int() * (
long)bound / 2147483648u);
55 public int Int(
int min,
int max) => (int)(min +
Int() * (
long)(max - min + 1) / 2147483648u);
59 public float Float(
float min,
float max) => min +
Float() * (max - min);
65 float num3 = 0.32223243f + num2 * (1f + num2 * (0.3422421f + num2 * (0.020423122f + num2 * 4.536422E-05f)));
66 float num4 = 0.09934846f + num2 * (0.58858156f + num2 * (0.5311035f + num2 * (0.10353775f + num2 * 0.00385607f)));
67 return mean + stddev * (num3 / num4 - num2);
70 float num6 = 0.32223243f + num5 * (1f + num5 * (0.3422421f + num5 * (0.020423122f + num5 * 4.536422E-05f)));
71 float num7 = 0.09934846f + num5 * (0.58858156f + num5 * (0.5311035f + num5 * (0.10353775f + num5 * 0.00385607f)));
72 return mean - stddev * (num6 / num7 - num5);
82 num = 2f *
Float() - 1f;
83 num2 = 2f *
Float() - 1f;
90 float num6 = 1f / num5;
91 return new Vector2((num3 - num4) * num6, 2f * num * num2 * num6);
103 num = 2f *
Float() - 1f;
104 num2 = 2f *
Float() - 1f;
105 num3 = num * num + num2 * num2;
110 return new Vector3(2f * num * num4, 2f * num2 * num4, 1f - 2f * num3);
117 static uint
RotateLeft(uint x,
int k) => (x << k) | (x >> (32 - k));
static float Sqrt(float x)
static float Log(float x)
float NormalFloat(float mean, float stddev)
static uint RotateLeft(uint x, int k)
float Float(float min, float max)
Vector2 Vector2(float length)
Vector3 Vector3(float minLength, float maxLength)
Vector2 Vector2(float minLength, float maxLength)
int Int(int min, int max)
bool Bool(float probability)
Vector3 Vector3(float length)
static Vector2 Normalize(Vector2 v)
static Vector3 Normalize(Vector3 v)