From ed6acbe5f409aba2fb222693da567ce04b7c4e01 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Wed, 12 Mar 2025 23:20:13 +0100 Subject: Implement quot/rem --- src/Data/Array/Nested/Internal/Mixed.hs | 4 ++++ src/Data/Array/Nested/Internal/Ranked.hs | 4 ++++ src/Data/Array/Nested/Internal/Shaped.hs | 4 ++++ 3 files changed, 12 insertions(+) (limited to 'src/Data/Array/Nested/Internal') diff --git a/src/Data/Array/Nested/Internal/Mixed.hs b/src/Data/Array/Nested/Internal/Mixed.hs index 08f97f0..7e1f100 100644 --- a/src/Data/Array/Nested/Internal/Mixed.hs +++ b/src/Data/Array/Nested/Internal/Mixed.hs @@ -265,6 +265,10 @@ instance (FloatElt a, PrimElt a) => Floating (Mixed sh a) where log1pexp = mliftNumElt1 floatEltLog1pexp log1mexp = mliftNumElt1 floatEltLog1mexp +mquotArray, mremArray :: (IntElt a, PrimElt a) => Mixed sh a -> Mixed sh a -> Mixed sh a +mquotArray = mliftNumElt2 intEltQuot +mremArray = mliftNumElt2 intEltRem + -- | Allowable element types in a mixed array, and by extension in a 'Ranked' or -- 'Shaped' array. Note the polymorphic instance for 'Elt' of @'Primitive' diff --git a/src/Data/Array/Nested/Internal/Ranked.hs b/src/Data/Array/Nested/Internal/Ranked.hs index 3bdd44e..4fb29e0 100644 --- a/src/Data/Array/Nested/Internal/Ranked.hs +++ b/src/Data/Array/Nested/Internal/Ranked.hs @@ -236,6 +236,10 @@ instance (FloatElt a, PrimElt a) => Floating (Ranked n a) where log1pexp = arithPromoteRanked GHC.Float.log1pexp log1mexp = arithPromoteRanked GHC.Float.log1mexp +rquotArray, rremArray :: (IntElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a +rquotArray = arithPromoteRanked2 mquotArray +rremArray = arithPromoteRanked2 mremArray + remptyArray :: KnownElt a => Ranked 1 a remptyArray = mtoRanked (memptyArray ZSX) diff --git a/src/Data/Array/Nested/Internal/Shaped.hs b/src/Data/Array/Nested/Internal/Shaped.hs index f75519f..ed616cf 100644 --- a/src/Data/Array/Nested/Internal/Shaped.hs +++ b/src/Data/Array/Nested/Internal/Shaped.hs @@ -234,6 +234,10 @@ instance (FloatElt a, PrimElt a) => Floating (Shaped sh a) where log1pexp = arithPromoteShaped GHC.Float.log1pexp log1mexp = arithPromoteShaped GHC.Float.log1mexp +squotArray, sremArray :: (IntElt a, PrimElt a) => Shaped sh a -> Shaped sh a -> Shaped sh a +squotArray = arithPromoteShaped2 mquotArray +sremArray = arithPromoteShaped2 mremArray + semptyArray :: KnownElt a => ShS sh -> Shaped (0 : sh) a semptyArray sh = Shaped (memptyArray (shCvtSX sh)) -- cgit v1.2.3-70-g09d2