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

Safe HaskellSafe
LanguageHaskell98

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.

  • processProcType :: TypeF

    Proc type

  • processLoopRate :: TypeF

    Rate of process loop

  • processParamFlags :: [(Bool, BindF)]

    Parameters to process. These are the parameters of the original function, with flag being true for types.

  • processContext :: Context

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

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.

OpGenerate

Generate a new Series, with elements based on index

OpReduce

Reduce the elements of a series into a reference.

OpSeriesOfRateVec

Convert a series from a vector

OpSeriesOfArgument

Use an existing series passed in as argument