repa-eval-4.2.4.0: Low-level parallel operators on bulk random-accessble arrays.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Repa.Eval.Elt

Description

Values that can be stored in Repa Arrays.

Synopsis

Documentation

class Elt a where Source #

Element types that can be used with the blockwise filling functions.

This class is mainly used to define the touch method. This is used internally in the imeplementation of Repa to prevent let-binding from being floated inappropriately by the GHC simplifier. Doing a seq sometimes isn't enough, because the GHC simplifier can erase these, and still move around the bindings.

This class supports the generic deriving mechanism, use deriving instance Elt (TYPE)

Minimal complete definition

Nothing

Methods

touch :: a -> IO () Source #

Place a demand on a value at a particular point in an IO computation.

default touch :: (Generic a, GElt (Rep a)) => a -> IO () Source #

zero :: a Source #

Generic zero value, helpful for debugging.

default zero :: (Generic a, GElt (Rep a)) => a Source #

one :: a Source #

Generic one value, helpful for debugging.

default one :: (Generic a, GElt (Rep a)) => a Source #

Instances

Instances details
Elt Int16 Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Int32 Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Int64 Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Int8 Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: Int8 -> IO () Source #

zero :: Int8 Source #

one :: Int8 Source #

Elt Word16 Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Word32 Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Word64 Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Word8 Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Bool Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: Bool -> IO () Source #

zero :: Bool Source #

one :: Bool Source #

Elt Char Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: Char -> IO () Source #

zero :: Char Source #

one :: Char Source #

Elt Double Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Float Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Elt Int Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: Int -> IO () Source #

zero :: Int Source #

one :: Int Source #

Elt Word Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: Word -> IO () Source #

zero :: Word Source #

one :: Word Source #

(Elt a, Elt b) => Elt (a, b) Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: (a, b) -> IO () Source #

zero :: (a, b) Source #

one :: (a, b) Source #

(Elt a, Elt b, Elt c) => Elt (a, b, c) Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: (a, b, c) -> IO () Source #

zero :: (a, b, c) Source #

one :: (a, b, c) Source #

(Elt a, Elt b, Elt c, Elt d) => Elt (a, b, c, d) Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: (a, b, c, d) -> IO () Source #

zero :: (a, b, c, d) Source #

one :: (a, b, c, d) Source #

(Elt a, Elt b, Elt c, Elt d, Elt e) => Elt (a, b, c, d, e) Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: (a, b, c, d, e) -> IO () Source #

zero :: (a, b, c, d, e) Source #

one :: (a, b, c, d, e) Source #

(Elt a, Elt b, Elt c, Elt d, Elt e, Elt f) => Elt (a, b, c, d, e, f) Source # 
Instance details

Defined in Data.Repa.Eval.Elt

Methods

touch :: (a, b, c, d, e, f) -> IO () Source #

zero :: (a, b, c, d, e, f) Source #

one :: (a, b, c, d, e, f) Source #