lj_prng.h 649 B

123456789101112131415161718192021222324
  1. /*
  2. ** Pseudo-random number generation.
  3. ** Copyright (C) 2005-2023 Mike Pall. See Copyright Notice in luajit.h
  4. */
  5. #ifndef _LJ_PRNG_H
  6. #define _LJ_PRNG_H
  7. #include "lj_def.h"
  8. LJ_FUNC int LJ_FASTCALL lj_prng_seed_secure(PRNGState *rs);
  9. LJ_FUNC uint64_t LJ_FASTCALL lj_prng_u64(PRNGState *rs);
  10. LJ_FUNC uint64_t LJ_FASTCALL lj_prng_u64d(PRNGState *rs);
  11. /* This is just the precomputed result of lib_math.c:random_seed(rs, 0.0). */
  12. static LJ_AINLINE void lj_prng_seed_fixed(PRNGState *rs)
  13. {
  14. rs->u[0] = U64x(a0d27757,0a345b8c);
  15. rs->u[1] = U64x(764a296c,5d4aa64f);
  16. rs->u[2] = U64x(51220704,070adeaa);
  17. rs->u[3] = U64x(2a2717b5,a7b7b927);
  18. }
  19. #endif