diff options
| author | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2026-01-15 21:30:26 +0100 |
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2026-01-15 21:30:26 +0100 |
| commit | bb1deceb98b4c7bfcd35372e0289566cb593d8a9 (patch) | |
| tree | a33c09c6e0b9c7d0cd846fd41df312c7db7a7d23 /src/Data/Array | |
| parent | 103a4fa07ee16106261cfc627422353277667cf8 (diff) | |
Speed up sumFull from 36ms to 82 microseconds
Diffstat (limited to 'src/Data/Array')
| -rw-r--r-- | src/Data/Array/XArray.hs | 6 |
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 |
