Joseph Ferano
a0278378ab
Five randomness functions, and a draw wide enough to answer them
...
rand-int, rand, rand-bool, rand-int-range and rand-float-range, at the widths
the author ruled: a u64 draw and an f64 in [0, 1). rand-seed and rand-state
keep their names. The four old names are not names, and each is refused by the
one that is, with a call that compiles — in both the call and the bare-name
position, because a Lisp-1 makes the second a real thing to write.
The generator's step is untouched, so a seed means what it meant. Its output
function is not: PCG-XSH-RR folded the state to 32 bits, and no honest u64 or
53-bit f64 comes out of 32 bits without a second step. PCG-RXS-M-XS 64 answers
64 from the same one, so all five still cost exactly one draw and a seeded run
is reproducible. The price, written where it lives: the permutation is a
bijection of the state, which is what 64 output bits from 64 state bits costs.
The sequence is therefore a different one, and programs/rand.flan pins it —
reproducibility across the five, the single-draw cost of each, the half-open
boundaries, and rand-bool's count over a thousand flips.
sand.flan is not touched. It calls rand-f32, so the cases that compile or
re-evaluate it skip themselves on the fixture rather than on a comment: fix
its two calls and every one of them runs again. Its hash is the old
generator's grid and gets re-taken then.
2026-09-21 10:57:18 +07:00
..
2026-09-19 06:41:57 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 14:47:54 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 20:10:39 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 09:59:33 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 09:51:35 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 14:47:54 +07:00
2026-09-20 20:17:17 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 07:19:33 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-17 19:03:27 +07:00
2026-09-12 14:47:54 +07:00
2026-09-12 14:47:54 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 15:36:13 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 20:10:39 +07:00
2026-09-13 17:55:00 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:30:57 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 23:12:42 +07:00
2026-09-18 13:47:42 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 08:09:53 +07:00
2026-09-19 05:55:48 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 13:54:07 +07:00
2026-09-20 15:36:27 +07:00
2026-09-19 06:40:53 +07:00
2026-09-21 07:12:04 +07:00
2026-09-19 05:52:47 +07:00
2026-09-20 10:36:05 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 18:46:48 +07:00
2026-09-19 06:06:44 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 23:12:42 +07:00
2026-09-20 19:30:04 +07:00
2026-09-12 14:47:54 +07:00
2026-09-12 09:11:34 +07:00
2026-09-12 14:47:54 +07:00
2026-09-12 11:07:57 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 22:44:33 +07:00
2026-09-12 22:44:33 +07:00
2026-09-12 22:44:33 +07:00
2026-09-12 22:44:33 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 09:59:33 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 11:15:58 +07:00
2026-09-21 10:00:40 +07:00
2026-09-13 15:23:37 +07:00
2026-09-13 14:49:11 +07:00
2026-09-18 12:16:05 +07:00
2026-09-21 09:51:35 +07:00
2026-09-21 09:51:35 +07:00
2026-09-21 07:12:04 +07:00
2026-09-19 05:21:02 +07:00
2026-09-20 20:17:17 +07:00
2026-09-21 09:51:35 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 10:01:18 +07:00
2026-09-21 09:59:33 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 18:02:59 +07:00
2026-09-12 22:00:13 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-12 23:18:28 +07:00
2026-09-20 18:23:22 +07:00
2026-09-21 07:12:04 +07:00
2026-09-19 05:21:02 +07:00
2026-09-19 05:21:02 +07:00
2026-09-12 16:09:27 +07:00
2026-09-12 16:34:25 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 23:06:40 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 16:46:30 +07:00
2026-09-12 16:46:30 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 16:46:30 +07:00
2026-09-20 21:00:22 +07:00
2026-09-20 21:00:22 +07:00
2026-09-11 20:11:01 +07:00
2026-09-13 15:40:08 +07:00
2026-09-13 17:54:36 +07:00
2026-09-13 15:40:08 +07:00
2026-09-13 15:40:08 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 23:12:42 +07:00
2026-09-12 10:40:47 +07:00
2026-09-12 05:32:25 +07:00
2026-09-11 20:11:01 +07:00
2026-09-11 20:11:01 +07:00
2026-09-12 05:32:25 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:19:33 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 10:57:18 +07:00
2026-09-21 07:59:48 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:59:48 +07:00
2026-09-21 07:59:48 +07:00
2026-09-21 07:59:48 +07:00
2026-09-21 07:59:48 +07:00
2026-09-12 16:09:48 +07:00
2026-09-21 07:12:04 +07:00
2026-09-13 09:32:58 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:30:57 +07:00
2026-09-21 07:12:04 +07:00
2026-09-17 21:49:40 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 18:18:20 +07:00
2026-09-20 18:18:20 +07:00
2026-09-13 18:00:35 +07:00
2026-09-13 18:00:35 +07:00
2026-09-21 10:57:18 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 09:51:35 +07:00
2026-09-12 05:32:25 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 11:38:24 +07:00
2026-09-21 09:59:33 +07:00
2026-09-20 07:20:27 +07:00
2026-09-12 11:07:57 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 18:12:45 +07:00
2026-09-21 10:57:18 +07:00
2026-09-20 11:53:37 +07:00
2026-09-17 22:55:30 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 23:18:28 +07:00
2026-09-12 11:15:58 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 11:07:57 +07:00
2026-09-21 09:51:35 +07:00
2026-09-18 12:16:05 +07:00
2026-09-12 11:07:57 +07:00
2026-09-12 11:07:57 +07:00
2026-09-12 11:12:49 +07:00
2026-09-12 11:07:57 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 23:12:42 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 07:12:04 +07:00