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
Select all indices at a certain position.
Place holder for any possible shape.
type family FullShape ss Source
Map a type of the index in the full shape, to the type of the index in the slice.
type family SliceShape ss Source
Map the type of an index in the slice, to the type of the index in the full shape.
type SliceShape Z = Z Source | |
type SliceShape (Any sh) = sh Source | |
type SliceShape ((:.) sl All) = (:.) (SliceShape sl) Int Source | |
type SliceShape ((:.) sl Int) = SliceShape sl Source |
Class of index types that can map to slices.
sliceOfFull :: ss -> FullShape ss -> SliceShape ss Source
Map an index of a full shape onto an index of some slice.
fullOfSlice :: ss -> SliceShape ss -> FullShape ss Source
Map an index of a slice onto an index of the full shape.