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

DDC.Core.Flow.Process

Synopsis

Documentation

data Process Source #

A process is a graph of series operators that read from some parameter series and write to some accumulators.

Constructors

 Process FieldsprocessName :: NameName of whole process. This is taken from the function name in the original source code.processProcType :: TypeFProc typeprocessLoopRate :: TypeFRate of process loopprocessParamFlags :: [(Bool, BindF)]Parameters to process. These are the parameters of the original function, with flag being true for types.processContext :: ContextFlow context in this process. This contains a ContextRate entry for all the Rate variables in the parameters, along with an entry for all the nested contexts introduced by the process itself.

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 OpRep Flat replicate. Fields OpReps Segmented replicate. Fields OpIndices Segmented indices. Fields OpFill Fill a vector with elements from a series. Fields OpGather Gather elements from a vector into a series. Fields OpScatter Scatter elements from a series into a vector. Fields 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. FieldsopArity :: Int opResultSeries :: BindF opInputRate :: TypeF opInputSeriess :: [BoundF] opWorkerParams :: [BindF] opWorkerBody :: ExpF OpPack Pack a series according to a selector. Fields OpGenerate Generate a new Series, with elements based on index Fields OpReduce Reduce the elements of a series into a reference. Fields OpSeriesOfRateVec Convert a series from a vector Fields OpSeriesOfArgument Use an existing series passed in as argument Fields

Instances

 Source # Methods Source # MethodsshowList :: [Operator] -> ShowS #