Home Developers CVP Evidence Reproduce

CVP reproduce

engineering.uncertainty.type_b

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-b-mpmath-o3 · seed 20260916.type-b-o3
Table SHA-256
f08068b5c7c20a016fc09d5ae27fb9d0c8bec9e522b914e5392d03dc63776c06

Numerical claim

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

O2: u_B = a/√3 (rectangular) or a/√6 (triangular) vs separate-module identities (≤2 ULP). Not GUM combination, not trapezoidal, not Monte Carlo. ≤2 ULP vs O3 applies only to the published tabulated Type B vectors (rectangular, triangular, default, uniform alias, a=1, a=0.5 triangular, scale, half_width). It is not a whole-domain Type B guarantee and does not cover trapezoidal.

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

Re-running the generator without changing seed or inputs should reproduce table SHA-256 f08068b5c7c20a016fc09d5ae27fb9d0c8bec9e522b914e5392d03dc63776c06. 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-rectrectangular{"a":3,"distribution":"rectangular"}{"oracle_layer":"analytic","u_B":1.7320508075688772,"a":3}{"u_B":1.7320508075688774,"a":3,"distribution":"rectangular"}1PASS
o3-tritriangular{"a":3,"distribution":"triangular"}{"oracle_layer":"analytic","u_B":1.224744871391589,"a":3}{"u_B":1.2247448713915892,"a":3,"distribution":"triangular"}1PASS
o3-defaultdefault-rectangular{"a":3}{"oracle_layer":"analytic","u_B":1.7320508075688772,"a":3}{"u_B":1.7320508075688774,"a":3,"distribution":"rectangular"}1PASS
o3-uniformuniform-alias{"a":3,"distribution":"uniform"}{"oracle_layer":"analytic","u_B":1.7320508075688772,"a":3}{"u_B":1.7320508075688774,"a":3,"distribution":"rectangular"}1PASS
o3-oneunit-rect{"a":1,"distribution":"rectangular"}{"oracle_layer":"analytic","u_B":0.5773502691896257,"a":1}{"u_B":0.5773502691896258,"a":1,"distribution":"rectangular"}1PASS
o3-halfhalf-tri{"a":0.5,"distribution":"triangular"}{"oracle_layer":"analytic","u_B":0.2041241452319315,"a":0.5}{"u_B":0.20412414523193154,"a":0.5,"distribution":"triangular"}1PASS
o3-scalescale{"a":6,"distribution":"rectangular"}{"oracle_layer":"analytic","u_B":3.4641016151377544,"a":6}{"u_B":3.464101615137755,"a":6,"distribution":"rectangular"}1PASS
o3-hwhalf-width-alias{"half_width":3}{"oracle_layer":"analytic","u_B":1.7320508075688772,"a":3}{"u_B":1.7320508075688774,"a":3,"distribution":"rectangular"}1PASS