Home Developers CVP Evidence Reproduce

CVP reproduce

electrical.rf.antenna_length

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.3
CVP protocol
1.0.0-proposed · proposed
Evidence revision
2026-09-11.o3-cov
Oracle
O3 · mpmath 1.4.1 · 80 dps
Generator
antenna-length-mpmath-o3 · seed 20260911.antenna-o3
Table SHA-256
26df4b46049215ca31a8ee7718629ccad4c6c45c7b5b19bb4b9d8415a55a0c31

Numerical claim

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

≤2 ULP vs O3 applies only to the published tabulated vectors (half, quarter, wavelength/full alias, k≠1, HF/VHF/UHF/LF). It is not a whole-domain antenna-model guarantee.

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

Re-running the generator without changing seed or inputs should reproduce table SHA-256 26df4b46049215ca31a8ee7718629ccad4c6c45c7b5b19bb4b9d8415a55a0c31. 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-half-ccanonical-half{"mode":"half","f_Hz":299792458,"length_factor":1}0.50.50PASS
o3-quarter-ccanonical-quarter{"mode":"quarter","f_Hz":299792458,"length_factor":1}0.250.250PASS
o3-wavelength-ccanonical-wavelength{"mode":"wavelength","f_Hz":299792458,"length_factor":1}110PASS
o3-full-aliasalias-full{"mode":"full","f_Hz":299792458,"length_factor":1}110PASS
o3-k095length-factor{"mode":"half","f_Hz":146000000,"length_factor":0.95}0.97535217499999990.9753521751PASS
o3-hf-quarterhf{"mode":"quarter","f_Hz":28000000,"length_factor":0.96}2.56964963999999972.569649641PASS
o3-vhf-halfvhf{"mode":"half","f_Hz":146000000,"length_factor":1}1.02668651.02668650PASS
o3-uhf-wavelengthuhf{"mode":"wavelength","f_Hz":435000000,"length_factor":0.95}0.65471916114942530.65471916114942530PASS
o3-am-broadcastlf{"mode":"half","f_Hz":1000000,"length_factor":1}149.896229149.8962290PASS
o3-2m-k095length-factor-quarter{"mode":"quarter","f_Hz":146000000,"length_factor":0.95}0.487676087499999970.48767608751PASS