|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Class Summary | |
---|---|
LinearTransform | A LinearTransform communicates information about how to transform one or more linear representations into a new linear representation (eg combination rules). |
LinearTransformFeedback | |
LinearTransformNull | Represents a null transform -- eg no transform to apply. |
LinearTransformPipeline | Represents a pipeline combination transform. |
LinearTransformSplitJoin | Contains the code for merging all the filters from a split join into a single monolithic matrix. |
Exception Summary | |
---|---|
NoTransformPossibleException | Exception that is thrown when we can't compute a transform for some reason. |
Performs algebraic combination of adjacent linear statespace filters in the stream graph. As described in this CASES'05 paper and Sitij Agrawal's M.Eng. thesis, adjacent filters can be algebraically combined if they fit into the linear statespace model. As opposed to filter fusion, this transformation statically evaluates the product of coefficients in the two filters, and often changes the number of FLOPs required by the overall computation.
The main classes performing the combinations are LinearTransformPipeline
, LinearTransformSplitJoin
, and
LinearTransformFeedback
.
Because the linear statespace representation is a generalization of the linear representation, the algebraic combination presented in this package is a generalization of the passes in at.dms.kjc.sir.linear.transform. That is, this package provides all the transformations of the linear package, and this package also provides combination of feedback loops.
However, there is some overhead dealing with filter states, and the performance of statespace combination might be worse than plain linear combination (even for plain linear filters). Also, the code generation rules for plain linear filters are more highly optimized than the current statespace rules. Thus, with our current implementation, it is probably worthwhile to resort to plain linear combination when it applies.
at.dms.kjc.sir.statespace
,
at.dms.kjc.sir.linear.transform
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |