Home Developers CVP Evidence Reproduce

CVP reproduce

mechanical.statics.bending_stress

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
bending-stress-mpmath-o3 · seed 20260927.bending-stress-o3
Table SHA-256
bb73a9f80d63e57442a213862a889e711ff060ca0f8ae6df9512b6c7bd729bed

Numerical claim

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

O2: σ = M/S vs a separate-module identity (≤2 ULP). Not plastic modulus, not a rectangle from b·h, and not beam deflection. ≤2 ULP vs O3 applies only to the published tabulated bending-stress vectors. Not plastic modulus.

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

Re-running the generator without changing seed or inputs should reproduce table SHA-256 bb73a9f80d63e57442a213862a889e711ff060ca0f8ae6df9512b6c7bd729bed. 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-MSS{"M":"12","S":"4"}{"oracle_layer":"analytic","sigma":3,"M":12,"S":4}{"model":"bending_stress","M":12,"S":4,"sigma":3,"solver":"elastic flexure","convention":"σ = M/S on one centroidal axis. Positive M gives the stress sign at the fiber used to form S. S may be entered, or formed as Ix/c by the section-modulus engine. A rectangle built from b and h is the rectangular-section page. The plastic modulus of a rectangle is its own page."}0PASS
o3-IxIx{"M":"100","Ix":"50","c":"2"}{"oracle_layer":"analytic","sigma":4,"M":100,"S":25}{"model":"bending_stress","M":100,"S":25,"Ix":50,"c":2,"sigma":4,"solver":"section modulus","convention":"σ = M/S on one centroidal axis. Positive M gives the stress sign at the fiber used to form S. S may be entered, or formed as Ix/c by the section-modulus engine. A rectangle built from b and h is the rectangular-section page. The plastic modulus of a rectangle is its own page."}0PASS
o3-aliasalias{"moment":"24","section_modulus":"8"}{"oracle_layer":"analytic","sigma":3,"M":24,"S":8}{"model":"bending_stress","M":24,"S":8,"sigma":3,"solver":"elastic flexure","convention":"σ = M/S on one centroidal axis. Positive M gives the stress sign at the fiber used to form S. S may be entered, or formed as Ix/c by the section-modulus engine. A rectangle built from b and h is the rectangular-section page. The plastic modulus of a rectangle is its own page."}0PASS
o3-awkwardawkward{"M":"12.5","S":"3.7"}{"oracle_layer":"analytic","sigma":3.3783783783783785,"M":12.5,"S":3.7}{"model":"bending_stress","M":12.5,"S":3.7,"sigma":3.378378378378378,"solver":"elastic flexure","convention":"σ = M/S on one centroidal axis. Positive M gives the stress sign at the fiber used to form S. S may be entered, or formed as Ix/c by the section-modulus engine. A rectangle built from b and h is the rectangular-section page. The plastic modulus of a rectangle is its own page."}1PASS
o3-I-aliasI{"M":"40","I":"20","cy":"2"}{"oracle_layer":"analytic","sigma":4,"M":40,"S":10}{"model":"bending_stress","M":40,"S":10,"Ix":20,"c":2,"sigma":4,"solver":"section modulus","convention":"σ = M/S on one centroidal axis. Positive M gives the stress sign at the fiber used to form S. S may be entered, or formed as Ix/c by the section-modulus engine. A rectangle built from b and h is the rectangular-section page. The plastic modulus of a rectangle is its own page."}0PASS
o3-neg-Msigned{"M":"-18","S":"6"}{"oracle_layer":"analytic","sigma":-3,"M":-18,"S":6}{"model":"bending_stress","M":-18,"S":6,"sigma":-3,"solver":"elastic flexure","convention":"σ = M/S on one centroidal axis. Positive M gives the stress sign at the fiber used to form S. S may be entered, or formed as Ix/c by the section-modulus engine. A rectangle built from b and h is the rectangular-section page. The plastic modulus of a rectangle is its own page."}0PASS
o3-smallsmall{"M":"0.08","S":"0.02"}{"oracle_layer":"analytic","sigma":4,"M":0.08,"S":0.02}{"model":"bending_stress","M":0.08,"S":0.02,"sigma":4,"solver":"elastic flexure","convention":"σ = M/S on one centroidal axis. Positive M gives the stress sign at the fiber used to form S. S may be entered, or formed as Ix/c by the section-modulus engine. A rectangle built from b and h is the rectangular-section page. The plastic modulus of a rectangle is its own page."}0PASS
o3-largelarge{"M":"1e6","S":"2500"}{"oracle_layer":"analytic","sigma":400,"M":1000000,"S":2500}{"model":"bending_stress","M":1000000,"S":2500,"sigma":400,"solver":"elastic flexure","convention":"σ = M/S on one centroidal axis. Positive M gives the stress sign at the fiber used to form S. S may be entered, or formed as Ix/c by the section-modulus engine. A rectangle built from b and h is the rectangular-section page. The plastic modulus of a rectangle is its own page."}0PASS