UNPKG

alea-generator

Version:

A performant and effective random number generator

52 lines (51 loc) 1.27 kB
/** * aleaState * * the three 32 bit seeds of alea and a dynamic integration constant */ interface aleaState { seed0: number; seed1: number; seed2: number; constant: number; } /** * aleaType * * The required functions of an alea implementation */ export interface aleaType { /** * @returns a 32 bit number between `[0,1)` like Math.random */ random(): number; /** * @returns an integer `[0, 2^32)` */ uint32(): number; /** * @returns a pseudo-random 53-bit number between `[0, 1)`, higher precision than random() */ fract53(): number; /** @returns Exports the current state of the alea prng*/ exportState(): aleaState; /** * Imports the current state of the alea prng * * @param state - the new state to change the prng to */ importState(state: Readonly<aleaState>): void; } /** * aleaFactory * * creates a seedable pseduo random number generator * * @param seed - the seed for the pseudo random generations * @returns a pseduo random number generator */ export declare const aleaFactory: (seed?: { toString: () => string; }) => aleaType; export declare const alea: () => number; export {};