diff options
| author | Tom Smeding <t.j.smeding@uu.nl> | 2024-05-14 13:01:22 +0200 | 
|---|---|---|
| committer | Tom Smeding <t.j.smeding@uu.nl> | 2024-05-14 13:01:22 +0200 | 
| commit | d0b8d7c8935dc1bf6fbb09c752707a82bc066808 (patch) | |
| tree | a6cb8897bb201c87e1d8d2dd333b16781f8f6695 /src/Data/Array | |
| parent | b17676f566bc178be3eff4351a61b6368bdb9fe7 (diff) | |
rev1
Diffstat (limited to 'src/Data/Array')
| -rw-r--r-- | src/Data/Array/Mixed.hs | 3 | ||||
| -rw-r--r-- | src/Data/Array/Nested.hs | 4 | ||||
| -rw-r--r-- | src/Data/Array/Nested/Internal.hs | 9 | 
3 files changed, 14 insertions, 2 deletions
| diff --git a/src/Data/Array/Mixed.hs b/src/Data/Array/Mixed.hs index 2b6bfe2..0351beb 100644 --- a/src/Data/Array/Mixed.hs +++ b/src/Data/Array/Mixed.hs @@ -411,3 +411,6 @@ empty sh  slice :: [(Int, Int)] -> XArray sh a -> XArray sh a  slice ivs (XArray arr) = XArray (S.slice ivs arr) + +rev1 :: XArray (n : sh) a -> XArray (n : sh) a +rev1 (XArray arr) = XArray (S.rev [0] arr) diff --git a/src/Data/Array/Nested.hs b/src/Data/Array/Nested.hs index 4a64e95..ec5f0b5 100644 --- a/src/Data/Array/Nested.hs +++ b/src/Data/Array/Nested.hs @@ -9,7 +9,7 @@ module Data.Array.Nested (    rshape, rindex, rindexPartial, rgenerate, rsumOuter1,    rtranspose, rappend, rscalar, rfromVector, rtoVector, runScalar,    rconstant, rfromList, rfromList1, rtoList, rtoList1, -  rslice, +  rslice, rrev1,    -- ** Lifting orthotope operations to 'Ranked' arrays    rlift, @@ -21,7 +21,7 @@ module Data.Array.Nested (    sshape, sindex, sindexPartial, sgenerate, ssumOuter1,    stranspose, sappend, sscalar, sfromVector, stoVector, sunScalar,    sconstant, sfromList, sfromList1, stoList, stoList1, -  sslice, +  sslice, srev1,    -- ** Lifting orthotope operations to 'Shaped' arrays    slift, diff --git a/src/Data/Array/Nested/Internal.hs b/src/Data/Array/Nested/Internal.hs index 4a03548..350eb6f 100644 --- a/src/Data/Array/Nested/Internal.hs +++ b/src/Data/Array/Nested/Internal.hs @@ -537,6 +537,9 @@ mconstant sh x = fromPrimitive (mconstantP sh x)  mslice :: (KnownShapeX sh, Elt a) => [(Int, Int)] -> Mixed sh a -> Mixed sh a  mslice ivs = mlift $ \_ -> X.slice ivs +mrev1 :: (KnownShapeX (n : sh), Elt a) => Mixed (n : sh) a -> Mixed (n : sh) a +mrev1 = mlift $ \_ -> X.rev1 +  mliftPrim :: (KnownShapeX sh, Storable a)            => (a -> a)            -> Mixed sh (Primitive a) -> Mixed sh (Primitive a) @@ -1077,6 +1080,9 @@ rconstant sh x = coerce fromPrimitive (rconstantP sh x)  rslice :: (KnownINat n, Elt a) => [(Int, Int)] -> Ranked n a -> Ranked n a  rslice ivs = rlift $ \_ -> X.slice ivs +rrev1 :: (KnownINat n, Elt a) => Ranked (S n) a -> Ranked (S n) a +rrev1 = rlift $ \_ -> X.rev1 +  -- ====== API OF SHAPED ARRAYS ====== -- @@ -1283,3 +1289,6 @@ sconstant x = coerce fromPrimitive (sconstantP @sh x)  sslice :: (KnownShape sh, Elt a) => [(Int, Int)] -> Shaped sh a -> Shaped sh a  sslice ivs = slift $ \_ -> X.slice ivs + +srev1 :: (KnownNat n, KnownShape sh, Elt a) => Shaped (n : sh) a -> Shaped (n : sh) a +srev1 = slift $ \_ -> X.rev1 | 
