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

Safe HaskellNone

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 

Fields

processName :: Name

Name of whole process. This is taken from the function name in the original source code.

processParamTypes :: [BindF]

Type parameters to process. These are the type parameters of the original function.

processParamValues :: [BindF]

Value parameters to process. These are the value parameters of the original function.

processContexts :: [Context]

Flow contexts 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.

processOperators :: [Operator]

Flow operators in this process.

Instances

typeOfProcess :: Process -> TypeFSource

Take the functional type of a process.

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.

OpRep

Flat replicate.

OpReps

Segmented replicate.

OpIndices

Segmented indices.

OpFill

Fill a vector with elements from a series.

OpGather

Gather elements from a vector into a series.

OpScatter

Scatter elements from a series into a vector.

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.

OpPack

Pack a series according to a selector.

OpReduce

Reduce the elements of a series into a reference.