aboutsummaryrefslogtreecommitdiff
path: root/src/Data
diff options
context:
space:
mode:
authorMikolaj Konarski <mikolaj.konarski@funktory.com>2026-01-15 21:30:26 +0100
committerMikolaj Konarski <mikolaj.konarski@funktory.com>2026-01-15 21:30:26 +0100
commitbb1deceb98b4c7bfcd35372e0289566cb593d8a9 (patch)
treea33c09c6e0b9c7d0cd846fd41df312c7db7a7d23 /src/Data
parent103a4fa07ee16106261cfc627422353277667cf8 (diff)
Speed up sumFull from 36ms to 82 microseconds
Diffstat (limited to 'src/Data')
-rw-r--r--src/Data/Array/XArray.hs6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/Data/Array/XArray.hs b/src/Data/Array/XArray.hs
index 38ccee6..4f5bb08 100644
--- a/src/Data/Array/XArray.hs
+++ b/src/Data/Array/XArray.hs
@@ -269,11 +269,7 @@ transpose2 ssh1 ssh2 (XArray arr)
= XArray (S.transpose (ssxIotaFrom ssh2 n1 ++ ssxIotaFrom ssh1 0) arr)
sumFull :: (Storable a, NumElt a) => StaticShX sh -> XArray sh a -> a
-sumFull _ (XArray arr) =
- S.unScalar $
- liftO1 (numEltSum1Inner (SNat @0)) $
- S.fromVector [product (S.shapeL arr)] $
- S.toVector arr
+sumFull ssx (XArray arr) = numEltSumFull (ssxRank ssx) $ fromO arr
sumInner :: forall sh sh' a. (Storable a, NumElt a)
=> StaticShX sh -> StaticShX sh' -> XArray (sh ++ sh') a -> XArray sh a