{
  "capability_id": "electrical.rf.antenna_length",
  "calculation_version": "1.0.3",
  "protocol_version": "1.0.0-proposed",
  "protocol_document_status": "proposed",
  "verification_revision": "2026-09-11.o3-cov",
  "oracle": {
    "class": "O3",
    "library": "mpmath 1.4.1",
    "mpmath_dps": 80,
    "backend": null,
    "rounding": null,
    "generator_id": "antenna-length-mpmath-o3",
    "generator_version": "1.0.0",
    "generator_sha256": "fa005ab7aaf07656b946ddb6e89dff3e140bd307c5807952fb13e52f0f6593bf",
    "table_sha256": "26df4b46049215ca31a8ee7718629ccad4c6c45c7b5b19bb4b9d8415a55a0c31",
    "seed": "20260911.antenna-o3",
    "independent_of_iut": true
  },
  "claim_scope": "≤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.",
  "commands": {
    "regenerate_table": "python3 generate-antenna-length-o3.py",
    "regenerate_table_repo": "python3 scripts/lib/cvp/oracles/generate-antenna-length-o3.py",
    "independent_rest": "Compare POST /api/v1/calc/antenna-length against /developers/cvp/reproduce/antenna-length-o3-tables.json",
    "run_cvp": "npm run cvp:run -- --capability electrical.rf.antenna_length",
    "rest_example": "POST https://www.calculatorx.com/api/v1/calc/antenna-length"
  },
  "public_files": {
    "table": "/developers/cvp/reproduce/antenna-length-o3-tables.json",
    "table_url": "https://www.calculatorx.com/developers/cvp/reproduce/antenna-length-o3-tables.json",
    "generator": "/developers/cvp/reproduce/generate-antenna-length-o3.py",
    "generator_url": "https://www.calculatorx.com/developers/cvp/reproduce/generate-antenna-length-o3.py",
    "checker": "/developers/cvp/reproduce/check-math-o3-rest.py",
    "checker_url": "https://www.calculatorx.com/developers/cvp/reproduce/check-math-o3-rest.py",
    "manifest": "/evidence/electrical.rf.antenna_length/1.0.3.cvp.json",
    "this_file": "/evidence/electrical.rf.antenna_length/reproduce.json"
  },
  "result_summary": {
    "passed": 10,
    "total": 10,
    "failed": 0,
    "max_error_ulp": 1,
    "threshold_ulp": 2,
    "max_threshold_ulp": 2
  },
  "vectors": [
    {
      "id": "o3-half-c",
      "kind": "canonical-half",
      "inputs": {
        "mode": "half",
        "f_Hz": 299792458,
        "length_factor": 1
      },
      "expected_f64": 0.5,
      "actual": 0.5,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-quarter-c",
      "kind": "canonical-quarter",
      "inputs": {
        "mode": "quarter",
        "f_Hz": 299792458,
        "length_factor": 1
      },
      "expected_f64": 0.25,
      "actual": 0.25,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-wavelength-c",
      "kind": "canonical-wavelength",
      "inputs": {
        "mode": "wavelength",
        "f_Hz": 299792458,
        "length_factor": 1
      },
      "expected_f64": 1,
      "actual": 1,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-full-alias",
      "kind": "alias-full",
      "inputs": {
        "mode": "full",
        "f_Hz": 299792458,
        "length_factor": 1
      },
      "expected_f64": 1,
      "actual": 1,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-k095",
      "kind": "length-factor",
      "inputs": {
        "mode": "half",
        "f_Hz": 146000000,
        "length_factor": 0.95
      },
      "expected_f64": 0.9753521749999999,
      "actual": 0.975352175,
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-hf-quarter",
      "kind": "hf",
      "inputs": {
        "mode": "quarter",
        "f_Hz": 28000000,
        "length_factor": 0.96
      },
      "expected_f64": 2.5696496399999997,
      "actual": 2.56964964,
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-vhf-half",
      "kind": "vhf",
      "inputs": {
        "mode": "half",
        "f_Hz": 146000000,
        "length_factor": 1
      },
      "expected_f64": 1.0266865,
      "actual": 1.0266865,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-uhf-wavelength",
      "kind": "uhf",
      "inputs": {
        "mode": "wavelength",
        "f_Hz": 435000000,
        "length_factor": 0.95
      },
      "expected_f64": 0.6547191611494253,
      "actual": 0.6547191611494253,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-am-broadcast",
      "kind": "lf",
      "inputs": {
        "mode": "half",
        "f_Hz": 1000000,
        "length_factor": 1
      },
      "expected_f64": 149.896229,
      "actual": 149.896229,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-2m-k095",
      "kind": "length-factor-quarter",
      "inputs": {
        "mode": "quarter",
        "f_Hz": 146000000,
        "length_factor": 0.95
      },
      "expected_f64": 0.48767608749999997,
      "actual": 0.4876760875,
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    }
  ]
}
