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

Safe HaskellSafe-Infered

Data.Array.Repa.Shape

Description

Class of types that can be used as array shapes and indices.

Synopsis

Documentation

class Eq sh => Shape sh whereSource

Class of types that can be used as array shapes and indices.

Methods

rank :: sh -> IntSource

Get the number of dimensions in a shape.

zeroDim :: shSource

The shape of an array of size zero, with a particular dimensionality.

unitDim :: shSource

The shape of an array with size one, with a particular dimensionality.

intersectDim :: sh -> sh -> shSource

Compute the intersection of two shapes.

addDim :: sh -> sh -> shSource

Add the coordinates of two shapes componentwise

size :: sh -> IntSource

Get the total number of elements in an array with this shape.

sizeIsValid :: sh -> BoolSource

Check whether this shape is small enough so that its flat indices an be represented as Int. If this returns False then your array is too big. Mostly used for writing QuickCheck tests.

toIndexSource

Arguments

:: sh

Shape of the array.

-> sh

Index into the array.

-> Int 

Convert an index into its equivalent flat, linear, row-major version.

fromIndexSource

Arguments

:: sh

Shape of the array.

-> Int

Index into linear representation.

-> sh 

Inverse of toIndex.

inShapeRangeSource

Arguments

:: sh

Start index for range.

-> sh

Final index for range.

-> sh

Index to check for.

-> Bool 

Check whether an index is within a given shape.

listOfShape :: sh -> [Int]Source

Convert a shape into its list of dimensions.

shapeOfList :: [Int] -> shSource

Convert a list of dimensions to a shape

deepSeq :: sh -> a -> aSource

Ensure that a shape is completely evaluated.

Instances

Shape Z 
Shape sh => Shape (:. sh Int) 

inShapeSource

Arguments

:: forall sh . Shape sh 
=> sh

Shape of the array.

-> sh

Index.

-> Bool 

Check whether an index is a part of a given shape.

showShape :: Shape sh => sh -> StringSource

Nicely format a shape as a string