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

Safe HaskellNone
LanguageHaskell98

Data.Array.Repa.Slice

Description

Index space transformation between arrays and slices.

Synopsis

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 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 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 # 
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 #