aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Data/Array/Mixed.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Data/Array/Mixed.hs b/src/Data/Array/Mixed.hs
index 080c458..d61969f 100644
--- a/src/Data/Array/Mixed.hs
+++ b/src/Data/Array/Mixed.hs
@@ -817,8 +817,12 @@ transpose2 ssh1 ssh2 (XArray arr)
, let n1 = ssxLength ssh1
= XArray (S.transpose (ssxIotaFrom n1 ssh2 ++ ssxIotaFrom 0 ssh1) arr)
-sumFull :: (Storable a, Num a) => XArray sh a -> a
-sumFull (XArray arr) = S.sumA arr
+sumFull :: (Storable a, NumElt a) => XArray sh a -> a
+sumFull (XArray arr) =
+ S.unScalar $
+ numEltSum1Inner (SNat @0) $
+ S.fromVector [product (S.shapeL arr)] $
+ S.toVector arr
sumInner :: forall sh sh' a. (Storable a, NumElt a)
=> StaticShX sh -> StaticShX sh' -> XArray (sh ++ sh') a -> XArray sh a