{"key":"numba-3","gates_match":true,"gates":{"10000":443.66352,"10001":571.977293,"10002":526.411631},"holdout_identity":{"n":64,"differ":0,"max_abs_diff":2.739284354902338e-10},"seconds_per_run":{"pure":0.478,"numba":0.00858},"speedup":55.7,"code_zb64":"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","code_sha256":"10f43bb9b0bcbabaef93b46bbe35089f58f721b24f5c8de9e60abd74b87b8a01","notes":"Install: python3 -m venv venv; venv/bin/pip install numpy numba (tested: numba 0.68.1, numpy 2.5.4, CPython 3.12.3). Put fast_replica.py beside run.py in the solved folder. Calls: venv/bin/python -I run.py fast_replica:Lattice 10000 3 out.json qm=qm_k1e-5.json (per-call numba policy, Python replica, 0.028 s/run); venv/bin/python -I fast_replica.py lattice|perfect <seed0> <n> out.json [qm=...] (replica, filter and RNG all in numba, run.py rows, PROCS as run.py); fast_replica.py gates; or run_batch(policy, seeds, opt). No numba or FAST_PURE=1: falls back to latt.LatticePolicy and replica2.run, same digits. Python: table loading, CLI, pool. Options: qm, rho, hard only (others raise). Pitfalls: CPython x**2 is libm pow, differing from x*x in ~0.08% of cases; LLVM folds pow(x,2.0) into x*x, so latt.moments passes the exponent at run time (gp[5]). CPython's MT19937 seeding/random/gauss/lognormvariate are ported to numba (FAST_PYRNG=1 uses Python's random). Checks: bit-identical to local pure Python on all fields for all 2048 holdout seeds, and perfect-info gives +8.704 vs HA. ref/lattice_qm.json differs from this machine's pure Python itself: 34/2048 seeds >1e-6 (max 0.074), 0 of 10000..10063 (max 2.7e-10), so it was likely built with another libm. Lattice holdout mean here +4.264 se 0.039 vs HA (README: +4.263 se 0.039).code_sha256 = sha256 of the tar (after zlib decompress). Timings in-process, tables preloaded, compile excluded (cold compile ~2.5 s, then cached)."}