#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 #ifndef KIT_DISABLE_SHORT_NAMES # 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 #endif