Home Developers CVP Evidence Reproduce

CVP reproduce

mechanical.statics.transverse_shear

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-27.o2-o3
Oracle
O3 · mpmath 1.4.1 · 80 dps
Generator
transverse-shear-mpmath-o3 · seed 20260927.transverse-shear-o3
Table SHA-256
97f190e8c8a16b73cebeabb44c92f7e1f3f56eb49c405d014773a423755ac33e

Numerical claim

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

O2: tau vs a separate-module identity (≤2 ULP). Not a rectangle from b·h, not a circle, and not beam deflection. ≤2 ULP vs O3 applies only to the published tabulated transverse-shear vectors.

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

Re-running the generator without changing seed or inputs should reproduce table SHA-256 97f190e8c8a16b73cebeabb44c92f7e1f3f56eb49c405d014773a423755ac33e. 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-unitunit{"V":"12","Q":"4","I":"8","b":"2"}{"oracle_layer":"analytic","tau":3,"V":12,"Q":4,"I":8,"b":2}{"model":"transverse_shear","V":12,"Q":4,"I":8,"b":2,"tau":3,"solver":"jourawski","convention":"τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."}0PASS
o3-aliasalias{"shear":"24","first_moment":"6","Ix":"10","t":"3"}{"oracle_layer":"analytic","tau":4.8,"V":24,"Q":6,"I":10,"b":3}{"model":"transverse_shear","V":24,"Q":6,"I":10,"b":3,"tau":4.8,"solver":"jourawski","convention":"τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."}0PASS
o3-awkwardawkward{"V":"13.7","Q":"2.5","I":"7.2","b":"1.8"}{"oracle_layer":"analytic","tau":2.642746913580247,"V":13.7,"Q":2.5,"I":7.2,"b":1.8}{"model":"transverse_shear","V":13.7,"Q":2.5,"I":7.2,"b":1.8,"tau":2.642746913580247,"solver":"jourawski","convention":"τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."}0PASS
o3-negsigned{"V":"-12","Q":"4","I":"8","b":"2"}{"oracle_layer":"analytic","tau":-3,"V":-12,"Q":4,"I":8,"b":2}{"model":"transverse_shear","V":-12,"Q":4,"I":8,"b":2,"tau":-3,"solver":"jourawski","convention":"τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."}0PASS
o3-staticalstatical{"V":"50","statical_moment":"0.01","I":"0.002","b":"0.05"}{"oracle_layer":"analytic","tau":5000,"V":50,"Q":0.01,"I":0.002,"b":0.05}{"model":"transverse_shear","V":50,"Q":0.01,"I":0.002,"b":0.05,"tau":5000,"solver":"jourawski","convention":"τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."}0PASS
o3-smallsmall{"V":"1","Q":"0.1","I":"0.2","b":"0.5"}{"oracle_layer":"analytic","tau":1,"V":1,"Q":0.1,"I":0.2,"b":0.5}{"model":"transverse_shear","V":1,"Q":0.1,"I":0.2,"b":0.5,"tau":1,"solver":"jourawski","convention":"τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."}0PASS
o3-largelarge{"V":"1e5","Q":"0.02","I":"0.01","b":"0.1"}{"oracle_layer":"analytic","tau":2000000,"V":100000,"Q":0.02,"I":0.01,"b":0.1}{"model":"transverse_shear","V":100000,"Q":0.02,"I":0.01,"b":0.1,"tau":2000000,"solver":"jourawski","convention":"τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."}0PASS
o3-thicknessthickness{"V":"30","Q":"5","I":"15","thickness":"2"}{"oracle_layer":"analytic","tau":5,"V":30,"Q":5,"I":15,"b":2}{"model":"transverse_shear","V":30,"Q":5,"I":15,"b":2,"tau":5,"solver":"jourawski","convention":"τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."}0PASS