eo-phi-normalizer-3.0.0: data/0.49.3/org/eolang/math/random.phi
{⟦
org ↦ ⟦
eolang ↦ ⟦
math ↦ ⟦
random(seed) ↦ ⟦
fixed ↦ ξ,
φ ↦ ξ.seed.as-number.div(
Φ̇.bytes(⟦ Δ ⤍ 00-20-00-00-00-00-00-00 ⟧).as-i64.as-number
),
next ↦ ξ.ρ.random(
ξ.seed.times(25214903917).plus(11).as-i64.and(
Φ̇.bytes(⟦ Δ ⤍ 00-0F-FF-FF-FF-FF-FF-FF ⟧)
).as-i64.as-number
).fixed,
pseudo ↦ ⟦
const-1 ↦ 35,
const-2 ↦ 53,
const-3 ↦ 17,
one ↦ Φ̇.bytes(⟦ Δ ⤍ 00-00-00-00-00-00-00-01 ⟧),
φ ↦ ξ.ρ.ρ.random(ξ.time-seed),
time-seed ↦ ξ.time-bytes.left(ξ.const-1).and(
ξ.one.left(ξ.const-2).as-i64.minus(ξ.one).as-bytes
).as-i64.plus(
ξ.time-bytes.left(ξ.const-3).and(
ξ.one.left(ξ.const-1).as-i64.minus(ξ.one).as-bytes
).as-i64.plus(
ξ.time-bytes.and(
ξ.one.left(ξ.const-3).as-i64.minus(ξ.one).as-bytes
).as-i64
)
).as-number,
time-bytes ↦ Φ̇.sys.os.is-windows.if(
Φ̇.sys.win32(
"GetSystemTime", Φ̇.tuple(Φ̇.tuple.empty, Φ̇.sys.win32.system-time)
).milliseconds,
⟦
timeval ↦ Φ̇.sys.posix(
"gettimeofday", Φ̇.tuple(Φ̇.tuple.empty, Φ̇.sys.posix.timeval)
).output,
φ ↦ ξ.timeval.tv-sec.times(1000).plus(
ξ.timeval.tv-usec.as-i64.div(1000.as-i64).as-number
)
⟧
).as-i64.as-bytes
⟧
⟧,
λ ⤍ Package
⟧,
λ ⤍ Package
⟧,
λ ⤍ Package
⟧
⟧}