Joshua Shay Kricheli NeuroSymbolic AI
v2 v1

Release · v3.6.0

Add TPP fitter core + optimizer substrate, pinned…

Add TPP fitter core + optimizer substrate, pinned against Python goldens

feat v3.6.0 July 4, 2026 Joshua Shay Kricheli 6b00d22

Details

- tpp-optim.ts: numpy MT19937 RandomState (uniform + masked-rejection randint /
  Fisher-Yates shuffle / permutation), numpy pairwise summation, scipy 2-point
  finite-difference gradient, a faithful bound-constrained L-BFGS, and scipy's
  best1bin / latinhypercube differential_evolution.
- tpp-core.ts: the four law forms, SSE + Huber objectives, samplers/bounds, the
  multi-start L-BFGS-B + DE procedure (sync + cooperative/chunked), epoch-mode
  array prep, TPP bins/snap/coverage-step builders, R²/RMSE, V_K/tau_K regime,
  and a schema-v1 dataset validator.
Fidelity, honestly bounded: the RNG, pairwise sum, FD gradient and DE init are
bit-exact vs Python (one 1-ULP libm-pow case documented), and predict + R²/RMSE
reproduce the shipped goldens to <=1e-15 on all 524 metric checks. The iterative
optimizer cannot bit-match Python (V8 Math.pow vs glibc pow, 1 ULP, compounds on
the paper's proven-ill-conditioned landscape), so the widget treats the goldens
as authoritative and the in-browser fit as a watch-it-converge reproduction.
tests: 16 node tests (streams, pairwise, FD, DE init, the metric layer on every
shipped case, TPP mechanics, regime, schema, and the procedure within
theory-justified tolerances). All green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014c7dbCGbQxtWedKRSx4sJi

Files changed (4)

frontend/client/tests/tpp-core.fixtures.json +1 −0
frontend/client/tests/tpp-core.test.mjs +429 −0
frontend/client/ts/effects/tpp-core.ts +707 −0
frontend/client/ts/effects/tpp-optim.ts +579 −0