From 55036a5ea4a6e590d0404638b2823c6a4aec3fba Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 20 Mar 2025 13:01:24 +0100 Subject: Separate arith routines into a library The point is that this separate library does not depend on orthotope. --- src/Data/Array/Mixed/XArray.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/Data/Array/Mixed/XArray.hs') 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 $ -- cgit v1.2.3-70-g09d2