{
  "artifact_id": "quad.multidim.comparisons",
  "claim_boundary": "Exact labels describe mathematical configuration. Timing ratios additionally require an explicit matched timed region; family, strong, node, and capability matches are descriptive.",
  "environment": {
    "backend": "cpu",
    "device": "cpu:0",
    "device_kind": "cpu",
    "jax": "0.10.1",
    "jax_enable_x64": true,
    "jaxlib": "0.10.1",
    "machine": "arm64",
    "numpy": "2.4.6",
    "platform": "macOS-26.1-arm64-arm-64bit-Mach-O",
    "python": "3.13.7"
  },
  "payload_sha256": "6e11aa3fdc0f7b7b5e7b6aec457367babd4c93110b45f69a72463ac77be09597",
  "records": [
    {
      "case_id": "rotated_smooth_d4",
      "controls": {
        "atol": 1e-09,
        "matched_control_description": "Same 4D unit hyperrectangle, integrand, tolerances, and Genz-Malik rule family; regional controller details differ.",
        "max_subdivisions": 1024,
        "rtol": 1e-09,
        "rule": "genz-malik"
      },
      "elapsed_seconds": 0.0023467917926609516,
      "evaluations": null,
      "label": "family-matched",
      "library": "scipy",
      "truth_error": 2.220446049250313e-16,
      "value": 1.0333333333333332,
      "version": "1.16.0"
    },
    {
      "case_id": "sobol_exponential_d2",
      "controls": {
        "bits": 53,
        "dimension": 2,
        "level": 8,
        "matched_control_description": "Bit-exact 53-bit unscrambled Sobol nodes, equal-weight mean, same ordering, domain, and separable exponential integrand. SciPy times engine construction and point generation while Jaxstro's compiled warm kernel specializes the fixed formula, so the elapsed times are not ratio-eligible.",
        "scramble": false,
        "timing_relation": "execution-model-unmatched",
        "warm_repeats": 5
      },
      "elapsed_seconds": 9.308289736509323e-05,
      "evaluations": 256,
      "label": "exact",
      "library": "scipy",
      "truth_error": 0.0015702794920972596,
      "value": 0.4011466803858253,
      "version": "1.16.0"
    },
    {
      "case_id": "sobol_exponential_d4",
      "controls": {
        "bits": 53,
        "dimension": 4,
        "level": 8,
        "matched_control_description": "Bit-exact 53-bit unscrambled Sobol nodes, equal-weight mean, same ordering, domain, and separable exponential integrand. SciPy times engine construction and point generation while Jaxstro's compiled warm kernel specializes the fixed formula, so the elapsed times are not ratio-eligible.",
        "scramble": false,
        "timing_relation": "execution-model-unmatched",
        "warm_repeats": 5
      },
      "elapsed_seconds": 7.350044324994087e-05,
      "evaluations": 256,
      "label": "exact",
      "library": "scipy",
      "truth_error": 0.001838269484750965,
      "value": 0.16149956963593623,
      "version": "1.16.0"
    },
    {
      "case_id": "sobol_exponential_d8",
      "controls": {
        "bits": 53,
        "dimension": 8,
        "level": 8,
        "matched_control_description": "Bit-exact 53-bit unscrambled Sobol nodes, equal-weight mean, same ordering, domain, and separable exponential integrand. SciPy times engine construction and point generation while Jaxstro's compiled warm kernel specializes the fixed formula, so the elapsed times are not ratio-eligible.",
        "scramble": false,
        "timing_relation": "execution-model-unmatched",
        "warm_repeats": 5
      },
      "elapsed_seconds": 7.287506014108658e-05,
      "evaluations": 256,
      "label": "exact",
      "library": "scipy",
      "truth_error": 0.0028301499575093085,
      "value": 0.02832188072347618,
      "version": "1.16.0"
    },
    {
      "case_id": "sobol_exponential_d16",
      "controls": {
        "bits": 53,
        "dimension": 16,
        "level": 8,
        "matched_control_description": "Bit-exact 53-bit unscrambled Sobol nodes, equal-weight mean, same ordering, domain, and separable exponential integrand. SciPy times engine construction and point generation while Jaxstro's compiled warm kernel specializes the fixed formula, so the elapsed times are not ratio-eligible.",
        "scramble": false,
        "timing_relation": "execution-model-unmatched",
        "warm_repeats": 5
      },
      "elapsed_seconds": 8.183298632502556e-05,
      "evaluations": 256,
      "label": "exact",
      "library": "scipy",
      "truth_error": 0.0038468730600225483,
      "value": 0.00449670139746709,
      "version": "1.16.0"
    },
    {
      "case_id": "tensor_polynomial_d2",
      "controls": {
        "depth": 4,
        "macos_relocation_workaround": true,
        "matched_control_description": "Same 2D unit hyperrectangle and polynomial moment with a Clenshaw-Curtis sparse family; index conventions are library-specific.",
        "rule": "clenshaw-curtis",
        "type": "level"
      },
      "elapsed_seconds": 0.0034483340568840504,
      "evaluations": 65,
      "label": "strong-match",
      "library": "tasmanian",
      "truth_error": 1.3322676295501878e-15,
      "value": 3.361111111111112,
      "version": "8.2"
    },
    {
      "case_id": "tensor_polynomial_d2",
      "controls": {
        "backend": "jax",
        "dtype": "float64",
        "gradient": 3.361111111111112,
        "jax_version": "0.10.1",
        "matched_control_description": "Same float64 12-point-per-axis Gauss-Legendre mathematical formula, 2D unit hyperrectangle, integrand, and amplitude derivative; independently generated nodes and weights agree within float64 roundoff but are not bit-identical.",
        "method": "GaussLegendre",
        "nodes_per_axis": 12
      },
      "elapsed_seconds": 0.8049713331274688,
      "evaluations": 144,
      "label": "strong-match",
      "library": "torchquad",
      "truth_error": 8.881784197001252e-16,
      "value": 3.3611111111111116,
      "version": "0.5.0"
    }
  ],
  "schema_version": 1,
  "source_hashes": {
    "adapters": "1c63b14c07b77d8f78a20f1b5d5d8789f04e2f7caf055ca263f860e849ae02a8",
    "benchmark": "88986b6e2e8fdb2e42064700f6d3fb0ddcdf8399d70de3c0ea5e5f60f750360e",
    "truth_evidence": "30902fdfcaf29ee32c5d5b86c5fa02041c5af977d0c37fed8f03079c7f9510df"
  },
  "source_revision": "e091640eefc7322714126e06e380ca3f9486af07",
  "supersedes": {
    "commit": "a1764ec",
    "reason": "Corrects tautological memory normalization, unmatched timed regions, and unproven Torchquad calibration."
  }
}
