Safe Haskell | None |
---|
Index types.
- data Z = Z
- data tail :. head = !tail :. !head
- type DIM0 = Z
- type DIM1 = DIM0 :. Int
- type DIM2 = DIM1 :. Int
- type DIM3 = DIM2 :. Int
- type DIM4 = DIM3 :. Int
- type DIM5 = DIM4 :. Int
- ix1 :: Int -> DIM1
- ix2 :: Int -> Int -> DIM2
- ix3 :: Int -> Int -> Int -> DIM3
- ix4 :: Int -> Int -> Int -> Int -> DIM4
- ix5 :: Int -> Int -> Int -> Int -> Int -> DIM5
Index types
An index of dimension zero
Eq Z | |
Ord Z | |
Read Z | |
Show Z | |
Shape Z | |
Slice Z | |
(Source D e, Shape DIM2, Elt e) => LoadRange D DIM2 e | Compute a range of elements in a rank-2 array. |
(Source C e, Shape DIM2, Elt e) => LoadRange C DIM2 e | Compute a range of elements in a rank-2 array. |
(Source C e, Shape DIM2, Elt e) => Load C DIM2 e | Compute all elements in an rank-2 array. |
Our index type, used for both shapes and indices.
!tail :. !head |
(Source D e, Shape DIM2, Elt e) => LoadRange D DIM2 e | Compute a range of elements in a rank-2 array. |
(Source C e, Shape DIM2, Elt e) => LoadRange C DIM2 e | Compute a range of elements in a rank-2 array. |
(Source C e, Shape DIM2, Elt e) => Load C DIM2 e | Compute all elements in an rank-2 array. |
(Eq tail, Eq head) => Eq (:. tail head) | |
(Eq (:. tail head), Ord tail, Ord head) => Ord (:. tail head) | |
(Read tail, Read head) => Read (:. tail head) | |
(Show tail, Show head) => Show (:. tail head) | |
(Eq (:. sh Int), Shape sh) => Shape (:. sh Int) | |
Slice sl => Slice (:. sl All) | |
Slice sl => Slice (:. sl Int) |
Common dimensions.
Helper for index construction.
Use this instead of explicit constructors like (Z :. (x :: Int))
.
The this is sometimes needed to ensure that x
is constrained to
be in Int
.