33#ifndef __NE10_RANDOM__
34#define __NE10_RANDOM__
48 uint32_t _private_m_A ;
49 uint32_t _private_m_C ;
50 uint32_t _private_m_X_NM1 ;
62#define NAN_OR_INF (0xFF << 23)
63#define IS_NAN_OR_INF(x) ( ((x & NAN_OR_INF) == NAN_OR_INF)?1:0 )
65#define EXPONENT_MASK 0x807FFFFF
66#define IS_SUBNORMAL(x) ( ((x & EXPONENT_MASK) == x)?1:0 )
69extern void NE10_rng_init_g (
NE10_rng_t *rng, uint32_t seed);
71extern uint32_t NE10_rng_next_g (
NE10_rng_t *rng);
73extern const uint32_t NE10_rng_max_g (
NE10_rng_t *rng);
75extern void NE10_rng_init (uint32_t seed);
77extern uint32_t NE10_rng_next();
79extern const uint32_t NE10_rng_max();
81extern void NE10_float_rng_init_g (
NE10_float_rng_t* float_rng, uint32_t seed);
87extern void NE10_float_rng_init (uint32_t seed);
89extern float NE10_float_rng_next();
91extern float NE10_float_rng_max();
93extern void NE10_float_rng_limit_init (uint32_t seed);
95extern float NE10_float_rng_limit_next();
97extern float NE10_float_rng_limit_max();
99extern void NE10_float_rng_limit_gt1_init (uint32_t seed);
101extern float NE10_float_rng_limit_gt1_next();
103extern float NE10_float_rng_limit_gt1_max();