{
  "capability_id": "engineering.tolerance.worst_case",
  "calculation_version": "1.3.0",
  "protocol_version": "1.0.0-proposed",
  "protocol_document_status": "proposed",
  "verification_revision": "2026-09-16.o3-rss",
  "oracle": {
    "class": "O3",
    "library": "mpmath 1.4.1",
    "mpmath_dps": 80,
    "backend": null,
    "rounding": null,
    "generator_id": "worst-case-mpmath-o3",
    "generator_version": "1.0.0",
    "generator_sha256": "5cc11f9d9a844d0ecc59c131b39aafdf2e6f7e3edef0b8a4a35dfdde6c6238d3",
    "table_sha256": "607ca78611141ec50d4334238ea22b9abfdf4b07b31dabb47fea3d3e6fae3790",
    "seed": "20260916.wca-o3",
    "independent_of_iut": true
  },
  "claim_scope": "≤2 ULP vs O3 applies only to the published tabulated 1-D magnitude vectors (fields, array, signed REST, single, zeros, small, large, 3-4-5). Long equal-term sums such as n=100×0.01 remain Evidence/property and are not an O3 2-ULP claim. It is not a whole-domain guarantee and does not cover GD&T or nominal chains.",
  "commands": {
    "regenerate_table": "python3 generate-worst-case-o3.py",
    "regenerate_table_repo": "python3 scripts/lib/cvp/oracles/generate-worst-case-o3.py",
    "independent_rest": "Compare POST /api/v1/calc/worst-case-analysis against /developers/cvp/reproduce/worst-case-o3-tables.json",
    "run_cvp": "npm run cvp:run -- --capability engineering.tolerance.worst_case",
    "rest_example": "POST https://www.calculatorx.com/api/v1/calc/worst-case-analysis"
  },
  "public_files": {
    "table": "/developers/cvp/reproduce/worst-case-o3-tables.json",
    "table_url": "https://www.calculatorx.com/developers/cvp/reproduce/worst-case-o3-tables.json",
    "generator": "/developers/cvp/reproduce/generate-worst-case-o3.py",
    "generator_url": "https://www.calculatorx.com/developers/cvp/reproduce/generate-worst-case-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.tolerance.worst_case/1.3.0.cvp.json",
    "this_file": "/evidence/engineering.tolerance.worst_case/reproduce.json"
  },
  "result_summary": {
    "passed": 8,
    "total": 8,
    "failed": 0,
    "max_error_ulp": 1,
    "threshold_ulp": 2,
    "max_threshold_ulp": 2
  },
  "vectors": [
    {
      "id": "o3-tol-fields",
      "kind": "fields",
      "inputs": {
        "tol1": 0.1,
        "tol2": 0.2,
        "tol3": 0.1
      },
      "expected_f64": {
        "stack": 0.4,
        "stack_rss": 0.24494897427831783,
        "n": 3
      },
      "actual": {
        "mode": "worst_case",
        "n": 3,
        "tol": [
          0.1,
          0.2,
          0.1
        ],
        "tolerances": [
          0.1,
          0.2,
          0.1
        ],
        "unit": null,
        "stack": 0.4,
        "stack_worst": 0.4,
        "stack_rss": 0.24494897427831783,
        "rss_over_wca": 0.6123724356957946,
        "wc_over_rss": 1.632993161855452,
        "warnings": [
          {
            "code": "RSS_COMPARISON_ASSUMPTION",
            "severity": "info",
            "detail": "RSS comparison assumes tolerance magnitudes have a consistent statistical basis and contributions are independent.",
            "suggestion": "For distribution-aware statistical analysis, use Monte Carlo Tolerance Analysis (engineering.tolerance.monte_carlo)."
          },
          {
            "code": "WCA_MODEL_SCOPE",
            "severity": "info",
            "detail": "Worst-case bounds the declared 1-D linear stack when every included contributor remains within its specified limits. Model assumes unit sensitivity |cᵢ|=1.",
            "suggestion": "For nominal / direction / asymmetric ±Tol use Tolerance Stack-up. For general |cᵢ| use Uncertainty Propagation."
          }
        ]
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-array",
      "kind": "canonical-array",
      "inputs": {
        "tolerances": [
          0.1,
          0.2,
          0.1
        ],
        "unit": "mm"
      },
      "expected_f64": {
        "stack": 0.4,
        "stack_rss": 0.24494897427831783,
        "n": 3
      },
      "actual": {
        "mode": "worst_case",
        "n": 3,
        "tol": [
          0.1,
          0.2,
          0.1
        ],
        "tolerances": [
          0.1,
          0.2,
          0.1
        ],
        "unit": "mm",
        "stack": 0.4,
        "stack_worst": 0.4,
        "stack_rss": 0.24494897427831783,
        "rss_over_wca": 0.6123724356957946,
        "wc_over_rss": 1.632993161855452,
        "warnings": [
          {
            "code": "RSS_COMPARISON_ASSUMPTION",
            "severity": "info",
            "detail": "RSS comparison assumes tolerance magnitudes have a consistent statistical basis and contributions are independent.",
            "suggestion": "For distribution-aware statistical analysis, use Monte Carlo Tolerance Analysis (engineering.tolerance.monte_carlo)."
          },
          {
            "code": "WCA_MODEL_SCOPE",
            "severity": "info",
            "detail": "Worst-case bounds the declared 1-D linear stack when every included contributor remains within its specified limits. Model assumes unit sensitivity |cᵢ|=1.",
            "suggestion": "For nominal / direction / asymmetric ±Tol use Tolerance Stack-up. For general |cᵢ| use Uncertainty Propagation."
          }
        ]
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-signed",
      "kind": "signed-rest",
      "inputs": {
        "tol1": 0.1,
        "tol2": -0.2,
        "tol3": 0.3
      },
      "expected_f64": {
        "stack": 0.6,
        "stack_rss": 0.3741657386773941,
        "n": 3
      },
      "actual": {
        "mode": "worst_case",
        "n": 3,
        "tol": [
          0.1,
          -0.2,
          0.3
        ],
        "tolerances": [
          0.1,
          -0.2,
          0.3
        ],
        "unit": null,
        "stack": 0.6000000000000001,
        "stack_worst": 0.6000000000000001,
        "stack_rss": 0.37416573867739417,
        "rss_over_wca": 0.6236095644623235,
        "wc_over_rss": 1.6035674514745464,
        "warnings": [
          {
            "code": "SIGN_IGNORED_FOR_TOLERANCE_MAGNITUDE",
            "severity": "warning",
            "detail": "Negative values are treated as tolerance magnitudes; the sign is ignored. This calculator does not encode dimensional direction.",
            "suggestion": "For +/− dimensional direction, use Tolerance Stack-up Engineering mode."
          },
          {
            "code": "RSS_COMPARISON_ASSUMPTION",
            "severity": "info",
            "detail": "RSS comparison assumes tolerance magnitudes have a consistent statistical basis and contributions are independent.",
            "suggestion": "For distribution-aware statistical analysis, use Monte Carlo Tolerance Analysis (engineering.tolerance.monte_carlo)."
          },
          {
            "code": "WCA_MODEL_SCOPE",
            "severity": "info",
            "detail": "Worst-case bounds the declared 1-D linear stack when every included contributor remains within its specified limits. Model assumes unit sensitivity |cᵢ|=1.",
            "suggestion": "For nominal / direction / asymmetric ±Tol use Tolerance Stack-up. For general |cᵢ| use Uncertainty Propagation."
          }
        ]
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-one",
      "kind": "single",
      "inputs": {
        "tolerances": [
          0.2
        ]
      },
      "expected_f64": {
        "stack": 0.2,
        "stack_rss": 0.2,
        "n": 1
      },
      "actual": {
        "mode": "worst_case",
        "n": 1,
        "tol": [
          0.2
        ],
        "tolerances": [
          0.2
        ],
        "unit": null,
        "stack": 0.2,
        "stack_worst": 0.2,
        "stack_rss": 0.2,
        "rss_over_wca": 1,
        "wc_over_rss": 1,
        "warnings": [
          {
            "code": "RSS_COMPARISON_ASSUMPTION",
            "severity": "info",
            "detail": "RSS comparison assumes tolerance magnitudes have a consistent statistical basis and contributions are independent.",
            "suggestion": "For distribution-aware statistical analysis, use Monte Carlo Tolerance Analysis (engineering.tolerance.monte_carlo)."
          },
          {
            "code": "WCA_MODEL_SCOPE",
            "severity": "info",
            "detail": "Worst-case bounds the declared 1-D linear stack when every included contributor remains within its specified limits. Model assumes unit sensitivity |cᵢ|=1.",
            "suggestion": "For nominal / direction / asymmetric ±Tol use Tolerance Stack-up. For general |cᵢ| use Uncertainty Propagation."
          }
        ]
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-zeros",
      "kind": "zeros",
      "inputs": {
        "tol": [
          0,
          0,
          0
        ]
      },
      "expected_f64": {
        "stack": 0,
        "stack_rss": 0,
        "n": 3
      },
      "actual": {
        "mode": "worst_case",
        "n": 3,
        "tol": [
          0,
          0,
          0
        ],
        "tolerances": [
          0,
          0,
          0
        ],
        "unit": null,
        "stack": 0,
        "stack_worst": 0,
        "stack_rss": 0,
        "rss_over_wca": null,
        "wc_over_rss": null,
        "warnings": [
          {
            "code": "RSS_COMPARISON_ASSUMPTION",
            "severity": "info",
            "detail": "RSS comparison assumes tolerance magnitudes have a consistent statistical basis and contributions are independent.",
            "suggestion": "For distribution-aware statistical analysis, use Monte Carlo Tolerance Analysis (engineering.tolerance.monte_carlo)."
          },
          {
            "code": "WCA_MODEL_SCOPE",
            "severity": "info",
            "detail": "Worst-case bounds the declared 1-D linear stack when every included contributor remains within its specified limits. Model assumes unit sensitivity |cᵢ|=1.",
            "suggestion": "For nominal / direction / asymmetric ±Tol use Tolerance Stack-up. For general |cᵢ| use Uncertainty Propagation."
          }
        ]
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-small",
      "kind": "small",
      "inputs": {
        "tolerances": [
          1e-12,
          2e-12
        ]
      },
      "expected_f64": {
        "stack": 3e-12,
        "stack_rss": 2.2360679774997897e-12,
        "n": 2
      },
      "actual": {
        "mode": "worst_case",
        "n": 2,
        "tol": [
          1e-12,
          2e-12
        ],
        "tolerances": [
          1e-12,
          2e-12
        ],
        "unit": null,
        "stack": 3e-12,
        "stack_worst": 3e-12,
        "stack_rss": 2.2360679774997897e-12,
        "rss_over_wca": 0.7453559924999299,
        "wc_over_rss": 1.3416407864998738,
        "warnings": [
          {
            "code": "RSS_COMPARISON_ASSUMPTION",
            "severity": "info",
            "detail": "RSS comparison assumes tolerance magnitudes have a consistent statistical basis and contributions are independent.",
            "suggestion": "For distribution-aware statistical analysis, use Monte Carlo Tolerance Analysis (engineering.tolerance.monte_carlo)."
          },
          {
            "code": "WCA_MODEL_SCOPE",
            "severity": "info",
            "detail": "Worst-case bounds the declared 1-D linear stack when every included contributor remains within its specified limits. Model assumes unit sensitivity |cᵢ|=1.",
            "suggestion": "For nominal / direction / asymmetric ±Tol use Tolerance Stack-up. For general |cᵢ| use Uncertainty Propagation."
          }
        ]
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-large",
      "kind": "large",
      "inputs": {
        "tolerances": [
          1000000,
          2000000
        ]
      },
      "expected_f64": {
        "stack": 3000000,
        "stack_rss": 2236067.9774997896,
        "n": 2
      },
      "actual": {
        "mode": "worst_case",
        "n": 2,
        "tol": [
          1000000,
          2000000
        ],
        "tolerances": [
          1000000,
          2000000
        ],
        "unit": null,
        "stack": 3000000,
        "stack_worst": 3000000,
        "stack_rss": 2236067.9774997896,
        "rss_over_wca": 0.7453559924999299,
        "wc_over_rss": 1.3416407864998738,
        "warnings": [
          {
            "code": "RSS_COMPARISON_ASSUMPTION",
            "severity": "info",
            "detail": "RSS comparison assumes tolerance magnitudes have a consistent statistical basis and contributions are independent.",
            "suggestion": "For distribution-aware statistical analysis, use Monte Carlo Tolerance Analysis (engineering.tolerance.monte_carlo)."
          },
          {
            "code": "WCA_MODEL_SCOPE",
            "severity": "info",
            "detail": "Worst-case bounds the declared 1-D linear stack when every included contributor remains within its specified limits. Model assumes unit sensitivity |cᵢ|=1.",
            "suggestion": "For nominal / direction / asymmetric ±Tol use Tolerance Stack-up. For general |cᵢ| use Uncertainty Propagation."
          }
        ]
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-pythag",
      "kind": "pythagorean",
      "inputs": {
        "tolerances": [
          0.3,
          0.4
        ]
      },
      "expected_f64": {
        "stack": 0.7,
        "stack_rss": 0.5,
        "n": 2
      },
      "actual": {
        "mode": "worst_case",
        "n": 2,
        "tol": [
          0.3,
          0.4
        ],
        "tolerances": [
          0.3,
          0.4
        ],
        "unit": null,
        "stack": 0.7,
        "stack_worst": 0.7,
        "stack_rss": 0.5,
        "rss_over_wca": 0.7142857142857143,
        "wc_over_rss": 1.4,
        "warnings": [
          {
            "code": "RSS_COMPARISON_ASSUMPTION",
            "severity": "info",
            "detail": "RSS comparison assumes tolerance magnitudes have a consistent statistical basis and contributions are independent.",
            "suggestion": "For distribution-aware statistical analysis, use Monte Carlo Tolerance Analysis (engineering.tolerance.monte_carlo)."
          },
          {
            "code": "WCA_MODEL_SCOPE",
            "severity": "info",
            "detail": "Worst-case bounds the declared 1-D linear stack when every included contributor remains within its specified limits. Model assumes unit sensitivity |cᵢ|=1.",
            "suggestion": "For nominal / direction / asymmetric ±Tol use Tolerance Stack-up. For general |cᵢ| use Uncertainty Propagation."
          }
        ]
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    }
  ]
}
