{
  "capability_id": "engineering.uncertainty.tur",
  "calculation_version": "1.0.1",
  "protocol_version": "1.0.0-proposed",
  "protocol_document_status": "proposed",
  "verification_revision": "2026-09-23.o2-o3",
  "oracle": {
    "class": "O3",
    "library": "mpmath 1.4.1",
    "mpmath_dps": 80,
    "backend": null,
    "rounding": null,
    "generator_id": "tur-mpmath-o3",
    "generator_version": "1.0.0",
    "generator_sha256": "e10c4f6b4127424bad87212df5b9087cba62d8f5d3d0c5623579f262a5f211f0",
    "table_sha256": "71c97eec7d89476da75fd8e257bda368519bbc2fe7605e74622e18ce663ec48c",
    "seed": "20260923.tur-o3",
    "independent_of_iut": true
  },
  "claim_scope": "O2: ANSI/NCSL Z540.3 two-sided TUR = span/(2U) vs a separate-module identity (≤2 ULP). Not a TUR≥4 verdict, not a guard band, and not U = k·u_c. ≤2 ULP vs O3 applies only to the published tabulated Z540.3 vectors (limits, span, half-width, aliases, and one awkward span). It is not a whole-domain guarantee and does not cover a TUR≥4 verdict, a guard band, or U = k·u_c.",
  "commands": {
    "regenerate_table": "python3 generate-tur-o3.py",
    "regenerate_table_repo": "python3 scripts/lib/cvp/oracles/generate-tur-o3.py",
    "independent_rest": "Compare POST /api/v1/calc/tur against /developers/cvp/reproduce/tur-o3-tables.json",
    "run_cvp": "npm run cvp:run -- --capability engineering.uncertainty.tur",
    "rest_example": "POST https://www.calculatorx.com/api/v1/calc/tur"
  },
  "public_files": {
    "table": "/developers/cvp/reproduce/tur-o3-tables.json",
    "table_url": "https://www.calculatorx.com/developers/cvp/reproduce/tur-o3-tables.json",
    "generator": "/developers/cvp/reproduce/generate-tur-o3.py",
    "generator_url": "https://www.calculatorx.com/developers/cvp/reproduce/generate-tur-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/engineering.uncertainty.tur/1.0.1.cvp.json",
    "this_file": "/evidence/engineering.uncertainty.tur/reproduce.json"
  },
  "result_summary": {
    "passed": 8,
    "total": 8,
    "failed": 0,
    "max_error_ulp": 1,
    "threshold_ulp": 2,
    "max_threshold_ulp": 2
  },
  "vectors": [
    {
      "id": "o3-limits",
      "kind": "limits",
      "inputs": {
        "U": 1,
        "lsl": 0,
        "usl": 5
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "TUR": 2.5,
        "T": 5,
        "U": 1
      },
      "actual": {
        "TUR": 2.5,
        "T": 5,
        "U": 1,
        "lsl": 0,
        "usl": 5
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-span",
      "kind": "span",
      "inputs": {
        "U": 0.5,
        "T": 4
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "TUR": 4,
        "T": 4,
        "U": 0.5
      },
      "actual": {
        "TUR": 4,
        "T": 4,
        "U": 0.5
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-tol",
      "kind": "half",
      "inputs": {
        "U": 0.5,
        "tol": 2
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "TUR": 4,
        "T": 4,
        "U": 0.5
      },
      "actual": {
        "TUR": 4,
        "T": 4,
        "U": 0.5,
        "tol": 2
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-alias",
      "kind": "alias",
      "inputs": {
        "U_exp": 1,
        "LSL": -1,
        "USL": 3
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "TUR": 2,
        "T": 4,
        "U": 1
      },
      "actual": {
        "TUR": 2,
        "T": 4,
        "U": 1,
        "lsl": -1,
        "usl": 3
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-span-alias",
      "kind": "alias",
      "inputs": {
        "span": 8,
        "U": 2
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "TUR": 2,
        "T": 8,
        "U": 2
      },
      "actual": {
        "TUR": 2,
        "T": 8,
        "U": 2
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-half",
      "kind": "half",
      "inputs": {
        "U": 0.25,
        "tol": 1
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "TUR": 4,
        "T": 2,
        "U": 0.25
      },
      "actual": {
        "TUR": 4,
        "T": 2,
        "U": 0.25,
        "tol": 1
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-wide",
      "kind": "limits",
      "inputs": {
        "U": 1,
        "lsl": -10,
        "usl": 10
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "TUR": 10,
        "T": 20,
        "U": 1
      },
      "actual": {
        "TUR": 10,
        "T": 20,
        "U": 1,
        "lsl": -10,
        "usl": 10
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-awkward",
      "kind": "limits",
      "inputs": {
        "U": 0.15,
        "lsl": 1.1,
        "usl": 3.4
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "TUR": 7.666666666666667,
        "T": 2.3,
        "U": 0.15
      },
      "actual": {
        "TUR": 7.666666666666666,
        "T": 2.3,
        "U": 0.15,
        "lsl": 1.1,
        "usl": 3.4
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    }
  ]
}
