Merge branch 'master' into v2.1
[luajit-2.0.git] / src / lj_prng.h
blob7dc5eebf2e715adc4daefc0ad512b96d2149f618
1 /*
2 ** Pseudo-random number generation.
3 ** Copyright (C) 2005-2025 Mike Pall. See Copyright Notice in luajit.h
4 */
6 #ifndef _LJ_PRNG_H
7 #define _LJ_PRNG_H
9 #include "lj_def.h"
11 LJ_FUNC int LJ_FASTCALL lj_prng_seed_secure(PRNGState *rs);
12 LJ_FUNC uint64_t LJ_FASTCALL lj_prng_u64(PRNGState *rs);
13 LJ_FUNC uint64_t LJ_FASTCALL lj_prng_u64d(PRNGState *rs);
15 /* This is just the precomputed result of lib_math.c:random_seed(rs, 0.0). */
16 static LJ_AINLINE void lj_prng_seed_fixed(PRNGState *rs)
18 rs->u[0] = U64x(a0d27757,0a345b8c);
19 rs->u[1] = U64x(764a296c,5d4aa64f);
20 rs->u[2] = U64x(51220704,070adeaa);
21 rs->u[3] = U64x(2a2717b5,a7b7b927);
24 #endif