CS153/hw6/oatprograms/xor_shift.oat
jmug cfe502c598 Add all the assignment code.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-24 18:59:28 -08:00

27 lines
No EOL
478 B
Text

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]{i->0};
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;
}