synthesizer-llvm-1.1.0.1: Efficient signal processing using runtime compilation

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.Filter.Universal

Contents

Documentation

data Result a #

Constructors

Result 

Fields

Instances
Functor Result 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

fmap :: (a -> b) -> Result a -> Result b #

(<$) :: a -> Result b -> Result a #

Applicative Result 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

pure :: a -> Result a #

(<*>) :: Result (a -> b) -> Result a -> Result b #

liftA2 :: (a -> b -> c) -> Result a -> Result b -> Result c #

(*>) :: Result a -> Result b -> Result b #

(<*) :: Result a -> Result b -> Result a #

Foldable Result 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

fold :: Monoid m => Result m -> m #

foldMap :: Monoid m => (a -> m) -> Result a -> m #

foldr :: (a -> b -> b) -> b -> Result a -> b #

foldr' :: (a -> b -> b) -> b -> Result a -> b #

foldl :: (b -> a -> b) -> b -> Result a -> b #

foldl' :: (b -> a -> b) -> b -> Result a -> b #

foldr1 :: (a -> a -> a) -> Result a -> a #

foldl1 :: (a -> a -> a) -> Result a -> a #

toList :: Result a -> [a] #

null :: Result a -> Bool #

length :: Result a -> Int #

elem :: Eq a => a -> Result a -> Bool #

maximum :: Ord a => Result a -> a #

minimum :: Ord a => Result a -> a #

sum :: Num a => Result a -> a #

product :: Num a => Result a -> a #

Traversable Result 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

traverse :: Applicative f => (a -> f b) -> Result a -> f (Result b) #

sequenceA :: Applicative f => Result (f a) -> f (Result a) #

mapM :: Monad m => (a -> m b) -> Result a -> m (Result b) #

sequence :: Monad m => Result (m a) -> m (Result a) #

C a v => C a (Result v) 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

(*>) :: a -> Result v -> Result v #

Storable a => Storable (Result a) 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

sizeOf :: Result a -> Int #

alignment :: Result a -> Int #

peekElemOff :: Ptr (Result a) -> Int -> IO (Result a) #

pokeElemOff :: Ptr (Result a) -> Int -> Result a -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Result a) #

pokeByteOff :: Ptr b -> Int -> Result a -> IO () #

peek :: Ptr (Result a) -> IO (Result a) #

poke :: Ptr (Result a) -> Result a -> IO () #

C v => C (Result v) 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

zero :: Result v #

(+) :: Result v -> Result v -> Result v #

(-) :: Result v -> Result v -> Result v #

negate :: Result v -> Result v #

