|
||||||||||
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). |
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 filters in the stream graph. As described in this PLDI'03 paper and Andrew Lamb's M.Eng. thesis, adjacent filters can be algebraically combined if each of their outputs is an affine combination of their inputs. 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
and LinearTransformSplitJoin
. They
employ the rules described in the above papers. Note that there are
no combination rules for feedback loops because it is impossible to
combine a feedback loop while maintaining a linear representation;
instead, a linear representation with state is needed. This
combination is implemented by the statespace package (see below),
which is a generalization of linear combination but may introduce
extra overhead for simple linear filters.
at.dms.kjc.sir.linear
,
at.dms.kjc.sir.statespace
,
at.dms.kjc.sir.lowering.partition.linear
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |