CS153/hw6/hw4programs/xor_shift.oat

27 lines
472 B
Text
Raw Normal View History

int xor (int x, int y) {
return ~(x [&] y) [&] (x [|] y);
}
int xor_shift_plus (int[] s) {
var x = s[0];
var y = s[1];
s[0] = y;
x = xor(x, x << 23);
x = xor(x, x >> 17);
x = xor(x, xor(y, y >> 26));
s[1] = x;
return x + y;
}
int program (int argc, string[] argv) {
var seed = new int[2];
for (var i=0; i < 2; i=i+1;) { seed[i] = 100 * (i + 1); }
print_int(xor_shift_plus(seed));
print_string("\n");
print_int(xor_shift_plus(seed));
return 0;
}