{
  "schema": 1,
  "date": "2026-10-30",
  "package_version": "3.0.2",
  "symbolica_revision": "symbolica-e227fe7",
  "hardware": "AMD Ryzen 9 5900X",
  "kernel": "7.2.11-arch1-1",
  "logical_cpu": 6,
  "node": "v26.12.1",
  "pyodide": "314.0.7",
  "pyodide_abi": "2026_0",
  "wasm_wheel_sha256": "77169863665a4e4d220e0db269a6766d3bb69d0d9fc996cdc96883a3c8f3572f",
  "wasm_wheel_git_blob": "0a086dc16a1697b56d8f3ac05a5f683721b9ba70",
  "native_module_sha256": "6ea87e1d0bd2ddafdfc2a30b356ba40e1122fc66280fb969eb74083482fd6890",
  "wasm_module_sha256": "5f4d00ba0483aab9a124772c5950166cfeac13d853ef72e912a451b95fd1b4d5",
  "methodology": "Three fresh processes per backend, order N/W then W/N then N/W, all pinned to logical CPU 6. Median of process medians; nine calibrated batches target 120 ms each after at least 5 s warmup. Large derivative has at least 20 s warmup and 2000 operations. Algebra inputs are prepared outside timing except parsing. Evaluators use n_cores=1 with default JIT enabled where available: native JIT, WASM optimized interpreter. Construction and the first single-point evaluation are recorded separately before warmup. Timed evaluator calls use preallocated contiguous float64 NumPy arrays; output allocation and Python-call overhead are included. Single-point calls and 256-point batches are both measured; batch results are normalized per point. All 256 outputs pass independent (1+x+y)^30 checks at rtol=1e-12. Runtime/package startup and downloads are excluded. No sample exclusions.",
  "workloads": {
    "parse_496_terms": "Parse expanded (1+x+y)^30, 496 terms",
    "expand_5456_terms": "Expand (1+x+y+z)^30, 5456 terms",
    "factor_small": "Factor x^12-y^12",
    "derivative_5456_terms": "Differentiate expanded (1+x+y+z)^30 with respect to x",
    "flint_dense_multiply": "Multiply dense polynomials through Python: 455 x 364 terms",
    "flint_dense_exact_divide": "Exact polynomial division: 1540 terms divided by 120 terms",
    "evaluate_496_terms": "Direct Expression.evaluate control at x=0.1,y=0.2; not used in the release table",
    "evaluator_496_terms_single": "Prebuilt evaluator of expanded (1+x+y)^30, one point x=0.1,y=0.2 per call",
    "evaluator_496_terms_batch256": "Same evaluator, 256 varying points per call: x in [0.05,0.15], y in [0.15,0.25]; time per point"
  },
  "units": {
    "results": "nanoseconds per operation; evaluator rows are nanoseconds per point",
    "sessions": "nanoseconds per call before normalization",
    "setup": "nanoseconds"
  },
  "setup_medians": {
    "native": {
      "build_ns": 2721044,
      "first_evaluate_ns": 3878081,
      "combined_ns": 6625314
    },
    "wasm": {
      "build_ns": 44145364,
      "first_evaluate_ns": 13571343,
      "combined_ns": 54980646
    }
  },
  "results": {
    "derivative_5456_terms": {
      "native_ns": 6195801.421052632,
      "wasm_ns": 8792413.384615384,
      "ratio": 1.4190921863214916,
      "points_per_call": 1,
      "process_medians_ns": {
        "native": [
          6193087.263157895,
          6195801.421052632,
          6246258.578947368
        ],
        "wasm": [
          8792413.384615384,
          8880481.083333334,
          8728241.538461538
        ]
      }
    },
    "evaluate_496_terms": {
      "native_ns": 128747.49512459371,
      "wasm_ns": 1430187.453488372,
      "ratio": 11.10846818498742,
      "points_per_call": 1,
      "process_medians_ns": {
        "native": [
          128747.49512459371,
          127957.8945686901,
          136162.5
        ],
        "wasm": [
          1457510.256097561,
          1376179.91954023,
          1430187.453488372
        ]
      }
    },
    "evaluator_496_terms_batch256": {
      "native_ns": 75.06341809037202,
      "wasm_ns": 2535.261612601902,
      "ratio": 33.77492894807419,
      "points_per_call": 256,
      "process_medians_ns": {
        "native": [
          72.87959972872923,
          75.49854939322333,
          75.06341809037202
        ],
        "wasm": [
          2546.6801970108695,
          2535.239300271739,
          2535.261612601902
        ]
      }
    },
    "evaluator_496_terms_single": {
      "native_ns": 1014.2492325079279,
      "wasm_ns": 3928.6501079913605,
      "ratio": 3.8734563281620744,
      "points_per_call": 1,
      "process_medians_ns": {
        "native": [
          1014.2492325079279,
          1045.2031851099946,
          1013.7418872112183
        ],
        "wasm": [
          3978.8281645364304,
          3906.2788636363634,
          3928.6501079913605
        ]
      }
    },
    "expand_5456_terms": {
      "native_ns": 6197923.894736842,
      "wasm_ns": 9409660.833333334,
      "ratio": 1.518195607616905,
      "points_per_call": 1,
      "process_medians_ns": {
        "native": [
          6140525.7894736845,
          6241244.263157895,
          6197923.894736842
        ],
        "wasm": [
          9409660.833333334,
          9398074.666666666,
          9636111.916666666
        ]
      }
    },
    "factor_small": {
      "native_ns": 283945.6807511737,
      "wasm_ns": 439970.9788732394,
      "ratio": 1.5494899507162896,
      "points_per_call": 1,
      "process_medians_ns": {
        "native": [
          286909.88333333336,
          282568.4704491726,
          283945.6807511737
        ],
        "wasm": [
          433111.8375451263,
          439970.9788732394,
          776598.9342105263
        ]
      }
    },
    "flint_dense_exact_divide": {
      "native_ns": 775875.3831168831,
      "wasm_ns": 1264002.0842105264,
      "ratio": 1.6291302852433824,
      "points_per_call": 1,
      "process_medians_ns": {
        "native": [
          775875.3831168831,
          772366.5290322581,
          786656.6987951808
        ],
        "wasm": [
          1264002.0842105264,
          1253546.6631578947,
          1279704.2340425532
        ]
      }
    },
    "flint_dense_multiply": {
      "native_ns": 799707.5866666667,
      "wasm_ns": 1602054.1351351351,
      "ratio": 2.0032999084237795,
      "points_per_call": 1,
      "process_medians_ns": {
        "native": [
          793996.4701986755,
          799707.5866666667,
          801845.48
        ],
        "wasm": [
          1595135.4133333333,
          1652147.6,
          1602054.1351351351
        ]
      }
    },
    "parse_496_terms": {
      "native_ns": 511123.1068376068,
      "wasm_ns": 698675.8571428572,
      "ratio": 1.3669424211041183,
      "points_per_call": 1,
      "process_medians_ns": {
        "native": [
          509174.9786324786,
          511123.1068376068,
          514880.4956896552
        ],
        "wasm": [
          686894.1812865497,
          703849.6896551724,
          698675.8571428572
        ]
      }
    }
  },
  "sessions": {
    "native": {
      "1": {
        "evaluator_setup": {
          "build_ns": 2848208,
          "first_evaluate_ns": 3836174,
          "input_type": "preallocated contiguous numpy.float64 arrays",
          "jit_compile": "default (True; native only)",
          "n_cores": 1,
          "numpy": "2.5.4"
        },
        "input_sha256": "5a4f508778d3f76120545c297d1feae882cd7856609063a222004c36cef45e54",
        "module": "/home/ben/Sync/Work/website/.quarto/wasm-evaluator-20261030/native/lib/python3.14/site-packages/symbolica/__init__.py",
        "python": "3.14.8 (main, Oct  2 2026, 10:23:31) [GCC 16.2.1 20260810]",
        "results": {
          "derivative_5456_terms": {
            "iterations_per_sample": 19,
            "median_ns": 6193087.263157895,
            "samples_ns": [
              6196882.368421053,
              6301160.368421053,
              6193087.263157895,
              6174390.157894737,
              6187309.47368421,
              6184316.368421053,
              6202829.47368421,
              6209679.7894736845,
              6191719.368421053
            ],
            "warmup_operations": 3192,
            "warmup_seconds": 20.00199609899937
          },
          "evaluate_496_terms": {
            "iterations_per_sample": 923,
            "median_ns": 128747.49512459371,
            "samples_ns": [
              128747.49512459371,
              131711.65980498376,
              135451.3499458288,
              136757.6977248104,
              157272.3781148429,
              128338.27735644637,
              128712.3900325027,
              128359.78114842903,
              128520.74756229686
            ],
            "warmup_operations": 38784,
            "warmup_seconds": 5.001456745998439
          },
          "evaluator_496_terms_batch256": {
            "iterations_per_sample": 6382,
            "median_ns": 18657.177530554683,
            "points_per_call": 256,
            "samples_ns": [
              18748.0864932623,
              18714.230492008774,
              18657.177530554683,
              18663.895017235976,
              18610.159354434345,
              18635.85678470699,
              18596.926825446568,
              18608.71027890943,
              18702.74663115011
            ],
            "warmup_operations": 265728,
            "warmup_seconds": 5.009438015998967
          },
          "evaluator_496_terms_single": {
            "iterations_per_sample": 118568,
            "median_ns": 1014.2492325079279,
            "points_per_call": 1,
            "samples_ns": [
              1015.2757489373187,
              1015.2160110653803,
              1031.4560168004857,
              1015.777680318467,
              1012.233823628635,
              1013.1967900276635,
              1014.2492325079279,
              1012.4340884555698,
              1012.2604412657715
            ],
            "warmup_operations": 4874240,
            "warmup_seconds": 5.003700289000335
          },
          "expand_5456_terms": {
            "iterations_per_sample": 19,
            "median_ns": 6140525.7894736845,
            "samples_ns": [
              6166792.52631579,
              6153825.263157895,
              6134349.894736842,
              6132774.2105263155,
              6136207.578947368,
              6137792.2105263155,
              6166861.578947368,
              6163324.315789473,
              6140525.7894736845
            ],
            "warmup_operations": 814,
            "warmup_seconds": 5.003169696999976
          },
          "factor_small": {
            "iterations_per_sample": 420,
            "median_ns": 286909.88333333336,
            "samples_ns": [
              286942.5190476191,
              286386.1738095238,
              286325.2261904762,
              287276.27142857143,
              288027.17142857146,
              286575.89285714284,
              286909.88333333336,
              288334.49523809523,
              286202.8738095238
            ],
            "warmup_operations": 17408,
            "warmup_seconds": 5.000806084000942
          },
          "flint_dense_exact_divide": {
            "iterations_per_sample": 154,
            "median_ns": 775875.3831168831,
            "samples_ns": [
              775063.6428571428,
              776891.987012987,
              776192.0909090909,
              775102.4155844155,
              781361.9675324676,
              775875.3831168831,
              775505.0,
              775958.1363636364,
              775675.3246753247
            ],
            "warmup_operations": 6408,
            "warmup_seconds": 5.00519739900119
          },
          "flint_dense_multiply": {
            "iterations_per_sample": 151,
            "median_ns": 793996.4701986755,
            "samples_ns": [
              792679.8013245033,
              896612.357615894,
              917242.2516556291,
              791802.3046357615,
              791936.7284768212,
              793996.4701986755,
              794202.821192053,
              794308.1854304635,
              792479.417218543
            ],
            "warmup_operations": 6248,
            "warmup_seconds": 5.000349232999724
          },
          "parse_496_terms": {
            "iterations_per_sample": 234,
            "median_ns": 509174.9786324786,
            "samples_ns": [
              511945.8376068376,
              511125.22222222225,
              509117.094017094,
              509489.9829059829,
              509174.9786324786,
              509516.95726495725,
              508557.0128205128,
              508666.6196581197,
              508477.1153846154
            ],
            "warmup_operations": 9808,
            "warmup_seconds": 5.007349859999522
          }
        },
        "validation": "passed",
        "version": "symbolica-e227fe7"
      },
      "2": {
        "evaluator_setup": {
          "build_ns": 2721044,
          "first_evaluate_ns": 3878081,
          "input_type": "preallocated contiguous numpy.float64 arrays",
          "jit_compile": "default (True; native only)",
          "n_cores": 1,
          "numpy": "2.5.4"
        },
        "input_sha256": "5a4f508778d3f76120545c297d1feae882cd7856609063a222004c36cef45e54",
        "module": "/home/ben/Sync/Work/website/.quarto/wasm-evaluator-20261030/native/lib/python3.14/site-packages/symbolica/__init__.py",
        "python": "3.14.8 (main, Oct  2 2026, 10:23:31) [GCC 16.2.1 20260810]",
        "results": {
          "derivative_5456_terms": {
            "iterations_per_sample": 19,
            "median_ns": 6195801.421052632,
            "samples_ns": [
              6287045.631578947,
              6215668.631578947,
              6197760.368421053,
              6195801.421052632,
              6195642.684210527,
              6200544.684210527,
              6175422.736842105,
              6187417.684210527,
              6194805.894736842
            ],
            "warmup_operations": 3216,
            "warmup_seconds": 20.00598144899959
          },
          "evaluate_496_terms": {
            "iterations_per_sample": 939,
            "median_ns": 127957.8945686901,
            "samples_ns": [
              127736.41959531416,
              127896.85090521832,
              127957.8945686901,
              127744.79446219382,
              127571.01490947817,
              128876.6230031949,
              130892.19488817891,
              129162.76890308839,
              130083.79233226836
            ],
            "warmup_operations": 39104,
            "warmup_seconds": 5.007443254000464
          },
          "evaluator_496_terms_batch256": {
            "iterations_per_sample": 6242,
            "median_ns": 19327.628644665172,
            "points_per_call": 256,
            "samples_ns": [
              19343.055270746554,
              19447.94504966357,
              19339.06968920218,
              19327.628644665172,
              19221.62976610061,
              19372.081704581866,
              19188.176225568728,
              19262.03796859981,
              19291.520506247998
            ],
            "warmup_operations": 257024,
            "warmup_seconds": 5.00901824399989
          },
          "evaluator_496_terms_single": {
            "iterations_per_sample": 117233,
            "median_ns": 1045.2031851099946,
            "points_per_call": 1,
            "samples_ns": [
              1045.2031851099946,
              1032.6379005911306,
              1032.3821108390982,
              1504.4529441368898,
              1087.691767676337,
              1020.3491764264328,
              1149.1422210469748,
              1128.8212192812605,
              1022.9687630615953
            ],
            "warmup_operations": 4907008,
            "warmup_seconds": 5.004414160999659
          },
          "expand_5456_terms": {
            "iterations_per_sample": 19,
            "median_ns": 6241244.263157895,
            "samples_ns": [
              6233485.842105263,
              6241107.684210527,
              6229828.368421053,
              6252876.842105263,
              6274149.842105263,
              6241244.263157895,
              6242189.2105263155,
              6238817.0,
              6246719.368421053
            ],
            "warmup_operations": 802,
            "warmup_seconds": 5.002749722001681
          },
          "factor_small": {
            "iterations_per_sample": 423,
            "median_ns": 282568.4704491726,
            "samples_ns": [
              282554.89834515366,
              283095.23877068557,
              282568.4704491726,
              281515.43262411345,
              282768.2340425532,
              282107.6430260047,
              288994.8274231678,
              282182.44208037824,
              307104.6595744681
            ],
            "warmup_operations": 17632,
            "warmup_seconds": 5.002531095999075
          },
          "flint_dense_exact_divide": {
            "iterations_per_sample": 155,
            "median_ns": 772366.5290322581,
            "samples_ns": [
              771743.0903225807,
              772068.0258064516,
              771618.5419354839,
              774280.8129032258,
              771102.0709677419,
              773408.3161290323,
              772449.8516129032,
              772366.5290322581,
              773031.6645161291
            ],
            "warmup_operations": 6456,
            "warmup_seconds": 5.003201784000339
          },
          "flint_dense_multiply": {
            "iterations_per_sample": 150,
            "median_ns": 799707.5866666667,
            "samples_ns": [
              800424.88,
              800074.4866666667,
              798711.7666666667,
              799707.5866666667,
              799154.8733333333,
              797643.1333333333,
              798605.0933333334,
              804600.4066666666,
              801393.9866666667
            ],
            "warmup_operations": 6232,
            "warmup_seconds": 5.004381778000607
          },
          "parse_496_terms": {
            "iterations_per_sample": 234,
            "median_ns": 511123.1068376068,
            "samples_ns": [
              511495.78205128206,
              511111.0726495726,
              511149.22222222225,
              511123.1068376068,
              511523.91025641025,
              511015.9316239316,
              510159.13675213675,
              511949.1153846154,
              510555.2735042735
            ],
            "warmup_operations": 9728,
            "warmup_seconds": 5.006912992999787
          }
        },
        "validation": "passed",
        "version": "symbolica-e227fe7"
      },
      "3": {
        "evaluator_setup": {
          "build_ns": 2710715,
          "first_evaluate_ns": 3914599,
          "input_type": "preallocated contiguous numpy.float64 arrays",
          "jit_compile": "default (True; native only)",
          "n_cores": 1,
          "numpy": "2.5.4"
        },
        "input_sha256": "5a4f508778d3f76120545c297d1feae882cd7856609063a222004c36cef45e54",
        "module": "/home/ben/Sync/Work/website/.quarto/wasm-evaluator-20261030/native/lib/python3.14/site-packages/symbolica/__init__.py",
        "python": "3.14.8 (main, Oct  2 2026, 10:23:31) [GCC 16.2.1 20260810]",
        "results": {
          "derivative_5456_terms": {
            "iterations_per_sample": 19,
            "median_ns": 6246258.578947368,
            "samples_ns": [
              6753717.894736842,
              6467061.315789473,
              6215831.842105263,
              6265266.2105263155,
              6246258.578947368,
              6216709.842105263,
              6215443.2105263155,
              6227330.0,
              11789351.631578946
            ],
            "warmup_operations": 3151,
            "warmup_seconds": 20.005065186000138
          },
          "evaluate_496_terms": {
            "iterations_per_sample": 910,
            "median_ns": 136162.5,
            "samples_ns": [
              131862.1846153846,
              136162.5,
              161705.62197802198,
              143369.9802197802,
              139409.7065934066,
              137714.96153846153,
              130069.2989010989,
              130155.05494505494,
              130894.96483516484
            ],
            "warmup_operations": 35744,
            "warmup_seconds": 5.004172004999418
          },
          "evaluator_496_terms_batch256": {
            "iterations_per_sample": 6263,
            "median_ns": 19216.23503113524,
            "points_per_call": 256,
            "samples_ns": [
              19216.23503113524,
              19715.438927031773,
              19092.620309755708,
              19202.17834903401,
              19644.027622545105,
              19453.53999680664,
              19211.171962318378,
              19203.599073926234,
              19247.8214912981
            ],
            "warmup_operations": 262656,
            "warmup_seconds": 5.0073481449999235
          },
          "evaluator_496_terms_single": {
            "iterations_per_sample": 118948,
            "median_ns": 1013.7418872112183,
            "points_per_call": 1,
            "samples_ns": [
              1014.2125802871843,
              1007.6222298819653,
              1012.1290479873559,
              1093.4827907993408,
              1037.110880384706,
              1008.2073763325151,
              1027.1071224400578,
              1010.1923529609577,
              1013.7418872112183
            ],
            "warmup_operations": 4546560,
            "warmup_seconds": 5.001762249999956
          },
          "expand_5456_terms": {
            "iterations_per_sample": 19,
            "median_ns": 6197923.894736842,
            "samples_ns": [
              6185100.052631579,
              6174001.105263158,
              6187518.894736842,
              6200112.263157895,
              6173796.47368421,
              6197923.894736842,
              6219967.263157895,
              6720123.842105263,
              6260394.0
            ],
            "warmup_operations": 810,
            "warmup_seconds": 5.00581386399972
          },
          "factor_small": {
            "iterations_per_sample": 426,
            "median_ns": 283945.6807511737,
            "samples_ns": [
              283945.6807511737,
              284843.93427230045,
              282726.0164319249,
              283001.823943662,
              284294.79342723003,
              283249.9953051643,
              283536.87558685447,
              284302.25117370894,
              284007.5328638498
            ],
            "warmup_operations": 17632,
            "warmup_seconds": 5.0063328630003525
          },
          "flint_dense_exact_divide": {
            "iterations_per_sample": 83,
            "median_ns": 786656.6987951808,
            "samples_ns": [
              806404.1807228916,
              1066196.1084337349,
              1370368.7590361445,
              1391873.7951807228,
              786656.6987951808,
              775965.6987951808,
              779716.9036144578,
              774136.3253012048,
              776204.3373493976
            ],
            "warmup_operations": 6360,
            "warmup_seconds": 5.003024531000847
          },
          "flint_dense_multiply": {
            "iterations_per_sample": 150,
            "median_ns": 801845.48,
            "samples_ns": [
              796916.06,
              801871.8,
              799111.2933333333,
              796842.0533333333,
              802517.2266666667,
              798913.6533333333,
              802303.5533333333,
              801845.48,
              808136.8866666667
            ],
            "warmup_operations": 6264,
            "warmup_seconds": 5.003745437001271
          },
          "parse_496_terms": {
            "iterations_per_sample": 232,
            "median_ns": 514880.4956896552,
            "samples_ns": [
              516768.8706896552,
              515411.4612068966,
              514900.0215517241,
              515331.525862069,
              513408.2198275862,
              514354.4568965517,
              514880.4956896552,
              512333.8965517241,
              511502.8793103448
            ],
            "warmup_operations": 9744,
            "warmup_seconds": 5.0061255780001375
          }
        },
        "validation": "passed",
        "version": "symbolica-e227fe7"
      }
    },
    "wasm": {
      "1": {
        "evaluator_setup": {
          "build_ns": 41111411,
          "first_evaluate_ns": 13571343,
          "input_type": "preallocated contiguous numpy.float64 arrays",
          "jit_compile": "default (True; native only)",
          "n_cores": 1,
          "numpy": "2.4.6"
        },
        "input_sha256": "5a4f508778d3f76120545c297d1feae882cd7856609063a222004c36cef45e54",
        "module": "/lib/python3.14/site-packages/symbolica/__init__.py",
        "python": "3.14.2 (main, Sep 14 2026, 03:03:51) [Clang 23.0.0git (https:/github.com/llvm/llvm-project e5927fecf8a6ce89e1a4eac5b8",
        "results": {
          "derivative_5456_terms": {
            "iterations_per_sample": 13,
            "median_ns": 8792413.384615384,
            "samples_ns": [
              8767580.923076924,
              8763843.76923077,
              8763655.76923077,
              9286395.692307692,
              9488205.692307692,
              8762626.153846154,
              8816359.615384616,
              8825322.076923076,
              8792413.384615384
            ],
            "warmup_operations": 2213,
            "warmup_seconds": 20.001694642
          },
          "evaluate_496_terms": {
            "iterations_per_sample": 82,
            "median_ns": 1457510.256097561,
            "samples_ns": [
              1474404.268292683,
              1465331.6951219512,
              1457510.256097561,
              1460257.7926829269,
              1455818.1341463414,
              1463792.0487804879,
              1454946.0,
              1454841.524390244,
              1456297.8292682928
            ],
            "warmup_operations": 3219,
            "warmup_seconds": 5.000718996000003
          },
          "evaluator_496_terms_batch256": {
            "iterations_per_sample": 184,
            "median_ns": 651950.1304347826,
            "points_per_call": 256,
            "samples_ns": [
              651790.3804347826,
              652602.0217391305,
              651280.2173913043,
              651950.1304347826,
              651811.7173913043,
              652142.4565217391,
              651882.8369565217,
              656733.6684782609,
              652700.4130434783
            ],
            "warmup_operations": 7624,
            "warmup_seconds": 5.0011198060000055
          },
          "evaluator_496_terms_single": {
            "iterations_per_sample": 30826,
            "median_ns": 3978.8281645364304,
            "points_per_call": 1,
            "samples_ns": [
              3955.306948679686,
              3978.8281645364304,
              3958.625024330111,
              3908.023551547395,
              4087.309219490041,
              4302.239343411406,
              4258.765847012262,
              4320.650976448453,
              3951.1382274703174
            ],
            "warmup_operations": 1252352,
            "warmup_seconds": 5.000048764999995
          },
          "expand_5456_terms": {
            "iterations_per_sample": 12,
            "median_ns": 9409660.833333334,
            "samples_ns": [
              9422612.083333334,
              9402412.166666666,
              9394081.333333334,
              9401273.25,
              10345315.333333334,
              13471218.916666666,
              9431143.333333334,
              9392444.75,
              9409660.833333334
            ],
            "warmup_operations": 529,
            "warmup_seconds": 5.002846714
          },
          "factor_small": {
            "iterations_per_sample": 277,
            "median_ns": 433111.8375451263,
            "samples_ns": [
              433111.8375451263,
              433997.4151624549,
              434459.4476534296,
              431933.64259927796,
              432428.25992779783,
              432771.476534296,
              440493.35740072204,
              433025.678700361,
              434974.75451263535
            ],
            "warmup_operations": 10002,
            "warmup_seconds": 5.000194659
          },
          "flint_dense_exact_divide": {
            "iterations_per_sample": 95,
            "median_ns": 1264002.0842105264,
            "samples_ns": [
              1264002.0842105264,
              1334466.0526315789,
              1270058.3263157895,
              1260759.9368421054,
              1259753.494736842,
              1259272.6842105263,
              1259613.4421052632,
              1367975.652631579,
              1344922.2105263157
            ],
            "warmup_operations": 3932,
            "warmup_seconds": 5.0017235470000045
          },
          "flint_dense_multiply": {
            "iterations_per_sample": 75,
            "median_ns": 1595135.4133333333,
            "samples_ns": [
              1594758.6933333334,
              1595536.2933333332,
              1595135.4133333333,
              1594795.2933333332,
              1595776.6266666667,
              1594675.7333333334,
              1595691.4,
              1594639.8,
              1597272.2533333334
            ],
            "warmup_operations": 2572,
            "warmup_seconds": 5.004551165999999
          },
          "parse_496_terms": {
            "iterations_per_sample": 171,
            "median_ns": 686894.1812865497,
            "samples_ns": [
              1075573.5146198831,
              686570.298245614,
              687193.8187134503,
              685444.649122807,
              686894.1812865497,
              694569.6315789474,
              686732.6549707602,
              688318.4678362573,
              685867.3801169591
            ],
            "warmup_operations": 7140,
            "warmup_seconds": 5.001149492
          }
        },
        "validation": "passed",
        "version": "symbolica-e227fe7"
      },
      "2": {
        "evaluator_setup": {
          "build_ns": 44304974,
          "first_evaluate_ns": 13712568,
          "input_type": "preallocated contiguous numpy.float64 arrays",
          "jit_compile": "default (True; native only)",
          "n_cores": 1,
          "numpy": "2.4.6"
        },
        "input_sha256": "5a4f508778d3f76120545c297d1feae882cd7856609063a222004c36cef45e54",
        "module": "/lib/python3.14/site-packages/symbolica/__init__.py",
        "python": "3.14.2 (main, Sep 14 2026, 03:03:51) [Clang 23.0.0git (https:/github.com/llvm/llvm-project e5927fecf8a6ce89e1a4eac5b8",
        "results": {
          "derivative_5456_terms": {
            "iterations_per_sample": 12,
            "median_ns": 8880481.083333334,
            "samples_ns": [
              9374719.166666666,
              9619696.583333334,
              8880481.083333334,
              8839933.333333334,
              8753053.333333334,
              8775824.083333334,
              8772581.25,
              9044842.083333334,
              8888149.75
            ],
            "warmup_operations": 2242,
            "warmup_seconds": 20.003750624
          },
          "evaluate_496_terms": {
            "iterations_per_sample": 87,
            "median_ns": 1376179.91954023,
            "samples_ns": [
              1376304.7471264368,
              1376179.91954023,
              1371099.0,
              1374789.6896551724,
              1370763.4137931035,
              1384869.0459770116,
              1377107.7701149425,
              1377186.6436781608,
              1373137.0114942528
            ],
            "warmup_operations": 3548,
            "warmup_seconds": 5.001371647999996
          },
          "evaluator_496_terms_batch256": {
            "iterations_per_sample": 184,
            "median_ns": 649021.2608695652,
            "points_per_call": 256,
            "samples_ns": [
              648048.1141304348,
              650444.070652174,
              654019.0652173914,
              650056.054347826,
              649021.2608695652,
              649046.6358695652,
              648844.4619565217,
              648726.0815217391,
              647881.7608695652
            ],
            "warmup_operations": 7712,
            "warmup_seconds": 5.00427058999999
          },
          "evaluator_496_terms_single": {
            "iterations_per_sample": 30800,
            "median_ns": 3906.2788636363634,
            "points_per_call": 1,
            "samples_ns": [
              3906.1858766233768,
              3900.063181818182,
              3906.2788636363634,
              3904.2207467532467,
              3924.7821753246753,
              3908.2153246753246,
              3904.3788311688313,
              3913.7313311688313,
              3907.8321753246755
            ],
            "warmup_operations": 1263616,
            "warmup_seconds": 5.000084045999998
          },
          "expand_5456_terms": {
            "iterations_per_sample": 12,
            "median_ns": 9398074.666666666,
            "samples_ns": [
              9417787.916666666,
              9419360.916666666,
              9401346.75,
              9428838.083333334,
              9385869.0,
              9398074.666666666,
              9377649.333333334,
              9389433.25,
              9394890.25
            ],
            "warmup_operations": 526,
            "warmup_seconds": 5.0025054509999975
          },
          "factor_small": {
            "iterations_per_sample": 284,
            "median_ns": 439970.9788732394,
            "samples_ns": [
              440751.36971830984,
              439873.08450704225,
              439970.9788732394,
              444154.3767605634,
              441049.99647887325,
              437608.6091549296,
              438247.95774647885,
              439035.1901408451,
              442000.74647887325
            ],
            "warmup_operations": 9602,
            "warmup_seconds": 5.000216034
          },
          "flint_dense_exact_divide": {
            "iterations_per_sample": 95,
            "median_ns": 1253546.6631578947,
            "samples_ns": [
              1254015.547368421,
              1253546.6631578947,
              1256020.4210526317,
              1256238.7263157894,
              1257732.3894736841,
              1248923.147368421,
              1248714.547368421,
              1252988.8736842105,
              1253309.7894736843
            ],
            "warmup_operations": 3936,
            "warmup_seconds": 5.002949096000002
          },
          "flint_dense_multiply": {
            "iterations_per_sample": 75,
            "median_ns": 1652147.6,
            "samples_ns": [
              1600666.5733333332,
              2117499.1066666665,
              1662101.56,
              1663410.4533333334,
              1622779.6,
              1652147.6,
              1603239.4533333334,
              1660936.8266666667,
              1591734.68
            ],
            "warmup_operations": 3092,
            "warmup_seconds": 5.002148208000001
          },
          "parse_496_terms": {
            "iterations_per_sample": 174,
            "median_ns": 703849.6896551724,
            "samples_ns": [
              1062977.7183908045,
              675853.1551724138,
              678851.0344827586,
              679372.4827586206,
              726889.856321839,
              736031.8045977012,
              740982.7586206896,
              703849.6896551724,
              687846.959770115
            ],
            "warmup_operations": 7176,
            "warmup_seconds": 5.004935574000001
          }
        },
        "validation": "passed",
        "version": "symbolica-e227fe7"
      },
      "3": {
        "evaluator_setup": {
          "build_ns": 44145364,
          "first_evaluate_ns": 10835282,
          "input_type": "preallocated contiguous numpy.float64 arrays",
          "jit_compile": "default (True; native only)",
          "n_cores": 1,
          "numpy": "2.4.6"
        },
        "input_sha256": "5a4f508778d3f76120545c297d1feae882cd7856609063a222004c36cef45e54",
        "module": "/lib/python3.14/site-packages/symbolica/__init__.py",
        "python": "3.14.2 (main, Sep 14 2026, 03:03:51) [Clang 23.0.0git (https:/github.com/llvm/llvm-project e5927fecf8a6ce89e1a4eac5b8",
        "results": {
          "derivative_5456_terms": {
            "iterations_per_sample": 13,
            "median_ns": 8728241.538461538,
            "samples_ns": [
              8703633.23076923,
              8739527.461538462,
              8708887.0,
              8701030.615384616,
              8695128.615384616,
              8731395.153846154,
              8728241.538461538,
              8735116.76923077,
              8729231.0
            ],
            "warmup_operations": 2254,
            "warmup_seconds": 20.008415282
          },
          "evaluate_496_terms": {
            "iterations_per_sample": 86,
            "median_ns": 1430187.453488372,
            "samples_ns": [
              1406735.046511628,
              1430187.453488372,
              1398911.2325581396,
              1531475.011627907,
              1440979.546511628,
              1425495.9767441861,
              1393458.558139535,
              1449274.953488372,
              1448732.5232558139
            ],
            "warmup_operations": 3528,
            "warmup_seconds": 5.001890822
          },
          "evaluator_496_terms_batch256": {
            "iterations_per_sample": 184,
            "median_ns": 649026.9728260869,
            "points_per_call": 256,
            "samples_ns": [
              649026.9728260869,
              649941.6358695652,
              649013.679347826,
              648805.4673913043,
              648289.9728260869,
              648343.9891304348,
              649378.8858695652,
              649500.2608695652,
              673562.820652174
            ],
            "warmup_operations": 7680,
            "warmup_seconds": 5.003606993999995
          },
          "evaluator_496_terms_single": {
            "iterations_per_sample": 30558,
            "median_ns": 3928.6501079913605,
            "points_per_call": 1,
            "samples_ns": [
              3928.417632043982,
              3928.834707768833,
              3928.268145821062,
              3928.6501079913605,
              3931.0350481052424,
              3936.8091170888147,
              3929.075986648341,
              3928.250441782839,
              3927.338307480856
            ],
            "warmup_operations": 1263616,
            "warmup_seconds": 5.003074885000004
          },
          "expand_5456_terms": {
            "iterations_per_sample": 12,
            "median_ns": 9636111.916666666,
            "samples_ns": [
              9544887.166666666,
              9628926.666666666,
              9522970.5,
              14985920.666666666,
              18936553.5,
              9636111.916666666,
              10081983.0,
              14310563.25,
              9607373.166666666
            ],
            "warmup_operations": 519,
            "warmup_seconds": 5.000858617000002
          },
          "factor_small": {
            "iterations_per_sample": 152,
            "median_ns": 776598.9342105263,
            "samples_ns": [
              775207.4802631579,
              774445.572368421,
              772893.7434210526,
              780967.2171052631,
              774126.6118421053,
              776598.9342105263,
              793429.8881578947,
              820914.2171052631,
              813964.052631579
            ],
            "warmup_operations": 7132,
            "warmup_seconds": 5.000498534000001
          },
          "flint_dense_exact_divide": {
            "iterations_per_sample": 94,
            "median_ns": 1279704.2340425532,
            "samples_ns": [
              1284772.4680851065,
              1284108.8617021276,
              1280083.670212766,
              1279086.4574468085,
              1279291.8510638298,
              1278407.829787234,
              1281227.0212765958,
              1279704.2340425532,
              1278141.585106383
            ],
            "warmup_operations": 3892,
            "warmup_seconds": 5.000233044000005
          },
          "flint_dense_multiply": {
            "iterations_per_sample": 74,
            "median_ns": 1602054.1351351351,
            "samples_ns": [
              1602862.4324324324,
              1602652.1621621621,
              1602739.2297297297,
              1603414.5675675676,
              1602054.1351351351,
              1600708.8918918918,
              1600761.1351351351,
              1601137.4054054054,
              1599328.2837837837
            ],
            "warmup_operations": 3116,
            "warmup_seconds": 5.0008724770000015
          },
          "parse_496_terms": {
            "iterations_per_sample": 175,
            "median_ns": 698675.8571428572,
            "samples_ns": [
              1064806.08,
              698675.8571428572,
              1249410.5714285714,
              1342962.5085714285,
              764321.2857142857,
              672411.6742857143,
              684690.8057142857,
              683136.0285714286,
              695690.36
            ],
            "warmup_operations": 6846,
            "warmup_seconds": 5.000419899999999
          }
        },
        "validation": "passed",
        "version": "symbolica-e227fe7"
      }
    }
  },
  "harness": {
    "wasm_vs_native.py": {
      "sha256": "12e68f227e71925409f4a36e13fa83e4312da2a1316032e5dc460aee5a862cff",
      "source": "\"\"\"Matched Python-wheel benchmark used by wasm_vs_native.mjs.\n\nThe benchmark intentionally measures operations on already-constructed\nexpressions except for ``parse``. Each case has at least five seconds of warmup\nfollowed by nine calibrated batches, targeting 120 ms per batch. Raw batch\naverages and their median are reported in nanoseconds per operation.\n\"\"\"\n\nimport gc\nimport hashlib\nimport json\nimport math\nimport os\nimport sys\nimport statistics\nimport time\n\nimport symbolica\nfrom symbolica import E, S\n\n\ndef measure(function, warmup_seconds=5.0, sample_seconds=0.12, samples=9, minimum_operations=0):\n    def batch(count):\n        start = time.perf_counter_ns()\n        for _ in range(count):\n            function()\n        return time.perf_counter_ns() - start\n\n    count = 1\n    while batch(count) < 5_000_000:\n        count *= 2\n    start = time.perf_counter()\n    warmup_ops = 0\n    while time.perf_counter() - start < warmup_seconds or warmup_ops < minimum_operations:\n        elapsed = batch(count)\n        warmup_ops += count\n    warmup_elapsed = time.perf_counter() - start\n    count = max(1, min(1_000_000, int(sample_seconds * 1e9 * count / elapsed)))\n    timings = []\n    for _ in range(samples):\n        timings.append(batch(count) / count)\n    return {\"median_ns\": statistics.median(timings), \"samples_ns\": timings,\n            \"iterations_per_sample\": count, \"warmup_seconds\": warmup_elapsed,\n            \"warmup_operations\": warmup_ops}\n\n\ndef main(case_names=None, warmup_seconds=5.0, minimum_operations=0):\n    x, y, z = S(\"x\", \"y\", \"z\")\n    expression = E(\"(x+y+1)^30\")\n    large = E(\"(1+x+y+z)^30\")\n    expanded = expression.expand()\n    large_expanded = large.expand()\n    text = expanded.format_plain()\n    assert E(text) == expanded\n    factor_input = E(\"x^12-y^12\")\n    derivative_input = E(\"(x^2+y^2)^20\")\n    evaluation_input = E(\"(x+y)^12\")\n    point = {x: 0.1, y: 0.2}\n    # Exact inputs from the multiplication/division cases in the FLINT suite.\n    left = E(\"(1+x+y+z)^12\").expand().to_polynomial()\n    right = E(\"(1+2*x-y+3*z)^11\").expand().to_polynomial()\n    divisor = E(\"(1+2*x-y+3*z)^7\").expand().to_polynomial()\n    dividend = left * divisor\n    assert dividend // divisor == left\n    assert expanded.to_polynomial().nterms() == math.comb(32, 2)\n    assert large_expanded.to_polynomial().nterms() == math.comb(33, 3)\n    assert factor_input.factor().expand() == factor_input\n    assert derivative_input.derivative(x) == E(\"40*x*(x^2+y^2)^19\")\n    assert abs(evaluation_input.evaluate({x: 2.0, y: 3.0}) - 244140625) < 1e-6\n    assert abs(expanded.evaluate(point) - 1.3**30) / 1.3**30 < 1e-12\n    evaluator_setup = None\n    evaluator_cases = {\"evaluator_496_terms_single\", \"evaluator_496_terms_batch256\"}\n    if case_names is None or evaluator_cases.intersection(case_names):\n        import numpy as np\n\n        inputs = {\n            \"evaluator_496_terms_single\": np.array([[0.1, 0.2]], dtype=np.float64),\n            \"evaluator_496_terms_batch256\": np.column_stack((\n                np.linspace(0.05, 0.15, 256), np.linspace(0.15, 0.25, 256))),\n        }\n        start = time.perf_counter_ns()\n        evaluator = expanded.evaluator([x, y], n_cores=1)\n        build_ns = time.perf_counter_ns() - start\n        start = time.perf_counter_ns()\n        first = evaluator.evaluate(inputs[\"evaluator_496_terms_single\"])\n        first_evaluate_ns = time.perf_counter_ns() - start\n        assert abs(float(first[0, 0]) - 1.3**30) / 1.3**30 < 1e-12\n        for values in inputs.values():\n            np.testing.assert_allclose(evaluator.evaluate(values)[:, 0],\n                                       (1 + values[:, 0] + values[:, 1])**30,\n                                       rtol=1e-12, atol=1e-12)\n        evaluator_setup = {\n            \"build_ns\": build_ns, \"first_evaluate_ns\": first_evaluate_ns,\n            \"jit_compile\": \"default (True; native only)\", \"n_cores\": 1,\n            \"input_type\": \"preallocated contiguous numpy.float64 arrays\",\n            \"numpy\": np.__version__,\n        }\n    cases = {\n        \"parse_small\": lambda: E(\"(x+y+1)^30\"),\n        \"expand_small\": expression.expand,\n        \"factor_small\": factor_input.factor,\n        \"derivative_small\": lambda: derivative_input.derivative(x),\n        \"evaluate_small\": lambda: evaluation_input.evaluate({x: 2.0, y: 3.0}),\n        \"parse_496_terms\": lambda: E(text),\n        \"expand_5456_terms\": large.expand,\n        \"derivative_5456_terms\": lambda: large_expanded.derivative(x),\n        \"evaluate_496_terms\": lambda: expanded.evaluate(point),\n        \"flint_dense_multiply\": lambda: left * right,\n        \"flint_dense_exact_divide\": lambda: dividend // divisor,\n    }\n    if evaluator_setup is not None:\n        cases.update({name: (lambda values=values: evaluator.evaluate(values))\n                      for name, values in inputs.items()})\n    gc.collect()\n    results = {}\n    for name, function in cases.items():\n        if case_names is not None and name not in case_names:\n            continue\n        print(\"BENCHMARK \" + name, file=sys.stderr, flush=True)\n        # This case showed a late V8 tier transition in the two-second pilot.\n        warmup = max(warmup_seconds, 10.0) if name == \"expand_small\" else warmup_seconds\n        minimum = minimum_operations\n        if name == \"derivative_5456_terms\":\n            warmup, minimum = max(warmup, 20.0), max(minimum, 2000)\n        results[name] = measure(function, warmup_seconds=warmup, minimum_operations=minimum)\n        if name in evaluator_cases:\n            results[name][\"points_per_call\"] = len(inputs[name])\n    print(json.dumps({\"version\": symbolica.get_version(), \"python\": sys.version,\n                      \"module\": symbolica.__file__, \"validation\": \"passed\",\n                      \"input_sha256\": hashlib.sha256(text.encode()).hexdigest(),\n                      \"evaluator_setup\": evaluator_setup,\n                      \"results\": results}, sort_keys=True), flush=True)\n\n\nif __name__ == \"__main__\":\n    main(**json.loads(os.environ.get(\"SYMBOLICA_BENCH_OPTIONS\", \"{}\")))\n"
    },
    "wasm_vs_native.mjs": {
      "sha256": "a364d636489d85cf80614981d992489d0a63ab34ade124c8dc698382dd2a1c5f",
      "source": "import { existsSync } from \"node:fs\";\nimport { pathToFileURL } from \"node:url\";\n\nconst pyodideRoot = process.env.PYODIDE_ROOT;\nconst wheelPath = process.env.SYMBOLICA_WASM_WHEEL;\nif (!pyodideRoot || !wheelPath) {\n  throw new Error(\"Set PYODIDE_ROOT and SYMBOLICA_WASM_WHEEL\");\n}\n\nconst pyodideDist = existsSync(`${pyodideRoot}/dist/pyodide.mjs`)\n  ? `${pyodideRoot}/dist`\n  : pyodideRoot;\nconst { loadPyodide } = await import(pathToFileURL(`${pyodideDist}/pyodide.mjs`).href);\nconst pyodide = await loadPyodide({ indexURL: `${pyodideDist}/` });\n// Evaluator inputs/outputs use NumPy; loading is outside every timed region.\nawait pyodide.loadPackage([\"micropip\", \"numpy\"]);\nawait pyodide.runPythonAsync(`\nimport micropip\nawait micropip.install(${JSON.stringify(pathToFileURL(wheelPath).href)})\n`);\n\nconst source = await (await import(\"node:fs/promises\")).readFile(\n  new URL(\"wasm_vs_native.py\", import.meta.url),\n  \"utf8\",\n);\nconst result = await pyodide.runPythonAsync(\n  `benchmark_globals = {\"__name__\": \"wasm_benchmark\"}; exec(${JSON.stringify(source)}, benchmark_globals); benchmark_globals[\"main\"](**${JSON.stringify(JSON.parse(process.env.SYMBOLICA_BENCH_OPTIONS ?? \"{}\"))})`,\n);\nconsole.log(String(result ?? \"\"));\n"
    },
    "run_wasm_vs_native.py": {
      "sha256": "afa86e44e5c7c3523fa3adbcf6d4247ff86c3dca29591bc1f849f65844ad6aae",
      "source": "\"\"\"Run fresh, alternating wheel processes pinned to one logical CPU.\n\nRequires PYODIDE_ROOT, SYMBOLICA_WASM_WHEEL and SYMBOLICA_NATIVE_PYTHON.\n\"\"\"\nimport argparse\nimport hashlib\nimport json\nimport os\nfrom pathlib import Path\nimport statistics\nimport subprocess\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--output\", type=Path, required=True)\n    parser.add_argument(\"--runs\", type=int, default=3)\n    parser.add_argument(\"--cpu\", type=int, default=6)\n    parser.add_argument(\"--cases\", nargs=\"+\", help=\"Run only these named workloads\")\n    parser.add_argument(\"--resume\", action=\"store_true\", help=\"Reuse completed process JSON files in this run directory\")\n    args = parser.parse_args()\n    args.output.mkdir(parents=True, exist_ok=args.resume)\n    directory = Path(__file__).resolve().parent\n    commands = {\n        \"native\": [os.environ[\"SYMBOLICA_NATIVE_PYTHON\"], str(directory / \"wasm_vs_native.py\")],\n        \"wasm\": [\"node\", str(directory / \"wasm_vs_native.mjs\")],\n    }\n    records = {key: [] for key in commands}\n    environment = os.environ.copy()\n    if args.cases:\n        options = json.loads(environment.get(\"SYMBOLICA_BENCH_OPTIONS\", \"{}\"))\n        options[\"case_names\"] = args.cases\n        environment[\"SYMBOLICA_BENCH_OPTIONS\"] = json.dumps(options)\n    for run in range(args.runs):\n        for backend in ([\"native\", \"wasm\"] if run % 2 == 0 else [\"wasm\", \"native\"]):\n            print(f\"Run {run + 1}/{args.runs}: {backend}\", flush=True)\n            result_path = args.output / f\"{backend}-{run + 1}.json\"\n            if args.resume and result_path.exists():\n                result = json.loads(result_path.read_text())\n                if args.cases:\n                    assert set(result[\"results\"]) == set(args.cases)\n                print(\"Reusing completed process record\", flush=True)\n            else:\n                command = [\"taskset\", \"-c\", str(args.cpu), *commands[backend]]\n                completed = subprocess.run(command, cwd=\"/tmp\", env=environment,\n                                           text=True, capture_output=True)\n                (args.output / f\"{backend}-{run + 1}.log\").write_text(completed.stdout + completed.stderr)\n                completed.check_returncode()\n                result = next(record for line in completed.stdout.splitlines()\n                              if line.startswith(\"{\") and \"input_sha256\" in\n                              (record := json.loads(line)) and \"results\" in record)\n            records[backend].append(result)\n            result_path.write_text(json.dumps(result, indent=2) + \"\\n\")\n    assert len({r[\"input_sha256\"] for rows in records.values() for r in rows}) == 1\n    assert len({r[\"version\"] for rows in records.values() for r in rows}) == 1\n    summary = {}\n    for name in records[\"native\"][0][\"results\"]:\n        points = {r[\"results\"][name].get(\"points_per_call\", 1)\n                  for rows in records.values() for r in rows}\n        assert len(points) == 1\n        points_per_call = points.pop()\n        medians = {key: [r[\"results\"][name][\"median_ns\"] / points_per_call for r in rows]\n                   for key, rows in records.items()}\n        native = statistics.median(medians[\"native\"])\n        wasm = statistics.median(medians[\"wasm\"])\n        summary[name] = {\"native_ns\": native, \"wasm_ns\": wasm, \"ratio\": wasm / native,\n                         \"points_per_call\": points_per_call, \"process_medians_ns\": medians}\n    output = {\"cpu\": args.cpu, \"runs\": args.runs,\n              \"node\": subprocess.check_output([\"node\", \"--version\"], text=True).strip(),\n              \"wasm_wheel_sha256\": hashlib.sha256(Path(os.environ[\"SYMBOLICA_WASM_WHEEL\"]).read_bytes()).hexdigest(),\n              \"symbolica_revision\": records[\"native\"][0][\"version\"],\n              \"evaluator_setup\": {backend: [r.get(\"evaluator_setup\") for r in rows]\n                                  for backend, rows in records.items()},\n              \"results\": summary}\n    (args.output / \"summary.json\").write_text(json.dumps(output, indent=2) + \"\\n\")\n    print(json.dumps(output, indent=2))\n\n\nif __name__ == \"__main__\":\n    main()\n"
    }
  },
  "previous_session": "wasm-vs-native-warmed-results.json",
  "artifact_note": "This is a fresh comparison of matching e227fe7 native and core-WASM builds. The restored WASM source wheel has its own recorded SHA-256; it is not assumed byte-identical to the previous benchmark wheel. Original measurements are retained separately."
}
