diff options
| author | Mikolaj Konarski <mikolaj.konarski@gmail.com> | 2025-01-24 05:59:33 +0100 | 
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@gmail.com> | 2025-01-24 05:59:33 +0100 | 
| commit | 4163a49a7662ac79fa00cef6d3d985faa6b8adc9 (patch) | |
| tree | ab5e18149d2c85c0b505cb82f079de5d8b6ff7cf | |
| parent | f80be796c6a63b0038cea5b596820568e6fa8ef8 (diff) | |
Eliminate the lame shaped fromInteger implementation
| -rw-r--r-- | cabal.project | 2 | ||||
| -rw-r--r-- | src/Data/Array/Nested/Internal/Ranked.hs | 2 | ||||
| -rw-r--r-- | src/Data/Array/Nested/Internal/Shaped.hs | 24 | 
3 files changed, 8 insertions, 20 deletions
| diff --git a/cabal.project b/cabal.project index 63831f5..bc6e771 100644 --- a/cabal.project +++ b/cabal.project @@ -1,5 +1,5 @@  packages: . -with-compiler: ghc-9.8.2 +with-compiler: ghc-9.8.3  allow-newer:    orthotope:deepseq 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" +  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" +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 | 
