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

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.Interpolation

Synopsis

Documentation

class (Applicative nodes, Traversable nodes) => C nodes where Source #

Methods

margin :: Margin (nodes a) Source #

Instances
C Nodes13 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

margin :: Margin (Nodes13 a) Source #

C Nodes02 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

margin :: Margin (Nodes02 a) Source #

loadNodes :: (C nodes, Storable am) => (Value (Ptr am) -> CodeGenFunction r a) -> Value Int -> Value (Ptr am) -> CodeGenFunction r (nodes a) Source #

indexNodes :: C nodes => (Value Word -> CodeGenFunction r v) -> Value Word -> Value Word -> CodeGenFunction r (nodes v) Source #

loadNodesExp :: (C nodes, Storable am) => (Value (Ptr am) -> CodeGenFunction r a) -> T Int -> Value (Ptr am) -> CodeGenFunction r (nodes a) Source #

indexNodesExp :: C nodes => (T Word -> CodeGenFunction r v) -> T Word -> T Word -> CodeGenFunction r (nodes v) Source #

data Margin nodes Source #

Constructors

Margin 
Instances
Eq (Margin nodes) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

(==) :: Margin nodes -> Margin nodes -> Bool #

(/=) :: Margin nodes -> Margin nodes -> Bool #

Show (Margin nodes) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

showsPrec :: Int -> Margin nodes -> ShowS #

show :: Margin nodes -> String #

showList :: [Margin nodes] -> ShowS #

C (Margin nodes) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Repr (Margin nodes) :: Type #

Methods

cons :: Margin nodes -> T (Margin nodes) #

undef :: T (Margin nodes) #

zero :: T (Margin nodes) #

phi :: BasicBlock -> T (Margin nodes) -> CodeGenFunction r (T (Margin nodes)) #

addPhi :: BasicBlock -> T (Margin nodes) -> T (Margin nodes) -> CodeGenFunction r () #

type Repr (Margin nodes) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Repr (Margin nodes) = (Value Int, Value Int)

zipMargin :: T Int -> T Int -> T (Margin nodes) Source #

unzipMargin :: T (Margin nodes) -> (T Int, T Int) Source #

toMargin :: C nodes => (forall r. T r nodes a v) -> Margin (nodes v) Source #

marginNumberExp :: Value val => val (Margin nodes) -> val Int Source #

marginOffsetExp :: Value val => val (Margin nodes) -> val Int Source #

type T r nodes a v = a -> nodes v -> CodeGenFunction r v Source #

data Nodes02 a Source #

Zero nodes before index 0 and two nodes starting from index 0.

Constructors

Nodes02 

Fields

Instances
Functor Nodes02 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

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

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

Applicative Nodes02 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

pure :: a -> Nodes02 a #

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

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

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

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

Foldable Nodes02 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

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

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

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

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

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

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

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

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

toList :: Nodes02 a -> [a] #

null :: Nodes02 a -> Bool #

length :: Nodes02 a -> Int #

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

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

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

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

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

Traversable Nodes02 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

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

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

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

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

C Nodes02 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

margin :: Margin (Nodes02 a) Source #

C l => C (Nodes02 l) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Struct (Nodes02 l) :: Type #

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

Defined in Synthesizer.LLVM.Interpolation

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

Defined in Synthesizer.LLVM.Interpolation

Methods

undef :: Nodes02 a #

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

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type WriteIt (Nodes02 v) :: Type Source #

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

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Element (Nodes02 v) :: Type Source #

type ReadIt (Nodes02 v) :: Type Source #

Sized value => Sized (Nodes02 value) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Size (Nodes02 value) :: Type Source #

type Struct (Nodes02 l) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Struct (Nodes02 l)
type WriteIt (Nodes02 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Element (Nodes02 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type ReadIt (Nodes02 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type ReadIt (Nodes02 v) = Nodes02 (ReadIt v)
type Size (Nodes02 value) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Size (Nodes02 value) = Size value

data Nodes13 a Source #

One node before index 0 and three nodes starting from index 0.

Constructors

Nodes13 
Instances
Functor Nodes13 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

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

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

Applicative Nodes13 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

pure :: a -> Nodes13 a #

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

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

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

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

Foldable Nodes13 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

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

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

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

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

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

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

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

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

toList :: Nodes13 a -> [a] #

null :: Nodes13 a -> Bool #

length :: Nodes13 a -> Int #

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

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

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

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

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

Traversable Nodes13 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

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

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

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

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

C Nodes13 Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Methods

margin :: Margin (Nodes13 a) Source #

C l => C (Nodes13 l) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Struct (Nodes13 l) :: Type #

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

Defined in Synthesizer.LLVM.Interpolation

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

Defined in Synthesizer.LLVM.Interpolation

Methods

undef :: Nodes13 a #

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

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type WriteIt (Nodes13 v) :: Type Source #

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

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Element (Nodes13 v) :: Type Source #

type ReadIt (Nodes13 v) :: Type Source #

Sized value => Sized (Nodes13 value) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Size (Nodes13 value) :: Type Source #

type Struct (Nodes13 l) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Struct (Nodes13 l)
type WriteIt (Nodes13 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Element (Nodes13 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type ReadIt (Nodes13 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type ReadIt (Nodes13 v) = Nodes13 (ReadIt v)
type Size (Nodes13 value) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Size (Nodes13 value) = Size value