Public Member Functions | |
| SumTransformation () | |
| virtual | ~SumTransformation () |
| virtual bool | doTransform (const RCP< ScalarExpr > &left, const RCP< ScalarExpr > &right, int sign, RCP< ScalarExpr > &rtn) const =0 |
SumTransformation is a base class for any transformation which takes the two operands of a sum (left, right) and produces a new expression mathematically equivalent to the original sum. This will be used to effect simplification transformations on sum expressions.
Definition at line 63 of file SundanceSumTransformation.hpp.
Definition at line 52 of file SundanceSumTransformation.cpp.
| virtual Sundance::SumTransformation::~SumTransformation | ( | ) | [inline, virtual] |
Definition at line 70 of file SundanceSumTransformation.hpp.
| virtual bool Sundance::SumTransformation::doTransform | ( | const RCP< ScalarExpr > & | left, |
| const RCP< ScalarExpr > & | right, | ||
| int | sign, | ||
| RCP< ScalarExpr > & | rtn | ||
| ) | const [pure virtual] |
Test whether the transform is applicable in this case, and if it is, apply it. The return value is true is the transformation was applied, otherwise false. Returns by non-const reference the transformed expression.
Implemented in Sundance::SumIntegrals, Sundance::RearrangeLeftSumWithConstant, Sundance::RearrangeRightSumWithConstant, Sundance::MoveConstantsToLeftOfSum, Sundance::SumConstants, Sundance::RemoveZeroFromSum, Sundance::RemoveUnaryMinusFromSum, Sundance::ReorderSum, Sundance::SumTransformationSequence, and Sundance::IdentifyPolynomialSum.