emscripten/tests/core/test_i32_mul_semiprecise.in

27 строки
565 B
Plaintext

#include <stdio.h>
typedef unsigned int uint;
// from cube2, zlib licensed
#define N (624)
#define M (397)
#define K (0x9908B0DFU)
static uint state[N];
static int next = N;
void seedMT(uint seed) {
state[0] = seed;
for (uint i = 1; i < N; i++) // if we do not do this precisely, at least we
// should coerce to int immediately, not wait
state[i] = seed = 1812433253U * (seed ^ (seed >> 30)) + i;
next = 0;
}
int main() {
seedMT(5497);
for (int i = 0; i < 10; i++) printf("%d: %u\n", i, state[i]);
return 0;
}