Home Developers CVP Evidence Reproduce

CVP reproduce

engineering.uncertainty.type_a

Independent re-run pack: fixed input vectors, O3 expected values, oracle version, commands, and the last result summary. This is how a reader moves from “CalculatorX says it passed” to “I can reproduce why it passed.”

Identity

Calculation version, protocol version, and evidence revision are distinct.

Calculation version
1.0.0
CVP protocol
1.0.0-proposed · proposed
Evidence revision
2026-09-16.o2-o3
Oracle
O3 · mpmath 1.4.1 · 80 dps
Generator
type-a-mpmath-o3 · seed 20260916.type-a-o3
Table SHA-256
8629cd3cbfd1de1c5f53ac0b6c587c296c4317450809b0d44af2eb2a31712796

Numerical claim

O3 PASS is a tabulated-vector claim, not a whole-domain proof.

O2: mean / sample s / u_A = s/√n vs separate-module identities (≤2 ULP). Not GUM combination, not SEM product page, not Monte Carlo. ≤2 ULP vs O3 applies only to the published tabulated Type A vectors (Bessel, population, scale, constant, two-point, n=5, centered, default ddof). It is not a whole-domain sample-statistics guarantee.

  • Last O3 run 8 / 8
  • Max error observed 1 ULP
  • Threshold ≤ 2 ULP

Commands

Regenerate the table from the public generator. Independent REST check needs only this page's reproduce.json plus stdlib Python — no repo clone and no mpmath. The CVP runner remains a maintainer command.

Regenerate O3 table
python3 generate-type-a-o3.py after downloading the public generator next to the table
Repo maintainer path
python3 scripts/lib/cvp/oracles/generate-type-a-o3.py
Independent REST check
Compare POST /api/v1/calc/type-a against /developers/cvp/reproduce/type-a-o3-tables.json after downloading check-math-o3-rest.py next to type-a-o3-tables.json (or pass --reproduce reproduce.json)
Re-run CVP
npm run cvp:run -- --capability engineering.uncertainty.type_a
REST check
POST https://www.calculatorx.com/api/v1/calc/type-a with a tabulated input from the table below

Re-running the generator without changing seed or inputs should reproduce table SHA-256 8629cd3cbfd1de1c5f53ac0b6c587c296c4317450809b0d44af2eb2a31712796. Compare each expected_f64 to the production result within the declared ULP threshold.

Tabulated vectors

Every O3 vector used for the ≤2 ULP claim. Expected values come from the published mpmath table, not from the implementation under test.

IDKindInputsExpected (f64)ActualULPStatus
o3-123bessel{"values":[1,2,3],"ddof":1}{"oracle_layer":"analytic","mean":2,"std":1,"u_A":0.5773502691896257}{"mean":2,"std":1,"u_A":0.5773502691896258,"n":3,"ddof":1,"values":[1,2,3]}1PASS
o3-ddof0population{"values":[1,2,3],"ddof":0}{"oracle_layer":"analytic","mean":2,"std":0.816496580927726,"u_A":0.4714045207910317}{"mean":2,"std":0.816496580927726,"u_A":0.47140452079103173,"n":3,"ddof":0,"values":[1,2,3]}1PASS
o3-scalescale{"values":[10,20,30],"ddof":1}{"oracle_layer":"analytic","mean":20,"std":10,"u_A":5.773502691896257}{"mean":20,"std":10,"u_A":5.773502691896258,"n":3,"ddof":1,"values":[10,20,30]}1PASS
o3-constconstant{"values":[5,5,5],"ddof":1}{"oracle_layer":"analytic","mean":5,"std":0,"u_A":0}{"mean":5,"std":0,"u_A":0,"n":3,"ddof":1,"values":[5,5,5]}0PASS
o3-twotwo-point{"values":[3,7],"ddof":1}{"oracle_layer":"analytic","mean":5,"std":2.8284271247461903,"u_A":2}{"mean":5,"std":2.8284271247461903,"u_A":2,"n":2,"ddof":1,"values":[3,7]}0PASS
o3-fiven5{"values":[1,2,3,4,5],"ddof":1}{"oracle_layer":"analytic","mean":3,"std":1.5811388300841898,"u_A":0.7071067811865476}{"mean":3,"std":1.5811388300841898,"u_A":0.7071067811865476,"n":5,"ddof":1,"values":[1,2,3,4,5]}0PASS
o3-negcentered{"values":[-2,-1,0,1,2],"ddof":1}{"oracle_layer":"analytic","mean":0,"std":1.5811388300841898,"u_A":0.7071067811865476}{"mean":0,"std":1.5811388300841898,"u_A":0.7071067811865476,"n":5,"ddof":1,"values":[-2,-1,0,1,2]}0PASS
o3-default-ddofdefault-ddof{"values":[1,2,3]}{"oracle_layer":"analytic","mean":2,"std":1,"u_A":0.5773502691896257}{"mean":2,"std":1,"u_A":0.5773502691896258,"n":3,"ddof":1,"values":[1,2,3]}1PASS