aboutsummaryrefslogtreecommitdiff
path: root/src/Data/Array
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2024-06-03 18:07:10 +0200
committerTom Smeding <tom@tomsmeding.com>2024-06-03 18:07:10 +0200
commit0cde8fb6cf80f3606ece7b47981ff017eb90d00c (patch)
tree050bcff2a1eb3b9b5e6d85ae5d8540ac639127ac /src/Data/Array
parent9ba958af12500c09170c1de7527d50a60ad58589 (diff)
Introduce PermR type synonym
Diffstat (limited to 'src/Data/Array')
-rw-r--r--src/Data/Array/Mixed/Permutation.hs3
-rw-r--r--src/Data/Array/Nested/Internal/Ranked.hs3
2 files changed, 5 insertions, 1 deletions
diff --git a/src/Data/Array/Mixed/Permutation.hs b/src/Data/Array/Mixed/Permutation.hs
index 6ff3bdc..e1e5c44 100644
--- a/src/Data/Array/Mixed/Permutation.hs
+++ b/src/Data/Array/Mixed/Permutation.hs
@@ -66,6 +66,9 @@ class KnownPerm l where makePerm :: Perm l
instance KnownPerm '[] where makePerm = PNil
instance (KnownNat n, KnownPerm l) => KnownPerm (n : l) where makePerm = natSing `PCons` makePerm
+-- | Untyped permutations for ranked arrays
+type PermR = [Int]
+
-- ** Applying permutations
diff --git a/src/Data/Array/Nested/Internal/Ranked.hs b/src/Data/Array/Nested/Internal/Ranked.hs
index d5bd70f..8737733 100644
--- a/src/Data/Array/Nested/Internal/Ranked.hs
+++ b/src/Data/Array/Nested/Internal/Ranked.hs
@@ -39,6 +39,7 @@ import Data.Array.Mixed.XArray (XArray(..))
import Data.Array.Mixed.XArray qualified as X
import Data.Array.Mixed.Internal.Arith
import Data.Array.Mixed.Lemmas
+import Data.Array.Mixed.Permutation
import Data.Array.Mixed.Shape
import Data.Array.Mixed.Types
import Data.Array.Nested.Internal.Mixed
@@ -257,7 +258,7 @@ rsumOuter1 :: forall n a. (NumElt a, PrimElt a)
=> Ranked (n + 1) a -> Ranked n a
rsumOuter1 = rfromPrimitive . rsumOuter1P . rtoPrimitive
-rtranspose :: forall n a. Elt a => [Int] -> Ranked n a -> Ranked n a
+rtranspose :: forall n a. Elt a => PermR -> Ranked n a -> Ranked n a
rtranspose perm arr
| sn@SNat <- shrToSNat (rshape arr)
, Dict <- lemKnownReplicate sn