repa-array-4.1.0.1: Bulk array representations and operators.

Safe HaskellSafe-Inferred
LanguageHaskell98

Data.Repa.Fusion.Unpack

Synopsis

Documentation

class Unpack a t | a -> t where Source

Unpack the pieces of a structure into a tuple.

This is used in a low-level fusion optimisation to ensure that intermediate values are unboxed.

Methods

unpack :: a -> t Source

repack :: a -> t -> a Source

Instances

Unpack (Array F Char) t => Unpack (Array A Char) t 
Unpack (Buffer F Char) t => Unpack (Buffer A Char) t 
Unpack (Buffer F Double) t => Unpack (Buffer A Double) t 
Unpack (Buffer F Float) t => Unpack (Buffer A Float) t 
Unpack (Buffer F Int) t => Unpack (Buffer A Int) t 
Unpack (Buffer F Int8) t => Unpack (Buffer A Int8) t 
Unpack (Buffer F Int16) t => Unpack (Buffer A Int16) t 
Unpack (Buffer F Int32) t => Unpack (Buffer A Int32) t 
Unpack (Buffer F Int64) t => Unpack (Buffer A Int64) t 
Unpack (Buffer F Word8) t => Unpack (Buffer A Word8) t 
Unpack (Buffer (T2 A A) (a, b)) t => Unpack (Buffer A (a, b)) t 
Unpack (Buffer N (Array l a)) t => Unpack (Buffer A (Array l a)) t 
Unpack (Buffer F Date32) t => Unpack (Buffer A Date32) t 
Unpack (Array F a) (Vector a) 
Unpack (Array U a) (Vector a) 
Unpack (Buffer B a) (IOVector a) 
Unpack (Buffer F a) (IOVector a)

Unpack Foreign buffers

Unpack (Buffer U a) (IOVector a) 
Unpack (Buffer N (Array l a)) (IOVector (Array l a)) 
Unpack (Buffer r a) tBuf => Unpack (Buffer (E r l) a) (l, tBuf) 
(Unpack (Buffer r1 a) t1, Unpack (Buffer r2 b) t2) => Unpack (Buffer (T2 r1 r2) (a, b)) (t1, t2) 
Unpack (Buffer A [a]) (Buffer A [a]) 
(Unpack (Buffer A a) tA, Unpack (Buffer A b) tB) => Unpack (Buffer A ((:*:) a b)) (tA, tB) 
Unpack (Array S a) (Int, Int, Int, ForeignPtr a)