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

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.Value

Contents

Documentation

data T a #

Instances
Functor T 
Instance details

Defined in LLVM.DSL.Value

Methods

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

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

Applicative T 
Instance details

Defined in LLVM.DSL.Value

Methods

pure :: a -> T a #

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

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

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

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

(Additive a, IntegerConstant a) => Enum (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

succ :: T a -> T a #

pred :: T a -> T a #

toEnum :: Int -> T a #

fromEnum :: T a -> Int #

enumFrom :: T a -> [T a] #

enumFromThen :: T a -> T a -> [T a] #

enumFromTo :: T a -> T a -> [T a] #

enumFromThenTo :: T a -> T a -> T a -> [T a] #

(Transcendental a, Real a, RationalConstant a) => Floating (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

pi :: T a #

exp :: T a -> T a #

log :: T a -> T a #

sqrt :: T a -> T a #

(**) :: T a -> T a -> T a #

logBase :: T a -> T a -> T a #

sin :: T a -> T a #

cos :: T a -> T a #

tan :: T a -> T a #

asin :: T a -> T a #

acos :: T a -> T a #

atan :: T a -> T a #

sinh :: T a -> T a #

cosh :: T a -> T a #

tanh :: T a -> T a #

asinh :: T a -> T a #

acosh :: T a -> T a #

atanh :: T a -> T a #

log1p :: T a -> T a #

expm1 :: T a -> T a #

log1pexp :: T a -> T a #

log1mexp :: T a -> T a #

(Field a, Real a, RationalConstant a) => Fractional (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

(/) :: T a -> T a -> T a #

recip :: T a -> T a #

fromRational :: Rational -> T a #

(PseudoRing a, Real a, IntegerConstant a) => Num (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

(+) :: T a -> T a -> T a #

(-) :: T a -> T a -> T a #

(*) :: T a -> T a -> T a #

negate :: T a -> T a #

abs :: T a -> T a #

signum :: T a -> T a #

fromInteger :: Integer -> T a #

(Transcendental a, RationalConstant a) => C (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

pi :: T a #

exp :: T a -> T a #

log :: T a -> T a #

logBase :: T a -> T a -> T a #

(**) :: T a -> T a -> T a #

sin :: T a -> T a #

cos :: T a -> T a #

tan :: T a -> T a #

asin :: T a -> T a #

acos :: T a -> T a #

atan :: T a -> T a #

sinh :: T a -> T a #

cosh :: T a -> T a #

tanh :: T a -> T a #

asinh :: T a -> T a #

acosh :: T a -> T a #

atanh :: T a -> T a #

(Transcendental a, RationalConstant a) => C (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

sqrt :: T a -> T a #

root :: Integer -> T a -> T a #

(^/) :: T a -> Rational -> T a #

(Field a, RationalConstant a) => C (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

(/) :: T a -> T a -> T a #

recip :: T a -> T a #

fromRational' :: Rational -> T a #

(^-) :: T a -> Integer -> T a #

(Real a, PseudoRing a, IntegerConstant a) => C (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

abs :: T a -> T a #

signum :: T a -> T a #

(PseudoRing a, IntegerConstant a) => C (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

(*) :: T a -> T a -> T a #

one :: T a #

fromInteger :: Integer -> T a #

(^) :: T a -> Integer -> T a #

Additive a => C (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

zero :: T a #

(+) :: T a -> T a -> T a #

(-) :: T a -> T a -> T a #

negate :: T a -> T a #

Flatten (T a) 
Instance details

Defined in LLVM.DSL.Value

Associated Types

type Registers (T a) :: Type #

Methods

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

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

(Real a, IntegerConstant a, a ~ Scalar a, PseudoModule a) => Sqr (T a) (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

normSqr :: T a -> T a #

(Sqr (T a) (T v), RationalConstant a, Algebraic a) => C (T a) (T v) 
Instance details

Defined in LLVM.DSL.Value

Methods

norm :: T v -> T a #

(Real a, IntegerConstant a, a ~ Scalar a, PseudoModule a) => C (T a) (T a) 
Instance details

Defined in LLVM.DSL.Value

Methods

norm :: T a -> T a #

(a ~ Scalar v, PseudoModule v, IntegerConstant a) => C (T a) (T v) 
Instance details

Defined in LLVM.DSL.Value

Methods

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

type Registers (T a) 
Instance details

Defined in LLVM.DSL.Value

type Registers (T a) = a

decons :: T a -> forall r. CodeGenFunction r a #

tau :: (Transcendental a, RationalConstant a) => T a #

square :: PseudoRing a => T a -> T a #

sqrt :: Algebraic a => T a -> T a #

max :: Real a => T a -> T a -> T a #

min :: Real a => T a -> T a -> T a #

limit :: Real a => (T a, T a) -> T a -> T a #

fraction :: Fraction a => T a -> T a #

(%==) :: CmpRet a => T (Value a) -> T (Value a) -> T (Value (CmpResult a)) #

(%/=) :: CmpRet a => T (Value a) -> T (Value a) -> T (Value (CmpResult a)) #

(%<) :: CmpRet a => T (Value a) -> T (Value a) -> T (Value (CmpResult a)) #

(%<=) :: CmpRet a => T (Value a) -> T (Value a) -> T (Value (CmpResult a)) #

(%>) :: CmpRet a => T (Value a) -> T (Value a) -> T (Value (CmpResult a)) #

(%>=) :: CmpRet a => T (Value a) -> T (Value a) -> T (Value (CmpResult a)) #

not :: T (Value Bool) -> T (Value Bool) #

(%&&) :: T (Value Bool) -> T (Value Bool) -> T (Value Bool) #

(%||) :: T (Value Bool) -> T (Value Bool) -> T (Value Bool) #

(?) :: (Flatten value, Registers value ~ a, Phi a) => T (Value Bool) -> (value, value) -> value #

(??) :: (IsFirstClass a, CmpRet a) => T (Value (CmpResult a)) -> (T (Value a), T (Value a)) -> T (Value a) #

lift0 :: (forall r. CodeGenFunction r a) -> T a #

lift1 :: (forall r. a -> CodeGenFunction r b) -> T a -> T b #

lift2 :: (forall r. a -> b -> CodeGenFunction r c) -> T a -> T b -> T c #

lift3 :: (forall r. a -> b -> c -> CodeGenFunction r d) -> T a -> T b -> T c -> T d #

unlift0 :: Flatten value => value -> forall r. CodeGenFunction r (Registers value) #

unlift1 :: Flatten value => (T a -> value) -> forall r. a -> CodeGenFunction r (Registers value) #

unlift2 :: Flatten value => (T a -> T b -> value) -> forall r. a -> b -> CodeGenFunction r (Registers value) #

unlift3 :: Flatten value => (T a -> T b -> T c -> value) -> forall r. a -> b -> c -> CodeGenFunction r (Registers value) #

unlift4 :: Flatten value => (T a -> T b -> T c -> T d -> value) -> forall r. a -> b -> c -> d -> CodeGenFunction r (Registers value) #

unlift5 :: Flatten value => (T a -> T b -> T c -> T d -> T e -> value) -> forall r. a -> b -> c -> d -> e -> CodeGenFunction r (Registers value) #

constantValue :: a -> T a #

constant :: IsConst a => a -> T (Value a) #

fromInteger' :: IntegerConstant a => Integer -> T a #

fromRational' :: RationalConstant a => Rational -> T a #

class Flatten value where #

Methods

flattenCode :: value -> Compute r (Registers value) #

unfoldCode :: T (Registers value) -> value #

Instances
Flatten () 
Instance details

Defined in LLVM.DSL.Value

Associated Types

type Registers () :: Type #

Methods

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

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

Flatten a => Flatten (T a) 
Instance details

Defined in LLVM.DSL.Value

Associated Types

type Registers (T a) :: Type #

Methods

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

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

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

Defined in Synthesizer.LLVM.Frame.Stereo

Associated Types

type Registers (T a) :: Type #

Methods

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

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

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 #

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 #

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

Defined in Synthesizer.LLVM.Filter.SecondOrder

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

Defined in Synthesizer.LLVM.Filter.SecondOrder

Associated Types

type Registers (State a) :: Type #

Methods

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

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

(C a, Flatten a) => Flatten (T a) Source # 
Instance details

Defined in Synthesizer.LLVM.Value

Associated Types

type Registers (T a) :: Type #

Methods

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

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

Flatten (T a) 
Instance details

Defined in LLVM.DSL.Value

Associated Types

type Registers (T a) :: Type #

Methods

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

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

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

Defined in Synthesizer.LLVM.Filter.ComplexFirstOrder

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

Defined in Synthesizer.LLVM.Causal.Exponential2

Associated Types

type Registers (ParameterPacked a) :: Type #

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 #

(Flatten a, Flatten b) => Flatten (a, b) 
Instance details

Defined in LLVM.DSL.Value

Associated Types

type Registers (a, b) :: Type #

Methods

flattenCode :: (a, b) -> Compute r (Registers (a, b)) #

unfoldCode :: T (Registers (a, b)) -> (a, b) #

(Flatten a, Flatten b, Flatten c) => Flatten (a, b, c) 
Instance details

Defined in LLVM.DSL.Value

Associated Types

type Registers (a, b, c) :: Type #

Methods

flattenCode :: (a, b, c) -> Compute r (Registers (a, b, c)) #

unfoldCode :: T (Registers (a, b, c)) -> (a, b, c) #

type family Registers value :: Type #

Instances
type Registers () 
Instance details

Defined in LLVM.DSL.Value

type Registers () = ()
type Registers (T a) 
Instance details

Defined in LLVM.DSL.Value

type Registers (T a) = T (Registers a)
type Registers (T a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.Stereo

type Registers (T a) = T (Registers a)
type Registers (Parameter a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Registers (Result a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Registers (Parameter a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.SecondOrder

type Registers (State a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.SecondOrder

type Registers (T a) Source # 
Instance details

Defined in Synthesizer.LLVM.Value

type Registers (T a) = Registers a
type Registers (T a) 
Instance details

Defined in LLVM.DSL.Value

type Registers (T a) = a
type Registers (Parameter a) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.ComplexFirstOrder

type Registers (ParameterPacked a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type Registers (Parameter a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Exponential2

type Registers (a, b) 
Instance details

Defined in LLVM.DSL.Value

type Registers (a, b) = (Registers a, Registers b)
type Registers (a, b, c) 
Instance details

Defined in LLVM.DSL.Value

type Registers (a, b, c) = (Registers a, Registers b, Registers c)

flatten :: Flatten value => value -> CodeGenFunction r (Registers value) #

unfold :: Flatten value => Registers value -> value #

flattenCodeTraversable :: (Flatten value, Traversable f) => f value -> Compute r (f (Registers value)) #

unfoldCodeTraversable :: (Flatten value, Traversable f, Applicative f) => T (f (Registers value)) -> f value #

flattenFunction :: (Flatten a, Flatten b) => (a -> b) -> Registers a -> CodeGenFunction r (Registers b) #

Orphan instances

(C a, Flatten a) => Flatten (T a) Source # 
Instance details

Associated Types

type Registers (T a) :: Type #

Methods

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

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