Safe Haskell | None |
---|---|
Language | Haskell98 |
Index space transformation between arrays and slices.
- data All = All
- data Any sh = Any
- type family FullShape ss
- type family SliceShape ss
- class Slice ss where
- sliceOfFull :: ss -> FullShape ss -> SliceShape ss
- fullOfSlice :: ss -> SliceShape ss -> FullShape ss
Documentation
data All
Select all indices at a certain position.
data Any sh
Place holder for any possible shape.
type family FullShape ss
Map a type of the index in the full shape, to the type of the index in the slice.
type family SliceShape ss
Map the type of an index in the slice, to the type of the index in the full shape.
type SliceShape Z = Z | |
type SliceShape (Any sh) = sh | |
type SliceShape ((:.) sl All) = (:.) (SliceShape sl) Int | |
type SliceShape ((:.) sl Int) = SliceShape sl |
class Slice ss where
Class of index types that can map to slices.
sliceOfFull :: ss -> FullShape ss -> SliceShape ss
Map an index of a full shape onto an index of some slice.
fullOfSlice :: ss -> SliceShape ss -> FullShape ss
Map an index of a slice onto an index of the full shape.