# Determinism Policy MabeLabRS emphasizes reproducibility of artificial life experiments. ## Randomness - Use `rand_chacha::ChaCha8Rng` (fast, reproducible). - Seeds must be explicit and logged in experiment manifests. ## Floating-point - Default: `f64`. - Avoid nondeterministic parallel reductions; when needed, gate behind the `fast-math` feature. - Golden tests should tolerate ≤ 1e-12 relative error in float comparisons. ## Collections - Use `BTreeMap`/`BTreeSet` when deterministic ordering is required. - Use `indexmap::IndexMap`/`IndexSet` for hash-backed structures that preserve insertion order. ## Parallelism - Sequential by default. - `rayon` parallelism only behind `parallel` feature flag. - Golden tests must run with `--no-default-features` to guarantee determinism.