end-user API for trellis producers
TODO replaceable mode of signal processing.
For runtime processing StaticSystem is first converted (compiled) to RuntimeSystem that is better suited for actual signals processing.
Basic definitions for trellis processing
For runtime processing StaticSystem is first converted (compiled) to RuntimeSystem that is better suited for actual signals processing.
All elements in StaticSystem are converted to RuntimeComponent. RuntimeComponent already contains functions that process signals.
From the system's converting point of view there are two kinds of StaticSystem Component's simple and compex. Simple components do not depend on Subsystem's encapsulation. Complex components do depend on subsystem's path. For simple components we may use simpler approach.
Subsystems are converted with a special construction - RuntimeSystemToTotalTrellisProducerConverter. This converter is a recursive converter of a StaticSystem because it is necessary to convert both the top level system and all subsystems at any level.
Toolkit for conversion of StaticSystem to RuntimeSystems. The conversion purpose is to convert all Components of a StaticSystem to some kind of Signal processors.
Partial functions are used as a basis for conversion algorithm composition. They have convenient pattern-matching syntax and allow easy chaining. However, construction of composite converters is a bit tricky: - ensure recursive conversion of subsystems; - ensure red links conversion with the whole system in mind. - extensible to add new component types.
It is possible to employ a slightly different approach. First get the class of a component and then apply a partial function to the component. This approach however works only for simple one-level components like links.