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 () |
Definition at line 52 of file SundanceProductTransformation.hpp.
ProductTransformation::ProductTransformation | ( | ) |
Definition at line 41 of file SundanceProductTransformation.cpp.
virtual Sundance::ProductTransformation::~ProductTransformation | ( | ) | [inline, virtual] |
Definition at line 59 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::ProductTransformationSequence, Sundance::RemoveZeroFromProduct, Sundance::RemoveOneFromProduct, Sundance::RemoveMinusOneFromProduct, Sundance::MultiplyConstants, Sundance::MoveConstantsToLeftOfProduct, Sundance::MoveUnaryMinusOutsideProduct, Sundance::AssociateHungryDiffOpWithOperand, Sundance::KillDiffOpOnConstant, Sundance::BringConstantOutsideDiffOp, Sundance::DistributeSumOfDiffOps, Sundance::ApplySimpleDiffOp, Sundance::RearrangeRightProductWithConstant, Sundance::RearrangeLeftProductWithConstant, and Sundance::TakeConstantUnderIntegralSign.
static bool& Sundance::ProductTransformation::optimizeFunctionDiffOps | ( | ) | [inline, static] |
Definition at line 62 of file SundanceProductTransformation.hpp.
Referenced by Sundance::ApplySimpleDiffOp::doTransform().