#ifndef KIT_MERSENNE_TWISTER_64_H #define KIT_MERSENNE_TWISTER_64_H #include "types.h" #ifdef __cplusplus extern "C" { #endif enum { KIT_MT64_N = 312, }; typedef struct { u64 mt[KIT_MT64_N]; u64 index; } kit_mt64_state_t; void kit_mt64_init_array(kit_mt64_state_t *state, i64 size, u64 *seed); void kit_mt64_init(kit_mt64_state_t *state, u64 seed); void kit_mt64_rotate(kit_mt64_state_t *state); u64 kit_mt64_generate(kit_mt64_state_t *state); #ifdef __cplusplus } #endif #define mt64_state_t kit_mt64_state_t #define mt64_init_array kit_mt64_init_array #define mt64_init kit_mt64_init #define mt64_rotate kit_mt64_rotate #define mt64_generate kit_mt64_generate #endif