Reproducibility
Reproducibility is a first-class design goal, not an afterthought. The same inputs produce the same bits — across backends, across machines, across time.
Where bit-stability comes from
Because there is exactly one definition of the polynomial coefficients and every
backend imports it, a (activation, order) result is bit-identical on
PyTorch, JAX, and Keras 3. There is no per-backend reimplementation to drift.
See Cross-backend parity.
Your reproducibility checklist
- Pin versions. Record the exact
omnibias-*package versions. - Pin the backend + its version and the dtype (float64 for any parity or certificate claim).
- Seed every RNG you use for data, init, and sampling.
- Record hardware tier (memory class / precision) with timing numbers.
- Store certificates for any bounded quantity you publish.
- Capture the exact commands that regenerate each number.
omnibias's math is bit-stable. Your surrounding pipeline (data loading, nondeterministic reductions on some accelerators, multi-threaded ops) may not be. Pin and seed those layers too, and prefer deterministic reductions when you need exact reproduction.
Reproducing a published number
A well-governed result ships the command that regenerates it, for example:
JAX_PLATFORMS=cpu python -m bench.laplacian_scaling.dimension_sweep \
--dims 3 12 30 --hidden 32 --batch 64 --repeats 3 --seed 0
Anyone can re-run it and get the same answer to float64 round-off.