| ... | ... | @@ -1,5 +1,7 @@ |
| 1 | 1 | export executable "rand"; |
| 2 | 2 | |
| 3 | use "std.zig"; |
| 4 | |
| 3 | 5 | // Mersenne Twister |
| 4 | 6 | const ARRAY_SIZE : u16 = 624; |
| 5 | 7 | |
| ... | ... | @@ -27,7 +29,7 @@ struct Rand { |
| 27 | 29 | |
| 28 | 30 | /// Write `count` bytes of randomness into `buf`. |
| 29 | 31 | pub fn get_bytes(r: &Rand, buf: &u8, count: usize) { |
| 30 | | var bytes_left = r.get_bytes_aligned(buf, buf, count); |
| 32 | var bytes_left = r.get_bytes_aligned(buf, count); |
| 31 | 33 | if (bytes_left > 0) { |
| 32 | 34 | var rand_val_array : [u8; #sizeof(u32)]; |
| 33 | 35 | *(rand_val_array.ptr as &u32) = r.get(); |
| ... | ... | @@ -47,7 +49,7 @@ struct Rand { |
| 47 | 49 | var rand_val_array : [u8; #sizeof(u64)]; |
| 48 | 50 | |
| 49 | 51 | while (true) { |
| 50 | | r.get_bytes_aligned(r, rand_val_array.ptr, rand_val_array.len); |
| 52 | r.get_bytes_aligned(rand_val_array.ptr, rand_val_array.len); |
| 51 | 53 | const rand_val = *(rand_val_array.ptr as &u64); |
| 52 | 54 | if (rand_val < upper_bound) { |
| 53 | 55 | return start + (rand_val % range); |