46#ifdef _RWSTD_REENTRANT
56#ifndef _RWSTD_NO_EXT_PORTABLE_RANDOM_SEQUENCE
60typedef _RWSTD_UINT32_T __rw_random_t;
66typedef _RWSTD_SIZE_T __rw_random_t;
77static const __rw_random_t
78__rw_table_size = __rw_random_t (
sizeof __rw_table /
sizeof *__rw_table);
82__rw_seed ( __rw_random_t seed)
84 __rw_table [__rw_table_size - 1] = seed;
90 for (
i = 0;
i != __rw_table_size - 1; ++
i) {
91 const _RWSTD_SIZE_T ii = 21U *
i % __rw_table_size;
94 seed = __rw_table [ii];
97 for (
i = 0;
i != 4U; ++
i) {
98 for (_RWSTD_SIZE_T ii = 0; ii != __rw_table_size; ++ii)
100 __rw_table [
i] - __rw_table [(
i + 31U) % __rw_table_size];
104 __rw_inx [1] = __rw_table_size * 2U / 3U - 1U;
111__rw_rand (_RWSTD_SIZE_T limit)
121 if (0 == __rw_inx [0] && 0 == __rw_inx [1])
122 __rw_seed (161803398U);
124 __rw_table [++__rw_inx [0] %= __rw_table_size] -=
125 __rw_table [++__rw_inx [1] %= __rw_table_size];
127 return __rw_table [__rw_inx [0]] % limit;
#define _RWSTD_NAMESPACE(name)
#define _RWSTD_ASSERT(ignore)
#define _RWSTD_MT_STATIC_GUARD(name)