Skip to content

Performance

How fast each operation is, by storage width and scale.

The numbers on this page are generated from CI: the bench-branch-compare run measures every (operation, width, scale) on a GitHub-hosted runner, compares it against the previous release, and commits the medians to results/timing/, which this page renders. They are refreshed on each release PR.

Absolute timings are machine-dependent — the ratios between operations and widths, measured in the same run, are what to read. Operands are black_box-ed so the optimiser can't fold the work away.

Times are the unit shown in each cell; the legend maps each unit to its size in nanoseconds. Each function's graph plots median time (log scale) against storage width: the two solid lines are scale 0 and the maximum scale, the dashed lines the band-edge scales in between, and the shaded band is the spread between scale 0 and the maximum.

The per-function tables and graphs are split across three category pages: Arithmetic, Roots and Exponents, and Trigonometry.

Unit In nanoseconds
ns 10⁰ ns
µs 10³ ns
ms 10⁶ ns
Width Decimals Integer Bits
D18 18 Int<1> 64
D38 38 Int<2> 128
D57 57 Int<3> 192
D76 76 Int<4> 256
D115 115 Int<6> 384
D153 153 Int<8> 512
D230 230 Int<12> 768
D307 307 Int<16> 1024
D462 462 Int<24> 1536
D616 616 Int<32> 2048
D924 924 Int<48> 3072
D1232 1232 Int<64> 4096