C a => C (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

pack :: Result a -> Struct (Result a)

unpack :: Struct (Result a) -> Result a

C a => C (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Struct (Result a) :: Type

Methods

load :: Value (Ptr (Struct (Result a))) -> CodeGenFunction r (Result a)

store :: Result a -> Value (Ptr (Struct (Result a))) -> CodeGenFunction r ()

decompose :: Value (Struct (Result a)) -> CodeGenFunction r (Result a)

compose :: Result a -> CodeGenFunction r (Value (Struct (Result a)))

C a => C (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Repr (Result a) :: Type

Methods

cons :: Result a -> T (Result a)

undef :: T (Result a)

zero :: T (Result a)

phi :: BasicBlock -> T (Result a) -> CodeGenFunction r (T (Result a))

addPhi :: BasicBlock -> T (Result a) -> T (Result a) -> CodeGenFunction r ()

Phi a => Phi (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

phi :: BasicBlock -> Result a -> CodeGenFunction r (Result a)

addPhi :: BasicBlock -> Result a -> Result a -> CodeGenFunction r ()

Undefined a => Undefined (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

undef :: Result a

Value a => Value (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type ValueOf (Result a) :: Type

Methods

valueOf :: Result a -> ValueOf (Result a)

C v => C (Result v) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

insert :: Value Word32 -> Element (Result v) -> Result v -> CodeGenFunction r (Result v)

Simple v => Simple (Result v) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Element (Result v) :: Type

type Size (Result v) :: Type

Methods

shuffleMatch :: ConstValue (Vector (Size (Result v)) Word32) -> Result v -> CodeGenFunction r (Result v)

extract :: Value Word32 -> Result v -> CodeGenFunction r (Element (Result v))

Flatten a => Flatten (Result a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Registers (Result a) :: Type #

Methods

flattenCode :: Result a -> Compute r (Registers (Result a)) #

unfoldCode :: T (Registers (Result a)) -> Result a #

Write v => Write (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type WriteIt (Result v) :: Type Source #

Methods

insert :: Value Word32 -> Element (Result v) -> Result v -> CodeGenFunction r (Result v) Source #

assemble :: [Element (Result v)] -> CodeGenFunction r (Result v) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (Result v)) (Result v)) Source #

writeNext :: Element (Result v) -> WriteIterator (WriteIt (Result v)) (Result v) -> CodeGenFunction r (WriteIterator (WriteIt (Result v)) (Result v)) Source #

writeStop :: WriteIterator (WriteIt (Result v)) (Result v) -> CodeGenFunction r (Result v) Source #

Read v => Read (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Element (Result v) :: Type Source #

type ReadIt (Result v) :: Type Source #

Methods

extract :: Value Word32 -> Result v -> CodeGenFunction r (Element (Result v)) Source #

dissect :: Result v -> CodeGenFunction r [Element (Result v)] Source #

readStart :: Result v -> CodeGenFunction r (ReadIterator (ReadIt (Result v)) (Result v)) Source #

readNext :: ReadIterator (ReadIt (Result v)) (Result v) -> CodeGenFunction r (Element (Result v), ReadIterator (ReadIt (Result v)) (Result v)) Source #

Sized v => Sized (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Size (Result v) :: Type Source #

(Write v, Element v ~ b, C b, Phi a, Undefined a, Aggregate ae a, Aggregate be b, C ae be) => C (Parameter a) v (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.ControlledPacked

Associated Types

type Output (Parameter a) v :: Type Source #

type Input (Parameter a) (Result v) :: Type Source #

Methods

process :: T (Parameter a, v) (Result v) Source #

(PseudoModule v, Scalar v ~ a, RationalConstant a, C a, C v) => C (Parameter a) v (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter a) (Result v) :: Type Source #

type Output (Parameter a) v :: Type Source #

Methods

process :: T (Parameter a, v) (Result v) Source #

Aggregate e mv => Aggregate (Result e) (Result mv) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type MultiValuesOf (Result e) :: Type

type ExpressionsOf (Result mv) :: Type

Methods

bundle :: Result e -> CodeGenFunction r (Result mv)

dissect :: Result mv -> Result e

type Struct (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Struct (Result a)
type Repr (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Repr (Result a) = Result (Repr a)
type ValueOf (Result a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type ValueOf (Result a) = Result (ValueOf a)
type Element (Result v) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Element (Result v) = Result (Element v)
type Size (Result v) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Size (Result v) = Size v
type ExpressionsOf (Result mv) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type ExpressionsOf (Result mv) = Result (ExpressionsOf mv)
type MultiValuesOf (Result e) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type MultiValuesOf (Result e) = Result (MultiValuesOf e)
type Registers (Result a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type WriteIt (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type WriteIt (Result v) = Result (WriteIt v)
type Element (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Element (Result v) = Result (Element v)
type ReadIt (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type ReadIt (Result v) = Result (ReadIt v)
type Size (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Size (Result v) = Size v
type Input (Parameter a) (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.ControlledPacked

type Input (Parameter a) (Result v) = v
type Input (Parameter a) (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

type Input (Parameter a) (Result v) = v

data Parameter a #

Instances
Functor Parameter 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

fmap :: (a -> b) -> Parameter a -> Parameter b #

(<$) :: a -> Parameter b -> Parameter a #

Applicative Parameter 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

pure :: a -> Parameter a #

(<*>) :: Parameter (a -> b) -> Parameter a -> Parameter b #

liftA2 :: (a -> b -> c) -> Parameter a -> Parameter b -> Parameter c #

(*>) :: Parameter a -> Parameter b -> Parameter b #

(<*) :: Parameter a -> Parameter b -> Parameter a #

Foldable Parameter 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

fold :: Monoid m => Parameter m -> m #

foldMap :: Monoid m => (a -> m) -> Parameter a -> m #

foldr :: (a -> b -> b) -> b -> Parameter a -> b #

foldr' :: (a -> b -> b) -> b -> Parameter a -> b #

foldl :: (b -> a -> b) -> b -> Parameter a -> b #

foldl' :: (b -> a -> b) -> b -> Parameter a -> b #

foldr1 :: (a -> a -> a) -> Parameter a -> a #

foldl1 :: (a -> a -> a) -> Parameter a -> a #

toList :: Parameter a -> [a] #

null :: Parameter a -> Bool #

length :: Parameter a -> Int #

elem :: Eq a => a -> Parameter a -> Bool #

maximum :: Ord a => Parameter a -> a #

minimum :: Ord a => Parameter a -> a #

sum :: Num a => Parameter a -> a #

product :: Num a => Parameter a -> a #

Traversable Parameter 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

traverse :: Applicative f => (a -> f b) -> Parameter a -> f (Parameter b) #

sequenceA :: Applicative f => Parameter (f a) -> f (Parameter a) #

mapM :: Monad m => (a -> m b) -> Parameter a -> m (Parameter b) #

sequence :: Monad m => Parameter (m a) -> m (Parameter a) #

C a v => C a (Parameter v) 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

scaleAndAccumulate :: (a, Parameter v) -> (Parameter v, Parameter v -> Parameter v) #

Storable a => Storable (Parameter a) 
Instance details

Defined in Synthesizer.Plain.Filter.Recursive.Universal

Methods

sizeOf :: Parameter a -> Int #

alignment :: Parameter a -> Int #

peekElemOff :: Ptr (Parameter a) -> Int -> IO (Parameter a) #

pokeElemOff :: Ptr (Parameter a) -> Int -> Parameter a -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Parameter a) #

pokeByteOff :: Ptr b -> Int -> Parameter a -> IO () #

peek :: Ptr (Parameter a) -> IO (Parameter a) #

poke :: Ptr (Parameter a) -> Parameter a -> IO () #

C a => C (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

pack :: Parameter a -> Struct (Parameter a)

unpack :: Struct (Parameter a) -> Parameter a

C a => C (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Struct (Parameter a) :: Type

Methods

load :: Value (Ptr (Struct (Parameter a))) -> CodeGenFunction r (Parameter a)

store :: Parameter a -> Value (Ptr (Struct (Parameter a))) -> CodeGenFunction r ()

decompose :: Value (Struct (Parameter a)) -> CodeGenFunction r (Parameter a)

compose :: Parameter a -> CodeGenFunction r (Value (Struct (Parameter a)))

C a => C (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Repr (Parameter a) :: Type

Methods

cons :: Parameter a -> T (Parameter a)

undef :: T (Parameter a)

zero :: T (Parameter a)

phi :: BasicBlock -> T (Parameter a) -> CodeGenFunction r (T (Parameter a))

addPhi :: BasicBlock -> T (Parameter a) -> T (Parameter a) -> CodeGenFunction r ()

Phi a => Phi (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

phi :: BasicBlock -> Parameter a -> CodeGenFunction r (Parameter a)

addPhi :: BasicBlock -> Parameter a -> Parameter a -> CodeGenFunction r ()

Undefined a => Undefined (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

undef :: Parameter a

Value a => Value (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type ValueOf (Parameter a) :: Type

Methods

valueOf :: Parameter a -> ValueOf (Parameter a)

C a => C (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

pack :: Parameter a -> Struct (Parameter a)

unpack :: Struct (Parameter a) -> Parameter a

C v => C (Parameter v) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

insert :: Value Word32 -> Element (Parameter v) -> Parameter v -> CodeGenFunction r (Parameter v)

Simple v => Simple (Parameter v) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Element (Parameter v) :: Type

type Size (Parameter v) :: Type

Methods

shuffleMatch :: ConstValue (Vector (Size (Parameter v)) Word32) -> Parameter v -> CodeGenFunction r (Parameter v)

extract :: Value Word32 -> Parameter v -> CodeGenFunction r (Element (Parameter v))

Flatten a => Flatten (Parameter a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Registers (Parameter a) :: Type #

Methods

flattenCode :: Parameter a -> Compute r (Registers (Parameter a)) #

unfoldCode :: T (Registers (Parameter a)) -> Parameter a #

C a => C (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Methods

load :: Value (Ptr (Parameter a)) -> CodeGenFunction r (ValueOf (Parameter a))

store :: ValueOf (Parameter a) -> Value (Ptr (Parameter a)) -> CodeGenFunction r ()

(Write v, Element v ~ b, C b, Phi a, Undefined a, Aggregate ae a, Aggregate be b, C ae be) => C (Parameter a) v (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.ControlledPacked

Associated Types

type Output (Parameter a) v :: Type Source #

type Input (Parameter a) (Result v) :: Type Source #

Methods

process :: T (Parameter a, v) (Result v) Source #

(PseudoModule v, Scalar v ~ a, RationalConstant a, C a, C v) => C (Parameter a) v (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter a) (Result v) :: Type Source #

type Output (Parameter a) v :: Type Source #

Methods

process :: T (Parameter a, v) (Result v) Source #

Aggregate e mv => Aggregate (Parameter e) (Parameter mv) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type MultiValuesOf (Parameter e) :: Type

type ExpressionsOf (Parameter mv) :: Type

Methods

bundle :: Parameter e -> CodeGenFunction r (Parameter mv)

dissect :: Parameter mv -> Parameter e

type Struct (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Struct (Parameter a)
type Repr (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Repr (Parameter a) = Parameter (Repr a)
type ValueOf (Parameter a) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type ValueOf (Parameter a) = Parameter (ValueOf a)
type Element (Parameter v) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Element (Parameter v) = Parameter (Element v)
type Size (Parameter v) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Size (Parameter v) = Size v
type ExpressionsOf (Parameter mv) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type ExpressionsOf (Parameter mv) = Parameter (ExpressionsOf mv)
type MultiValuesOf (Parameter e) 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type MultiValuesOf (Parameter e) = Parameter (MultiValuesOf e)
type Registers (Parameter a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Output (Parameter a) v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.ControlledPacked

type Output (Parameter a) v = Result v
type Output (Parameter a) v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

type Output (Parameter a) v = Result v
type Input (Parameter a) (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.ControlledPacked

type Input (Parameter a) (Result v) = v
type Input (Parameter a) (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

type Input (Parameter a) (Result v) = v

parameter :: C a => a -> a -> Parameter a Source #

causal :: (a ~ Scalar v, PseudoModule v, IntegerConstant a, C v) => T (Parameter a, v) (Result v) Source #

parameterCode :: (Transcendental a, RationalConstant a) => a -> a -> CodeGenFunction r (Parameter a) Source #

causalExp :: (C ae ve, Aggregate ae a, Aggregate ve v, C v) => T (Parameter a, v) (Result v) Source #

Orphan instances

C a => C (Parameter a) Source # 
Instance details

Methods

pack :: Parameter a -> Struct (Parameter a)

unpack :: Struct (Parameter a) -> Parameter a

C a => C (Result a) Source # 
Instance details

Methods

pack :: Result a -> Struct (Result a)

unpack :: Struct (Result a) -> Result a

C a => C (Parameter a) Source # 
Instance details

Associated Types

type Struct (Parameter a) :: Type

Methods

load :: Value (Ptr (Struct (Parameter a))) -> CodeGenFunction r (Parameter a)

store :: Parameter a -> Value (Ptr (Struct (Parameter a))) -> CodeGenFunction r ()

decompose :: Value (Struct (Parameter a)) -> CodeGenFunction r (Parameter a)

compose :: Parameter a -> CodeGenFunction r (Value (Struct (Parameter a)))

C a => C (Result a) Source # 
Instance details

Associated Types

type Struct (Result a) :: Type

Methods

load :: Value (Ptr (Struct (Result a))) -> CodeGenFunction r (Result a)

store :: Result a -> Value (Ptr (Struct (Result a))) -> CodeGenFunction r ()

decompose :: Value (Struct (Result a)) -> CodeGenFunction r (Result a)

compose :: Result a -> CodeGenFunction r (Value (Struct (Result a)))

C a => C (Parameter a) Source # 
Instance details

Associated Types

type Repr (Parameter a) :: Type

Methods

cons :: Parameter a -> T (Parameter a)

undef :: T (Parameter a)

zero :: T (Parameter a)

phi :: BasicBlock -> T (Parameter a) -> CodeGenFunction r (T (Parameter a))

addPhi :: BasicBlock -> T (Parameter a) -> T (Parameter a) -> CodeGenFunction r ()

C a => C (Result a) Source # 
Instance details

Associated Types

type Repr (Result a) :: Type

Methods

cons :: Result a -> T (Result a)

undef :: T (Result a)

zero :: T (Result a)

phi :: BasicBlock -> T (Result a) -> CodeGenFunction r (T (Result a))

addPhi :: BasicBlock -> T (Result a) -> T (Result a) -> CodeGenFunction r ()

Phi a => Phi (Parameter a) Source # 
Instance details

Methods

phi :: BasicBlock -> Parameter a -> CodeGenFunction r (Parameter a)

addPhi :: BasicBlock -> Parameter a -> Parameter a -> CodeGenFunction r ()

Phi a => Phi (Result a) Source # 
Instance details

Methods

phi :: BasicBlock -> Result a -> CodeGenFunction r (Result a)

addPhi :: BasicBlock -> Result a -> Result a -> CodeGenFunction r ()

Undefined a => Undefined (Parameter a) Source # 
Instance details

Methods

undef :: Parameter a

Undefined a => Undefined (Result a) Source # 
Instance details

Methods

undef :: Result a

Value a => Value (Parameter a) Source # 
Instance details

Associated Types

type ValueOf (Parameter a) :: Type

Methods

valueOf :: Parameter a -> ValueOf (Parameter a)

Value a => Value (Result a) Source # 
Instance details

Associated Types

type ValueOf (Result a) :: Type

Methods

valueOf :: Result a -> ValueOf (Result a)

C a => C (Parameter a) Source # 
Instance details

Methods

pack :: Parameter a -> Struct (Parameter a)

unpack :: Struct (Parameter a) -> Parameter a

C v => C (Parameter v) Source # 
Instance details

Methods

insert :: Value Word32 -> Element (Parameter v) -> Parameter v -> CodeGenFunction r (Parameter v)

C v => C (Result v) Source # 
Instance details

Methods

insert :: Value Word32 -> Element (Result v) -> Result v -> CodeGenFunction r (Result v)

Simple v => Simple (Parameter v) Source # 
Instance details

Associated Types

type Element (Parameter v) :: Type

type Size (Parameter v) :: Type

Methods

shuffleMatch :: ConstValue (Vector (Size (Parameter v)) Word32) -> Parameter v -> CodeGenFunction r (Parameter v)

extract :: Value Word32 -> Parameter v -> CodeGenFunction r (Element (Parameter v))

Simple v => Simple (Result v) Source # 
Instance details

Associated Types

type Element (Result v) :: Type

type Size (Result v) :: Type

Methods

shuffleMatch :: ConstValue (Vector (Size (Result v)) Word32) -> Result v -> CodeGenFunction r (Result v)

extract :: Value Word32 -> Result v -> CodeGenFunction r (Element (Result v))

Flatten a => Flatten (Parameter a) Source # 
Instance details

Associated Types

type Registers (Parameter a) :: Type #

Methods

flattenCode :: Parameter a -> Compute r (Registers (Parameter a)) #

unfoldCode :: T (Registers (Parameter a)) -> Parameter a #

Flatten a => Flatten (Result a) Source # 
Instance details

Associated Types

type Registers (Result a) :: Type #

Methods

flattenCode :: Result a -> Compute r (Registers (Result a)) #

unfoldCode :: T (Registers (Result a)) -> Result a #

C a => C (Parameter a) Source # 
Instance details

Methods

load :: Value (Ptr (Parameter a)) -> CodeGenFunction r (ValueOf (Parameter a))

store :: ValueOf (Parameter a) -> Value (Ptr (Parameter a)) -> CodeGenFunction r ()

Write v => Write (Result v) Source # 
Instance details

Associated Types

type WriteIt (Result v) :: Type Source #

Methods

insert :: Value Word32 -> Element (Result v) -> Result v -> CodeGenFunction r (Result v) Source #

assemble :: [Element (Result v)] -> CodeGenFunction r (Result v) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (Result v)) (Result v)) Source #

writeNext :: Element (Result v) -> WriteIterator (WriteIt (Result v)) (Result v) -> CodeGenFunction r (WriteIterator (WriteIt (Result v)) (Result v)) Source #

writeStop :: WriteIterator (WriteIt (Result v)) (Result v) -> CodeGenFunction r (Result v) Source #

Read v => Read (Result v) Source # 
Instance details

Associated Types

type Element (Result v) :: Type Source #

type ReadIt (Result v) :: Type Source #

Methods

extract :: Value Word32 -> Result v -> CodeGenFunction r (Element (Result v)) Source #

dissect :: Result v -> CodeGenFunction r [Element (Result v)] Source #

readStart :: Result v -> CodeGenFunction r (ReadIterator (ReadIt (Result v)) (Result v)) Source #

readNext :: ReadIterator (ReadIt (Result v)) (Result v) -> CodeGenFunction r (Element (Result v), ReadIterator (ReadIt (Result v)) (Result v)) Source #

Sized v => Sized (Result v) Source # 
Instance details

Associated Types

type Size (Result v) :: Type Source #

Aggregate e mv => Aggregate (Parameter e) (Parameter mv) Source # 
Instance details

Associated Types

type MultiValuesOf (Parameter e) :: Type

type ExpressionsOf (Parameter mv) :: Type

Methods

bundle :: Parameter e -> CodeGenFunction r (Parameter mv)

dissect :: Parameter mv -> Parameter e

Aggregate e mv => Aggregate (Result e) (Result mv) Source # 
Instance details

Associated Types

type MultiValuesOf (Result e) :: Type

type ExpressionsOf (Result mv) :: Type

Methods

bundle :: Result e -> CodeGenFunction r (Result mv)

dissect :: Result mv -> Result e