@disjukr/pcg32
v0.0.2
Published
AssemblyScript port of pcg 32 variants from pcg-c.
Downloads
33
Maintainers
Readme
pcg32
AssemblyScript port of pcg 32 variants from pcg-c.
What is pcg?: https://www.pcg-random.org/
How to use
https://www.pcg-random.org/using-pcg-c.html#basic-high-level-api
npm install @disjukr/pcg32
import {
pcg32_advance,
pcg32_boundedrand,
PCG32_INITIALIZER_STATE,
pcg32_random,
pcg32_srandom,
pcg32s_srandom,
state,
} from "@disjukr/pcg32";
// import * as pcg32_for_deno from "https://deno.land/x/pcg32/mod.ts";
// get random 32 bit unsigned integer
pcg32_random(); // 355248013
pcg32_random(); // 41705475
pcg32_random(); // 3406281715
pcg32_random(); // 4186697710
// get bounded range integer (0 ~ 99)
pcg32_boundedrand(100); // 79
pcg32_boundedrand(100); // 48
pcg32_boundedrand(100); // 21
pcg32_boundedrand(100); // 30
// reset rng state
state.value = PCG32_INITIALIZER_STATE.value;
pcg32_random(); // 355248013
pcg32_random(); // 41705475
pcg32_random(); // 3406281715
pcg32_random(); // 4186697710
// jump ahead
state.value = PCG32_INITIALIZER_STATE.value;
pcg32_advance(2n); // skip 355248013, 41705475
pcg32_random(); // 3406281715
pcg32_random(); // 4186697710
pcg32_advance(-3n); // 3 steps rewind
pcg32_random(); // 41705475
pcg32_random(); // 3406281715
pcg32_random(); // 4186697710
// initialize with seed
pcg32s_srandom(0n);
pcg32_random(); // 3894649422
pcg32_random(); // 2055130073
pcg32_random(); // 2315086854
pcg32_random(); // 2925816488
// initialize with seed and sequence
pcg32_srandom(0n, 0n);
pcg32_random(); // 3837872008
pcg32_random(); // 932996374
pcg32_random(); // 1548399547
pcg32_random(); // 1612522464