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

Safe HaskellNone

Synthesizer.LLVM.Simple.Value

Synopsis

Documentation

data T a Source

Instances

(Additive a, IntegerConstant a) => Enum (T a) 
(Transcendental a, Real a, RationalConstant a) => Floating (T a) 
(Field a, Real a, RationalConstant a) => Fractional (T a) 
(PseudoRing a, Real a, IntegerConstant a) => Num (T a) 
(Transcendental a, RationalConstant a) => C (T a) 
(Transcendental a, RationalConstant a) => C (T a) 
(Field a, RationalConstant a) => C (T a) 
(Real a, PseudoRing a, IntegerConstant a) => C (T a) 
(PseudoRing a, IntegerConstant a) => C (T a) 
Additive a => C (T a)

We do not require a numeric prelude superclass, thus also LLVM only types like vectors are instances.

Flatten (T a) 
(Real a, IntegerConstant a, PseudoModule a a) => C (T a) (T a) 
(Real a, IntegerConstant a, PseudoModule a a) => Sqr (T a) (T a) 
(Sqr (T a) (T v), RationalConstant a, Algebraic a) => C (T a) (T v) 
(PseudoModule a v, IntegerConstant a) => C (T a) (T v) 

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

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

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

The same as sqrt, but needs only Algebraic constraint, not Transcendental.

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

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

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

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

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

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

unlift0 :: T a -> forall r. CodeGenFunction r aSource

unlift1 :: (T a -> T b) -> forall r. a -> CodeGenFunction r bSource

unlift2 :: (T a -> T b -> T c) -> forall r. a -> b -> CodeGenFunction r cSource

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

class Flatten value whereSource

Associated Types

type Registers value :: *Source

Methods

flatten :: value -> CodeGenFunction r (Registers value)Source

unfold :: Registers value -> valueSource

Instances

Flatten () 
Flatten a => Flatten (T a) 
Flatten a => Flatten (T a) 
Flatten a => Flatten (Parameter a) 
Flatten a => Flatten (Result a) 
Flatten a => Flatten (Parameter a) 
Flatten a => Flatten (State a) 
Flatten a => Flatten (Parameter a) 
Flatten a => Flatten (Parameter a) 
(C a, Flatten a) => Flatten (T a) 
Flatten (T a) 
Flatten a => Flatten (ParameterPacked a) 
Flatten a => Flatten (Parameter a) 
Flatten a => Flatten (Parameter a) 
(Flatten a, Flatten b) => Flatten (a, b) 
(Flatten a, NaturalT n) => Flatten (Parameter n a) 
Flatten a => Flatten (CascadeParameter n a) 
(Flatten a, Flatten b, Flatten c) => Flatten (a, b, c) 

flattenTraversable :: (Flatten value, Traversable f) => f value -> CodeGenFunction r (f (Registers value))Source

unfoldFunctor :: (Flatten value, Functor f) => f (Registers value) -> f valueSource