Compare implementations

Two numbers may be put side by side when they came from the same point on the same machine. Everything on this page follows from that.

IMPLEMENTATIONS2POINTS MEASURED3MACHINES3COMPARABLE PAIRS2
WHERE NUMBERS EXIST9 of 18 cells measured
fairmath-fpga
fairmath-general-runner
fherma-general-purpose
A degree-1023 Chebyshev of the rectifier, over Poulpy
A sixteenth-order polynomial in four levels
every seed passedsome seeds failedclaimed, not measurednot claimed
N1024 on fairmath-fpga

Same point, same machine, same environment. These times mean the same thing, so they can be read against each other.

POINT
MACHINE
IMPLEMENTATIONMEDIANACCURACYSECURITYRINGCAPACITYKEYSMEMORYSEEDS
01A sixteenth-order polynomial in four levelsgurgen2ckksopenfhepolycircuit237 msfastest here87.6%worst 3.2e-2128-bitenforced327684 levels3 spentnone97 MBpeak3 of 3
02A degree-1023 Chebyshev of the rectifier, over Poulpygurgen2ckkspoulpyrust2.49 s×10.47 of fastest100.00%worst 4.0e-4128-bitestimated16384360 bitstorusnone452 MBpeak3 of 3
HOW ACCURACY IS JUDGED
Every accuracy figure here is the output of the verifier in this specification’s testing bundle — one function, run against what each seed left behind. It travels with the specification, so every implementation is judged by the same code.
THE ONE RULE

A time means nothing without the point it was measured at and the machine it ran on. Fixing both gives a comparison; releasing either gives a reading of something else — how an implementation scales, or where it runs. Nothing on this page averages across machines, and no implementation is judged on a point it never claimed.