Public Member Functions | |
| ProductTransformation () | |
| virtual | ~ProductTransformation () |
| virtual bool | doTransform (const RCP< ScalarExpr > &left, const RCP< ScalarExpr > &right, RCP< ScalarExpr > &rtn) const =0 |
Static Public Member Functions | |
| static bool & | optimizeFunctionDiffOps () |
ProductTransformation is a base class for any transformation which takes the two operands of a product (left, right) and produces a new expression mathematically equivalent to the original product. This will be used to effect simplification transformations on product expressions.
Definition at line 63 of file SundanceProductTransformation.hpp.
Definition at line 52 of file SundanceProductTransformation.cpp.
| virtual Sundance::ProductTransformation::~ProductTransformation | ( | ) | [inline, virtual] |
Definition at line 70 of file SundanceProductTransformation.hpp.
| virtual bool Sundance::ProductTransformation::doTransform | ( | const RCP< ScalarExpr > & | left, |
| const RCP< ScalarExpr > & | right, | ||
| 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::TakeConstantUnderIntegralSign, Sundance::RearrangeLeftProductWithConstant, Sundance::RearrangeRightProductWithConstant, Sundance::ApplySimpleDiffOp, Sundance::DistributeSumOfDiffOps, Sundance::BringConstantOutsideDiffOp, Sundance::KillDiffOpOnConstant, Sundance::AssociateHungryDiffOpWithOperand, Sundance::MoveUnaryMinusOutsideProduct, Sundance::MoveConstantsToLeftOfProduct, Sundance::MultiplyConstants, Sundance::RemoveMinusOneFromProduct, Sundance::RemoveOneFromProduct, Sundance::RemoveZeroFromProduct, and Sundance::ProductTransformationSequence.
| static bool& Sundance::ProductTransformation::optimizeFunctionDiffOps | ( | ) | [inline, static] |
Definition at line 73 of file SundanceProductTransformation.hpp.
Referenced by Sundance::ApplySimpleDiffOp::doTransform().