synthesizer-llvm-1.0: Efficient signal processing using runtime compilation
Safe HaskellSafe-Inferred
LanguageHaskell98

Synthesizer.LLVM.Causal.Render

Documentation

derefFillPtr :: Importer (Ptr global -> Word -> Ptr a -> Ptr b -> IO Word) Source #

compile :: (C a, T a ~ al, C b, T b ~ bl, C param, Struct param ~ paramStruct) => (Exp param -> T al bl) -> IO (Ptr paramStruct -> Word -> Ptr a -> Ptr b -> IO Word) Source #

runAux :: (C p, C a, T a ~ al, C b, T b ~ bl) => (Exp p -> T al bl) -> IO (IO () -> p -> Vector a -> IO (Vector b)) Source #

run_ :: (C p, C a, T a ~ al, C b, T b ~ bl) => (Exp p -> T al bl) -> IO (p -> Vector a -> IO (Vector b)) Source #

derefChunkPtr :: Importer (Ptr globalState -> Word -> Ptr a -> Ptr b -> IO Word) Source #

compileChunky :: (IsSized paramStruct, Value (Ptr paramStruct) ~ pPtr, C state, Struct state ~ stateStruct, C global, Struct global ~ globalStruct, Triple paramStruct globalStruct stateStruct ~ triple, IsSized local, C a, T a ~ valueA, C b, T b ~ valueB) => (forall r z. Phi z => pPtr -> global -> Value (Ptr local) -> valueA -> state -> T r z (valueB, state)) -> (forall r. pPtr -> CodeGenFunction r (global, state)) -> (forall r. pPtr -> global -> CodeGenFunction r ()) -> IO (Ptr paramStruct -> IO (Ptr triple), Finalizer triple, Ptr triple -> Word -> Ptr a -> Ptr b -> IO Word) Source #

derefChunkPluggedPtr :: Importer (Ptr globalStateStruct -> Word -> Ptr inp -> Ptr out -> IO Word) Source #

compilePlugged :: (Undefined stateIn, Phi stateIn) => (Undefined stateOut, Phi stateOut) => (IsSized paramStruct, Value (Ptr paramStruct) ~ pPtr, C state, Struct state ~ stateStruct, C global, Struct global ~ globalStruct, Triple paramStruct globalStruct stateStruct ~ triple) => IsSized local => (C paramIn, Struct paramIn ~ inStruct) => (C paramOut, Struct paramOut ~ outStruct) => (forall r. paramIn -> stateIn -> CodeGenFunction r (valueA, stateIn)) -> (forall r. paramIn -> CodeGenFunction r stateIn) -> (forall r z. Phi z => pPtr -> global -> Value (Ptr local) -> valueA -> state -> T r z (valueB, state)) -> (forall r. pPtr -> CodeGenFunction r (global, state)) -> (forall r. pPtr -> global -> CodeGenFunction r ()) -> (forall r. paramOut -> valueB -> stateOut -> CodeGenFunction r stateOut) -> (forall r. paramOut -> CodeGenFunction r stateOut) -> IO (Ptr paramStruct -> IO (Ptr triple), Ptr triple -> IO (), Ptr triple -> Word -> Ptr inStruct -> Ptr outStruct -> IO Word) Source #

processIOParameterized :: (C p, Read a, x ~ Value (Ptr (Struct p))) => T a b -> T x b c -> T c d -> IO (IO (p, IO ()) -> T a d) Source #

processIOCore :: (C p, Read a) => T a b -> (Exp p -> T b c) -> T c d -> IO (IO (p, IO ()) -> T a d) Source #

processIO :: (C p, Read a, Default a, Default d) => (Exp p -> T (Element a) (Element d)) -> IO (p -> T a d) Source #

class Run f where Source #

Associated Types

type DSL f a b Source #

type In f Source #

type Out f Source #

Methods

build :: C p => T (In f) a -> (Exp p -> DSL f a b) -> T b (Out f) -> IO (IO (p, IO ()) -> f) Source #

Instances

Instances details
Read a => Run (T a b) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Render

Associated Types

type DSL (T a b) a b Source #

type In (T a b) Source #

type Out (T a b) Source #

Methods

build :: C p => T0 (In (T a b)) a0 -> (Exp p -> DSL (T a b) a0 b0) -> T1 b0 (Out (T a b)) -> IO (IO (p, IO ()) -> T a b) Source #

(RunArg a, Run f) => Run (a -> f) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Render

Associated Types

type DSL (a -> f) a b Source #

type In (a -> f) Source #

type Out (a -> f) Source #

Methods

build :: C p => T (In (a -> f)) a0 -> (Exp p -> DSL (a -> f) a0 b) -> T b (Out (a -> f)) -> IO (IO (p, IO ()) -> a -> f) Source #

runPlugged :: Run f => T (In f) a -> DSL f a b -> T b (Out f) -> IO f Source #

run :: Run f => (In f ~ a, Default a, Element a ~ al) => (Out f ~ b, Default b, Element b ~ bl) => DSL f al bl -> IO f Source #