fixed

Pure Haskell large fixed-width integers and Montgomery arithmetic.
git clone git://git.ppad.tech/fixed.git
Log | Files | Refs | README | LICENSE

commit 65cbd0bdb805a024e6d2eed0abd5e8ace308c774
parent 4aa78fba38d7fbb11e567cd6bd4cf38fe864a9ad
Author: Jared Tobin <jared@jtobin.io>
Date:   Sat, 20 Dec 2025 17:34:49 -0330

meta: readme tweak

Diffstat:
MREADME.md | 15++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md @@ -75,6 +75,12 @@ time 6.936 μs (6.911 μs .. 6.959 μs) mean 6.898 μs (6.885 μs .. 6.911 μs) std dev 44.83 ns (35.58 ns .. 56.92 ns) +benchmarking exp/curve: M(2 ^ 255 - 19) ^ (2 ^ 255 - 19) +time 5.200 μs (5.194 μs .. 5.205 μs) + 1.000 R² (1.000 R² .. 1.000 R²) +mean 5.192 μs (5.188 μs .. 5.197 μs) +std dev 15.58 ns (11.38 ns .. 20.86 ns) + benchmarking sqrt/curve: sqrt M(2 ^ 255 - 19) time 6.882 μs (6.876 μs .. 6.890 μs) 1.000 R² (1.000 R² .. 1.000 R²) @@ -137,6 +143,12 @@ inv curve: M(2) ^ -1 40 0 curve: M(2 ^ 255 - 19) ^ -1 40 0 +exp + + Case Allocated GCs + curve: M(2) ^ 2 40 0 + curve: M(2) ^ (2 ^ 255 - 19) 40 0 + sqrt Case Allocated GCs @@ -146,7 +158,8 @@ sqrt Note that 'sqrt' for example allocates 16 additional bytes as it returns a value of type 'Maybe Montgomery', which involves using either a Just -or Nothing constructor. +or Nothing constructor (the analogous function in the unboxed API, +'sqrt#', avoids allocation by returning an unboxed sum). You can compile with GHC's LLVM backend and filter on specific benchmarks via e.g.: