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

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.Causal.Exponential2

Description

Exponential curve with controllable delay.

Documentation

data Parameter a Source #

Instances
Functor Parameter Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

Applicative Parameter Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

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 Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

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 Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

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) #

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

Defined in Synthesizer.LLVM.Causal.Exponential2

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

Defined in Synthesizer.LLVM.Causal.Exponential2

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) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

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) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

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) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

undef :: Parameter a

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

zero :: Parameter a

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Associated Types

type ValueOf (Parameter a) :: Type

Methods

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

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.Causal.Exponential2

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) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Associated Types

type MultiValuesOf (Parameter exp) :: Type

type ExpressionsOf (Parameter mv) :: Type

Methods

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

dissect :: Parameter mv -> Parameter exp

type Struct (Parameter a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type Struct (Parameter a) = Struct a
type Repr (Parameter a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

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

Defined in Synthesizer.LLVM.Causal.Exponential2

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

Defined in Synthesizer.LLVM.Causal.Exponential2

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

Defined in Synthesizer.LLVM.Causal.Exponential2

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

Defined in Synthesizer.LLVM.Causal.Exponential2

type ExpressionsOf (Parameter mv) = Parameter (ExpressionsOf mv)
type MultiValuesOf (Parameter exp) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

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

Defined in Synthesizer.LLVM.Causal.Exponential2

parameter :: (C a, TranscendentalConstant a, IsFloating a) => Value a -> CodeGenFunction r (Parameter (Value a)) Source #

causal :: (C a, T a ~ am, PseudoRing a) => Exp a -> T (Parameter am) am Source #

data ParameterPacked a Source #

Instances
Functor ParameterPacked Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

Applicative ParameterPacked Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Foldable ParameterPacked Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

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

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

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

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

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

toList :: ParameterPacked a -> [a] #

null :: ParameterPacked a -> Bool #

length :: ParameterPacked a -> Int #

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

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

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

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

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

Traversable ParameterPacked Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

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

Storable a => Storable (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Associated Types

type Struct (ParameterPacked a) :: Type

Methods

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

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

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Associated Types

type Repr (ParameterPacked a) :: Type

Methods

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

undef :: T (ParameterPacked a)

zero :: T (ParameterPacked a)

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Zero a => Zero (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

zero :: ParameterPacked a

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Associated Types

type ValueOf (ParameterPacked a) :: Type

Methods

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Associated Types

type Registers (ParameterPacked a) :: Type #

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Methods

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

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

MakeArguments (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Aggregate exp mv => Aggregate (ParameterPacked exp) (ParameterPacked mv) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

Associated Types

type MultiValuesOf (ParameterPacked exp) :: Type

type ExpressionsOf (ParameterPacked mv) :: Type

Methods

bundle :: ParameterPacked exp -> CodeGenFunction r (ParameterPacked mv)

dissect :: ParameterPacked mv -> ParameterPacked exp

type Arguments f (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type Struct (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type Struct (ParameterPacked a)
type Repr (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type Repr (ParameterPacked a) = ParameterPacked (Repr a)
type ValueOf (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type ValueOf (ParameterPacked a) = ParameterPacked (ValueOf a)
type ExpressionsOf (ParameterPacked mv) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type ExpressionsOf (ParameterPacked mv) = ParameterPacked (ExpressionsOf mv)
type MultiValuesOf (ParameterPacked exp) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type MultiValuesOf (ParameterPacked exp) = ParameterPacked (MultiValuesOf exp)
type Registers (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

parameterPacked :: (Write v, Element v ~ a, PseudoRing v, RationalConstant v, Transcendental a, RationalConstant a) => a -> CodeGenFunction r (ParameterPacked v) Source #

parameterPackedExp :: Positive n => (Transcendental a, RationalConstant a) => C a => Exp a -> ParameterPacked (Exp (T n a)) Source #

causalPacked :: (PseudoRing a, IntegerConstant a, Positive n, Vector n a, C a) => Exp a -> T (ParameterPacked (Value n a)) (Value n a) Source #