{
  "capability_id": "math.root",
  "calculation_version": "1.0.5",
  "protocol_version": "1.0.0-proposed",
  "protocol_document_status": "proposed",
  "verification_revision": "2026-09-09.root-cvp",
  "oracle": {
    "class": "O3",
    "library": "mpmath 1.4.1",
    "mpmath_dps": 80,
    "backend": null,
    "rounding": null,
    "generator_id": "root-mpmath-o3",
    "generator_version": "1.0.0",
    "generator_sha256": "3a38d49784974fade813298be4a21a1c1c5c91d288c1773b2802c300a069e93c",
    "table_sha256": "d0c85277acd014046ec073aca6650c34eedfa2ec3a205af9af4a7ecb6506f324",
    "seed": "20260909",
    "independent_of_iut": true
  },
  "claim_scope": "Path-specific ULP vs O3 applies only to the 19 published tabulated vectors: identity n=1 (0 ULP); Math.sqrt including tiny/huge (≤2); Math.cbrt including odd-negative and tiny/huge (≤2); moderate Math.pow including odd-negative, ⁸√15, and max safe n (≤2); extreme Math.pow at |a|=1e±300 (≤64). It is not a whole-domain guarantee. Even roots of a<0 and illegal n are contract errors (NOT_REAL / INVALID_INDEX), not ULP claims.",
  "commands": {
    "regenerate_table": "python3 generate-root-o3.py",
    "regenerate_table_repo": "python3 scripts/lib/cvp/oracles/generate-root-o3.py",
    "independent_rest": "python3 check-math-o3-rest.py --reproduce reproduce.json",
    "run_cvp": "npm run cvp:run -- --capability math.root",
    "rest_example": "POST https://www.calculatorx.com/api/v1/calc/root"
  },
  "public_files": {
    "table": "/developers/cvp/reproduce/root-o3-tables.json",
    "table_url": "https://www.calculatorx.com/developers/cvp/reproduce/root-o3-tables.json",
    "generator": "/developers/cvp/reproduce/generate-root-o3.py",
    "generator_url": "https://www.calculatorx.com/developers/cvp/reproduce/generate-root-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/math.root/1.0.5.cvp.json",
    "this_file": "/evidence/math.root/reproduce.json"
  },
  "result_summary": {
    "passed": 19,
    "total": 19,
    "failed": 0,
    "max_error_ulp": 55,
    "threshold_ulp": 2,
    "max_threshold_ulp": 64
  },
  "vectors": [
    {
      "id": "o3-root-42-1",
      "kind": "identity",
      "inputs": {
        "a": 42,
        "n": 1
      },
      "expected_f64": 42,
      "actual": 42,
      "error_ulp": 0,
      "threshold_ulp": 0,
      "ok": true
    },
    {
      "id": "o3-root-100-2",
      "kind": "sqrt-exact",
      "inputs": {
        "a": 100,
        "n": 2
      },
      "expected_f64": 10,
      "actual": 10,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-2-2",
      "kind": "sqrt-irrational",
      "inputs": {
        "a": 2,
        "n": 2
      },
      "expected_f64": 1.4142135623730951,
      "actual": 1.4142135623730951,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-tiny-2",
      "kind": "sqrt-tiny",
      "inputs": {
        "a": 1e-300,
        "n": 2
      },
      "expected_f64": 1e-150,
      "actual": 1e-150,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-huge-2",
      "kind": "sqrt-huge",
      "inputs": {
        "a": 1e+300,
        "n": 2
      },
      "expected_f64": 1e+150,
      "actual": 1e+150,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-8-3",
      "kind": "cbrt-exact",
      "inputs": {
        "a": 8,
        "n": 3
      },
      "expected_f64": 2,
      "actual": 2,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-27-3",
      "kind": "cbrt-exact",
      "inputs": {
        "a": 27,
        "n": 3
      },
      "expected_f64": 3,
      "actual": 3,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-neg8-3",
      "kind": "cbrt-odd-negative",
      "inputs": {
        "a": -8,
        "n": 3
      },
      "expected_f64": -2,
      "actual": -2,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-neg27-3",
      "kind": "cbrt-odd-negative",
      "inputs": {
        "a": -27,
        "n": 3
      },
      "expected_f64": -3,
      "actual": -3,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-tiny-3",
      "kind": "cbrt-tiny",
      "inputs": {
        "a": 1e-300,
        "n": 3
      },
      "expected_f64": 1e-100,
      "actual": 1e-100,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-huge-3",
      "kind": "cbrt-huge",
      "inputs": {
        "a": 1e+300,
        "n": 3
      },
      "expected_f64": 1e+100,
      "actual": 1e+100,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-16-4",
      "kind": "pow-exact",
      "inputs": {
        "a": 16,
        "n": 4
      },
      "expected_f64": 2,
      "actual": 2,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-32-5",
      "kind": "pow-exact",
      "inputs": {
        "a": 32,
        "n": 5
      },
      "expected_f64": 2,
      "actual": 2,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-1-7",
      "kind": "pow-exact",
      "inputs": {
        "a": 1,
        "n": 7
      },
      "expected_f64": 1,
      "actual": 1,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-neg32-5",
      "kind": "pow-odd-negative",
      "inputs": {
        "a": -32,
        "n": 5
      },
      "expected_f64": -2,
      "actual": -2,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-15-8",
      "kind": "pow-irrational",
      "inputs": {
        "a": 15,
        "n": 8
      },
      "expected_f64": 1.402850552006674,
      "actual": 1.402850552006674,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-maxsafe-n",
      "kind": "pow-max-safe-index",
      "inputs": {
        "a": 16,
        "n": 9007199254740991
      },
      "expected_f64": 1.0000000000000002,
      "actual": 1.0000000000000002,
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-root-tiny-5",
      "kind": "pow-tiny",
      "inputs": {
        "a": 1e-300,
        "n": 5
      },
      "expected_f64": 1e-60,
      "actual": 9.999999999999924e-61,
      "error_ulp": 55,
      "threshold_ulp": 64,
      "ok": true
    },
    {
      "id": "o3-root-huge-5",
      "kind": "pow-huge",
      "inputs": {
        "a": 1e+300,
        "n": 5
      },
      "expected_f64": 1e+60,
      "actual": 1.0000000000000076e+60,
      "error_ulp": 43,
      "threshold_ulp": 64,
      "ok": true
    }
  ]
}
