packages feed

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
  ⟧
⟧}