aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikolaj Konarski <mikolaj.konarski@gmail.com>2025-01-24 05:59:33 +0100
committerMikolaj Konarski <mikolaj.konarski@gmail.com>2025-01-24 05:59:33 +0100
commit4163a49a7662ac79fa00cef6d3d985faa6b8adc9 (patch)
treeab5e18149d2c85c0b505cb82f079de5d8b6ff7cf /src
parentf80be796c6a63b0038cea5b596820568e6fa8ef8 (diff)
Eliminate the lame shaped fromInteger implementation
Diffstat (limited to 'src')
-rw-r--r--src/Data/Array/Nested/Internal/Ranked.hs2
-rw-r--r--src/Data/Array/Nested/Internal/Shaped.hs26
2 files changed, 8 insertions, 20 deletions
diff --git a/src/Data/Array/Nested/Internal/Ranked.hs b/src/Data/Array/Nested/Internal/Ranked.hs
index 9483723..5f453a5 100644
--- a/src/Data/Array/Nested/Internal/Ranked.hs
+++ b/src/Data/Array/Nested/Internal/Ranked.hs
@@ -205,7 +205,7 @@ instance (NumElt a, PrimElt a, Num a) => Num (Ranked n a) where
negate = arithPromoteRanked negate
abs = arithPromoteRanked abs
signum = arithPromoteRanked signum
- fromInteger = error "Ranked(fromInteger): Cannot implement fromInteger, use rreplicateScal"
+ fromInteger = error "Data.Array.Nested.fromInteger: No singletons available, use explicit rreplicateScal"
instance (FloatElt a, NumElt a, PrimElt a, Num a) => Fractional (Ranked n a) where
fromRational _ = error "Data.Array.Nested.fromRational: No singletons available, use explicit rreplicateScal"
diff --git a/src/Data/Array/Nested/Internal/Shaped.hs b/src/Data/Array/Nested/Internal/Shaped.hs
index 4071aad..5d1b3b2 100644
--- a/src/Data/Array/Nested/Internal/Shaped.hs
+++ b/src/Data/Array/Nested/Internal/Shaped.hs
@@ -196,34 +196,22 @@ arithPromoteShaped2 :: forall sh a b c.
-> Shaped sh a -> Shaped sh b -> Shaped sh c
arithPromoteShaped2 = coerce
--- | TODO: 'KnownShS' is only there for 'fromInteger'.
-instance (NumElt a, PrimElt a, Num a, KnownShS sh) => Num (Shaped sh a) where
+instance (NumElt a, PrimElt a, Num a) => Num (Shaped sh a) where
(+) = arithPromoteShaped2 (+)
(-) = arithPromoteShaped2 (-)
(*) = arithPromoteShaped2 (*)
negate = arithPromoteShaped negate
abs = arithPromoteShaped abs
signum = arithPromoteShaped signum
- fromInteger =
- case knownShS @sh of
- ZSS -> sscalar . fromInteger
- _ -> error "Data.Array.Nested.fromInteger: No singletons available, use explicit sreplicateScal"
-
--- | TODO: 'KnownShS' is only there for 'fromRational'.
-instance (FloatElt a, NumElt a, PrimElt a, Fractional a, KnownShS sh) => Fractional (Shaped sh a) where
- fromRational =
- case knownShS @sh of
- ZSS -> sscalar . fromRational
- _ -> error "Data.Array.Nested.fromRational: No singletons available, use explicit sreplicateScal"
+ fromInteger = error "Data.Array.Nested.fromInteger: No singletons available, use explicit sreplicateScal"
+
+instance (FloatElt a, NumElt a, PrimElt a, Fractional a) => Fractional (Shaped sh a) where
+ fromRational = error "Data.Array.Nested.fromRational: No singletons available, use explicit sreplicateScal"
recip = arithPromoteShaped recip
(/) = arithPromoteShaped2 (/)
--- | TODO: 'KnownShS' is only there for 'pi'.
-instance (FloatElt a, NumElt a, PrimElt a, Floating a, KnownShS sh) => Floating (Shaped sh a) where
- pi =
- case knownShS @sh of
- ZSS -> sscalar pi
- _ -> error "Data.Array.Nested.pi: No singletons available, use explicit sreplicateScal"
+instance (FloatElt a, NumElt a, PrimElt a, Floating a) => Floating (Shaped sh a) where
+ pi = error "Data.Array.Nested.pi: No singletons available, use explicit sreplicateScal"
exp = arithPromoteShaped exp
log = arithPromoteShaped log
sqrt = arithPromoteShaped sqrt