32#define _RWSTD_TEST_SRC
39static _RWSTD_SIZE_T inx32 [2];
46 if (0xffffffffUL == seed)
47 seed = unsigned (clock ());
51 _RWSTD_UINT32_T
k = 1;
61 for (_RWSTD_SIZE_T
i = 0;
i != 4U; ++
i) {
62 for (_RWSTD_SIZE_T ii = 0; ii !=
TABLE_SIZE; ++ii)
76 if (0 == inx32 [0] && 0 == inx32 [1])
82 return limit ? table32 [inx32 [0]] % limit : table32 [inx32 [0]];
89static _RWSTD_SIZE_T inx64 [2];
94rw_seed64 (_RWSTD_UINT64_T seed)
96 if ((_RWSTD_UINT64_T)-1 == seed)
101 _RWSTD_UINT64_T
k = 1;
111 for (_RWSTD_SIZE_T
i = 0;
i != 4U; ++
i) {
112 for (_RWSTD_SIZE_T ii = 0; ii !=
TABLE_SIZE; ++ii)
113 table64 [
i] = table64 [
i] - table64 [(
i + 31U) %
TABLE_SIZE];
124rw_rand64 (_RWSTD_UINT64_T limit)
126 if (0 == inx64 [0] && 0 == inx64 [1])
127 rw_seed64 (161803398);
132 return limit ? table64 [inx64 [0]] % limit : table64 [inx64 [0]];
_TEST_EXPORT void rw_seed32(_RWSTD_UINT32_T seed)
_TEST_EXPORT _RWSTD_UINT32_T rw_rand32(_RWSTD_UINT32_T limit)