ddc-core-flow-0.3.2.1: Disciplined Disciple Compiler data flow compiler.

Safe HaskellNone

DDC.Core.Flow.Process.Operator

Synopsis

Documentation

data Operator Source

An abstract series operator.

Each of the constructors holds all the information we need to produce code for that operator.

Constructors

OpId

Connect a series from one place to another. These don't come from the source program, but are useful for during code generation.

Fields

opResultSeries :: BindF

Binder for result series.

Binder for result series.

opInputRate :: TypeF

Rate of input series.

Rate of input series.

Rate of all input series.

Rate of input series

opInputSeries :: BoundF

Bound of input series.

Bound of input series.

Bound of input series.

opElemType :: TypeF

Type of a series element.

Type of the elements.

OpCreate

Convert a series to a manifest vector.

Fields

opResultVector :: BindF

Binder for result vector

opInputRate :: TypeF

Rate of input series.

Rate of input series.

Rate of all input series.

Rate of input series

opInputSeries :: BoundF

Bound of input series.

Bound of input series.

Bound of input series.

opAllocRate :: Maybe TypeF

Rate that should be used when allocating the vector. This is filled in by patchAllocRates.

opElemType :: TypeF

Type of a series element.

Type of the elements.

OpMap

Apply a function to corresponding elements in several input series of the same rate, producing a new series. This subsumes the regular map operator as well as zipWith like operators where the input lengths are identical.

Fields

opArity :: Int

Arity of map, number of input streams.

opResultSeries :: BindF

Binder for result series.

Binder for result series.

opInputRate :: TypeF

Rate of input series.

Rate of input series.

Rate of all input series.

Rate of input series

opInputSeriess :: [BoundF]

Names for input series.

opWorkerParams :: [BindF]

Worker input parameters

opWorkerBody :: ExpF

Worker body.

Worker body

OpFold

Fold all the elements of a series.

Fields

opResultValue :: BindF

Binder for result value.

opInputRate :: TypeF

Rate of input series.

Rate of input series.

Rate of all input series.

Rate of input series

opInputSeries :: BoundF

Bound of input series.

Bound of input series.

Bound of input series.

opZero :: ExpF

Starting accumulator value.

opWorkerParamIndex :: BindF

Worker parameter for index input. Should be BNone for OpFlowFold, but something for OpFlowFoldIndex

opWorkerParamAcc :: BindF

Worker parameter for accumulator input.

opWorkerParamElem :: BindF

Worker parameter for element input.

opWorkerBody :: ExpF

Worker body.

Worker body

OpPack

Pack a series according to a selector.

Fields

opResultSeries :: BindF

Binder for result series.

Binder for result series.

opInputRate :: TypeF

Rate of input series.

Rate of input series.

Rate of all input series.

Rate of input series

opInputSeries :: BoundF

Bound of input series.

Bound of input series.

Bound of input series.

opOutputRate :: TypeF

Rate of output series.

opElemType :: TypeF

Type of a series element.

Type of the elements.