fixed

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

commit 6cf12743e3da3806e7cd2fbb354a83c418d0a413
parent efed000cc004a1ab568e3e12226f3daced7f385d
Author: Jared Tobin <jared@jtobin.io>
Date:   Wed, 29 Jan 2025 15:11:44 +0400

lib: avoid unnecessary setPrimArray calls

They're super expensive in our setting.

Diffstat:
Mlib/Data/Word/Extended.hs | 3---
1 file changed, 0 insertions(+), 3 deletions(-)

diff --git a/lib/Data/Word/Extended.hs b/lib/Data/Word/Extended.hs @@ -725,7 +725,6 @@ quotrem quo u (Word256 d0 d1 d2 d3) = do else do -- normalize dividend !un <- PA.newPrimArray (ulen + 1) - PA.setPrimArray un 0 (ulen + 1) 0 let u_hi = PA.indexPrimArray u (ulen - 1) PA.writePrimArray un ulen (u_hi .>>. (64 - shift)) let normalize_u !j !uj @@ -815,7 +814,6 @@ div u@(Word256 u0 u1 u2 u3) d@(Word256 d0 _ _ _) PA.setPrimArray quo 0 4 0 -- allocate dividend u_arr <- PA.newPrimArray 4 - PA.setPrimArray u_arr 0 4 0 PA.writePrimArray u_arr 0 u0 PA.writePrimArray u_arr 1 u1 PA.writePrimArray u_arr 2 u2 @@ -843,7 +841,6 @@ mod u@(Word256 u0 u1 u2 u3) d@(Word256 d0 _ _ _) PA.setPrimArray quo 0 4 0 -- allocate dividend u_arr <- PA.newPrimArray 4 - PA.setPrimArray u_arr 0 4 0 PA.writePrimArray u_arr 0 u0 PA.writePrimArray u_arr 1 u1 PA.writePrimArray u_arr 2 u2