Engine performance
Seed gold benches from the engine on the build machine — updated about once a week so you can see trends as version 1 grows.
Pinned versions: rustc 1.99 · zenith-float 1.0.12 · latex-rust 2.1.1 · hdf5-rust 1.1.2
Machine: Intel Core i9-14900KF (32 threads), Pop!_OS Linux x86_64. SoftFloat precision: 256 bits.
Profile: cargo bench -p engine_core --bench engine_bench (Criterion)
Method: Criterion median of 100 samples, same seed set as benches/engine_bench.rs. Not a CI fail gate.
Absolute numbers move with turbo and load; week-to-week trends matter more. The left column stays frozen while the weekly columns scroll horizontally. History lives in benchmarks.json.
| Bench | 2026-09-19 | 2026-09-21 | 2026-09-28 | 2026-10-05 | 2026-10-12 | 2026-10-19 | 2026-10-26 |
|---|---|---|---|---|---|---|---|
Simplify: fold exp(ln(x))cas_simplify.fold_exp_log_exp_ln_x | 78 ns | 83 ns | 92 ns | 84 ns | 87 ns | 46 ns | 47 ns |
Simplify: polynomialcas_simplify.simplify_poly | 223.7 µs | 226.6 µs | 223.8 µs | 193.7 µs | 199.2 µs | 214.4 µs | 220.5 µs |
Integrate: ln(x)/x (Risch)cas_integrate.ln_over_x | 1.240 ms | 1.224 ms | 1.228 ms | 1.087 ms | 1.140 ms | 1.205 ms | 1.221 ms |
Integrate: 1/(x ln(x))cas_integrate.one_over_x_ln_x | 1.110 ms | 1.088 ms | 1.096 ms | 998.6 µs | 1.054 ms | 1.138 ms | 1.146 ms |
Integrate: exp(x)/xcas_integrate.exp_over_x | 2.300 ms | 2.295 ms | 2.282 ms | 2.795 ms | 2.974 ms | 3.118 ms | 3.179 ms |
Integrate: exp polycas_integrate.exp_poly | 2.287 ms | 2.303 ms | 2.294 ms | 2.465 ms | 2.597 ms | 2.793 ms | 2.815 ms |
Factor: minpoly √2+√3cas_factor.minpoly_sqrt2_plus_sqrt3 | 144.7 µs | 143.2 µs | 142.9 µs | 142.9 µs | 150.8 µs | 164.0 µs | 144.3 µs |
Factor: minpoly √2+∛2cas_factor.minpoly_sqrt2_plus_cbrt2 | 916.5 µs | 926.7 µs | 919.7 µs | 915.7 µs | 956.7 µs | 1.061 ms | 970.1 µs |
Solve: x³−1cas_solve.solve_x3_minus_1 | 378.3 µs | 381.7 µs | 385.7 µs | 365.5 µs | 381.6 µs | 419.4 µs | 386.9 µs |
Eval SoftFloat constantsnum_eval.eval_soft_constants | 23.5 µs | 23.7 µs | 24.1 µs | 22.9 µs | 23.5 µs | 23.0 µs | 22.9 µs |
Specials: erf(1)num_specials.eval_erf_1 | 56.1 µs | 59.1 µs | 56.9 µs | 70.3 µs | 75.7 µs | 69.5 µs | 70.0 µs |
Specials: Γ(1/2)num_specials.eval_gamma_half | 25.629 ms | 25.651 ms | 25.640 ms | 815.0 µs | 888.5 µs | 824.2 µs | 821.0 µs |
nsolve: x²−2num_linalg.nsolve_x2_minus_2 | 1.303 ms | 1.321 ms | 1.301 ms | 1.269 ms | 1.265 ms | 1.302 ms | 1.294 ms |
Quad: ∫ 1/(1+x²) on [0,1] @ 1e-8num_quad.quad_atan_unit | 480.5 µs | 478.8 µs | 478.7 µs | 470.1 µs | 482.6 µs | 506.1 µs | 516.1 µs |
No arrow keys needed — drag the slider, use the Earlier / Later buttons, or drag the green scrollbar above.
Faster: minpoly √2+√3 −12.1%, minpoly √2+∛2 −8.5%, solve x³−1 −7.7%. Near noise: SoftFloat constants −0.5%, erf(1) +0.6%, Γ(1/2) −0.4%, nsolve −0.6%. Slower, small: fold exp(ln(x)) +2.2%, simplify poly +2.9%, ln(x)/x +1.3%, 1/(x ln(x)) +0.7%, exp(x)/x +1.9% (continuing its slow trend, 2.300 ms on Sep 19 to 3.179 ms now), exp poly +0.8%, quad +2.0%. Slow is not wrong; no scoring impact. The 15th bench in the run, num_eval.softfloat_mul_add at 101.31 ns, is not in the site grid, as before.
Same seed set each week (simplify, integrate, factor, solve, SoftFloat eval, specials, nsolve, quad). Release build on the Accumath desktop; Criterion median of 100 samples.
History lives in benchmarks.json on this site so prior weeks stay visible as we add them.