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 )
69 extern void NE10_rng_init_g (
NE10_rng_t *rng, uint32_t seed);
71 extern uint32_t NE10_rng_next_g (
NE10_rng_t *rng);
73 extern const uint32_t NE10_rng_max_g (
NE10_rng_t *rng);
75 extern void NE10_rng_init (uint32_t seed);
77 extern uint32_t NE10_rng_next();
79 extern const uint32_t NE10_rng_max();
81 extern void NE10_float_rng_init_g (
NE10_float_rng_t* float_rng, uint32_t seed);
87 extern void NE10_float_rng_init (uint32_t seed);
89 extern float NE10_float_rng_next();
91 extern float NE10_float_rng_max();
93 extern void NE10_float_rng_limit_init (uint32_t seed);
95 extern float NE10_float_rng_limit_next();
97 extern float NE10_float_rng_limit_max();
99 extern void NE10_float_rng_limit_gt1_init (uint32_t seed);
101 extern float NE10_float_rng_limit_gt1_next();
103 extern float NE10_float_rng_limit_gt1_max();
105 #endif // NE10_RANDOM