Home Developers CVP Evidence Reproduce

CVP reproduce

math.sin

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.5
CVP protocol
1.0.0-proposed · proposed
Evidence revision
2026-09-08.xcal
Oracle
O3 · mpmath 1.4.1 · 80 dps
Generator
math-mpmath-o3 · seed 20260907
Table SHA-256
efdad939a92a67df1f3995db36c52bb87f428a59fc73568f789c02540f4372ee

Numerical claim

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

≤2 ULP vs O3 applies to the 18 published tabulated vectors (common angles 0°…180° plus 8 seeded random angles in (−50°, 50°)). It is not a guarantee over the entire real line, including huge angles or unlisted neighborhoods of zeros.

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

Re-running the generator without changing seed or inputs should reproduce table SHA-256 efdad939a92a67df1f3995db36c52bb87f428a59fc73568f789c02540f4372ee. 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-sin-0angle{"theta":0,"unit":"deg"}0
0.0
00PASS
o3-sin-30angle{"theta":30,"unit":"deg"}0.5
0.5000000000000000000000000000000000000000
0.50PASS
o3-sin-45angle{"theta":45,"unit":"deg"}0.7071067811865476
0.7071067811865475244008443621048490392848
0.70710678118654760PASS
o3-sin-60angle{"theta":60,"unit":"deg"}0.8660254037844386
0.8660254037844386467637231707529361834714
0.86602540378443860PASS
o3-sin-90angle{"theta":90,"unit":"deg"}1
1.000000000000000000000000000000000000000
10PASS
o3-sin-180angle{"theta":180,"unit":"deg"}0
0.0
00PASS
o3-sin-33.3angle{"theta":33.3,"unit":"deg"}0.5490228179981317
0.5490228179981317020573893264846730203889
0.54902281799813170PASS
o3-sin-12.5angle{"theta":12.5,"unit":"deg"}0.21643961393810288
0.2164396139381028797595536696179407286734
0.216439613938102880PASS
o3-sin--30angle{"theta":-30,"unit":"deg"}-0.5
-0.5000000000000000000000000000000000000000
-0.50PASS
o3-sin-15angle{"theta":15,"unit":"deg"}0.25881904510252074
0.2588190451025207623488988376240483283491
0.258819045102520740PASS
o3-sin-rand-00random-interior{"theta":-9.598528663627803,"unit":"deg"}-0.16674342661408253
-0.1667434266140825400165235493924631897422
-0.166743426614082530PASS
o3-sin-rand-01random-interior{"theta":32.682972215116024,"unit":"deg"}0.5399902072681445
0.5399902072681445090193751406915325740786
0.53999020726814441PASS
o3-sin-rand-02random-interior{"theta":47.93316328432411,"unit":"deg"}0.7423637652930208
0.7423637652930208699180874271455931674612
0.74236376529302080PASS
o3-sin-rand-03random-interior{"theta":-27.777363127097487,"unit":"deg"}-0.4660371166518522
-0.4660371166518522197866704209282503599691
-0.46603711665185220PASS
o3-sin-rand-04random-interior{"theta":8.247665339149535,"unit":"deg"}0.1434522960336174
0.1434522960336173950259165395225344990107
0.14345229603361740PASS
o3-sin-rand-05random-interior{"theta":-31.244554836302996,"unit":"deg"}-0.5186920083835915
-0.5186920083835914760820430319334533766172
-0.51869200838359141PASS
o3-sin-rand-06random-interior{"theta":-19.03209995944053,"unit":"deg"}-0.3260978300997276
-0.3260978300997275695045617815597839966177
-0.326097830099727541PASS
o3-sin-rand-07random-interior{"theta":17.42180953733623,"unit":"deg"}0.2994040004795209
0.2994040004795209001749731976252296054391
0.299404000479520871PASS