repa-3.4.1.2: High performance, regular, shape polymorphic parallel arrays.

Safe Haskell | None
Language | Haskell98

Data.Array.Repa.Slice

Description

Index space transformation between arrays and slices.

Synopsis

- data All = All
- data Any sh = Any
- type family FullShape ss
- type family SliceShape ss
- class Slice ss where

# Documentation

data All Source #

Select all indices at a certain position.

Constructors

All |

Instances

Slice sl => Slice ((:.) sl All) Source # |
Methods sliceOfFull :: (sl :. All) -> FullShape (sl :. All) -> SliceShape (sl :. All) Source # fullOfSlice :: (sl :. All) -> SliceShape (sl :. All) -> FullShape (sl :. All) Source #
type SliceShape ((:.) sl All) Source # |
type SliceShape ((:.) sl All) = (:.) (SliceShape sl) Int
type FullShape ((:.) sl All) Source # |
type FullShape ((:.) sl All) = (:.) (FullShape sl) Int

data Any sh Source #

Place holder for any possible shape.

Constructors

Any |

Instances

Slice (Any sh) Source # |
Methods sliceOfFull :: Any sh -> FullShape (Any sh) -> SliceShape (Any sh) Source # fullOfSlice :: Any sh -> SliceShape (Any sh) -> FullShape (Any sh) Source #
type SliceShape (Any sh) Source # |
type SliceShape (Any sh) = sh
type FullShape (Any sh) Source # |
type FullShape (Any sh) = sh

type family FullShape ss Source #

Map a type of the index in the full shape, to the type of the index in the slice.

Instances

type FullShape Z Source # |
type FullShape Z = Z
type FullShape (Any sh) Source # |
type FullShape (Any sh) = sh
type FullShape ((:.) sl All) Source # |
type FullShape ((:.) sl All) = (:.) (FullShape sl) Int
type FullShape ((:.) sl Int) Source # |
type FullShape ((:.) sl Int) = (:.) (FullShape sl) Int

type family SliceShape ss Source #

Map the type of an index in the slice, to the type of the index in the full shape.

Instances

type SliceShape Z Source # |
type SliceShape Z = Z
type SliceShape (Any sh) Source # |
type SliceShape (Any sh) = sh
type SliceShape ((:.) sl All) Source # |
type SliceShape ((:.) sl All) = (:.) (SliceShape sl) Int
type SliceShape ((:.) sl Int) Source # |
type SliceShape ((:.) sl Int) = SliceShape sl

class Slice ss where Source #

Class of index types that can map to slices.

Minimal complete definition

sliceOfFull, fullOfSlice

Methods

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.

Instances

Slice Z Source # |
Methods sliceOfFull :: Z -> FullShape Z -> SliceShape Z Source # fullOfSlice :: Z -> SliceShape Z -> FullShape Z Source #
Slice (Any sh) Source # |
Methods sliceOfFull :: Any sh -> FullShape (Any sh) -> SliceShape (Any sh) Source # fullOfSlice :: Any sh -> SliceShape (Any sh) -> FullShape (Any sh) Source #
Slice sl => Slice ((:.) sl All) Source # |
Methods sliceOfFull :: (sl :. All) -> FullShape (sl :. All) -> SliceShape (sl :. All) Source # fullOfSlice :: (sl :. All) -> SliceShape (sl :. All) -> FullShape (sl :. All) Source #
Slice sl => Slice ((:.) sl Int) Source # |
Methods sliceOfFull :: (sl :. Int) -> FullShape (sl :. Int) -> SliceShape (sl :. Int) Source # fullOfSlice :: (sl :. Int) -> SliceShape (sl :. Int) -> FullShape (sl :. Int) Source #