diff options
author | Tom Smeding <tom@tomsmeding.com> | 2025-03-20 13:01:24 +0100 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2025-03-20 13:01:24 +0100 |
commit | 55036a5ea4a6e590d0404638b2823c6a4aec3fba (patch) | |
tree | 484bc377229d3edff36bd9a2a80f999bbcd2e889 /src/Data/Array/Mixed/XArray.hs | |
parent | 5414434df62b2b196354b9748b265093c168601b (diff) |
Separate arith routines into a library
The point is that this separate library does not depend on orthotope.
Diffstat (limited to 'src/Data/Array/Mixed/XArray.hs')
-rw-r--r-- | src/Data/Array/Mixed/XArray.hs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Data/Array/Mixed/XArray.hs b/src/Data/Array/Mixed/XArray.hs index 71bdc1f..204c1d8 100644 --- a/src/Data/Array/Mixed/XArray.hs +++ b/src/Data/Array/Mixed/XArray.hs @@ -34,6 +34,7 @@ import Data.Array.Mixed.Lemmas import Data.Array.Mixed.Permutation import Data.Array.Mixed.Shape import Data.Array.Mixed.Types +import Data.Array.Strided.Arith type XArray :: [Maybe Nat] -> Type -> Type @@ -240,7 +241,7 @@ transpose2 ssh1 ssh2 (XArray arr) sumFull :: (Storable a, NumElt a) => StaticShX sh -> XArray sh a -> a sumFull _ (XArray arr) = S.unScalar $ - numEltSum1Inner (SNat @0) $ + liftO1 (numEltSum1Inner (SNat @0)) $ S.fromVector [product (S.shapeL arr)] $ S.toVector arr @@ -256,7 +257,7 @@ sumInner ssh ssh' arr go (XArray arr') | Refl <- lemRankApp ssh ssh'F , let sn = listxRank (let StaticShX l = ssh in l) - = XArray (numEltSum1Inner sn arr') + = XArray (liftO1 (numEltSum1Inner sn) arr') in go $ transpose2 ssh'F ssh $ |