
Public Member Functions | |
| BinaryExpr (const RCP< ScalarExpr > &left, const RCP< ScalarExpr > &right, int sign) | |
| virtual | ~BinaryExpr () |
| virtual std::ostream & | toText (std::ostream &os, bool paren) const |
| virtual XMLObject | toXML () const |
| Expr | left () const |
| Expr | right () const |
| int | sign () const |
| const EvaluatableExpr * | leftEvaluatable () const |
| const EvaluatableExpr * | rightEvaluatable () const |
| const ScalarExpr * | leftScalar () const |
| const ScalarExpr * | rightScalar () const |
| virtual bool | lessThan (const ScalarExpr *other) const |
Protected Member Functions | |
| virtual bool | parenthesizeSelf () const =0 |
| virtual bool | parenthesizeOperands () const =0 |
| virtual const std::string & | xmlTag () const =0 |
| virtual const std::string & | opChar () const =0 |
Private Attributes | |
| int | sign_ |
Definition at line 46 of file SundanceBinaryExpr.hpp.
| BinaryExpr::BinaryExpr | ( | const RCP< ScalarExpr > & | left, | |
| const RCP< ScalarExpr > & | right, | |||
| int | sign | |||
| ) |
construct with left and right operands
Definition at line 41 of file SundanceBinaryExpr.cpp.
| virtual Sundance::BinaryExpr::~BinaryExpr | ( | ) | [inline, virtual] |
virtual dtor
Definition at line 54 of file SundanceBinaryExpr.hpp.
| Expr Sundance::BinaryExpr::left | ( | ) | const [inline] |
Definition at line 63 of file SundanceBinaryExpr.hpp.
References Sundance::ExprWithChildren::child().
Referenced by Sundance::RearrangeLeftSumWithConstant::doTransform(), Sundance::RearrangeRightSumWithConstant::doTransform(), Sundance::RearrangeLeftProductWithConstant::doTransform(), Sundance::RearrangeRightProductWithConstant::doTransform(), Sundance::DistributeSumOfDiffOps::doTransform(), Sundance::BringConstantOutsideDiffOp::doTransform(), Sundance::AssociateHungryDiffOpWithOperand::doTransform(), and toXML().
| const EvaluatableExpr* Sundance::BinaryExpr::leftEvaluatable | ( | ) | const [inline] |
Downcast the left expr to an evaluatable expr
Definition at line 72 of file SundanceBinaryExpr.hpp.
References Sundance::ExprWithChildren::evaluatableChild().
Referenced by Sundance::SumExpr::everyTermHasTestFunctions(), Sundance::ProductExpr::internalFindQ_V(), and Sundance::ProductExpr::internalFindQ_W().
| const ScalarExpr* Sundance::BinaryExpr::leftScalar | ( | ) | const [inline] |
Downcast the left expr to a scalar expr
Definition at line 80 of file SundanceBinaryExpr.hpp.
References Sundance::ExprWithChildren::scalarChild().
Referenced by Sundance::RearrangeLeftSumWithConstant::doTransform(), Sundance::RearrangeRightSumWithConstant::doTransform(), Sundance::RearrangeLeftProductWithConstant::doTransform(), Sundance::RearrangeRightProductWithConstant::doTransform(), Sundance::BringConstantOutsideDiffOp::doTransform(), Sundance::KillDiffOpOnConstant::doTransform(), Sundance::SumExpr::isHungryDiffOp(), Sundance::SumExpr::isLinearForm(), Sundance::ProductExpr::isLinearForm(), Sundance::SumExpr::isLinearInTests(), Sundance::ProductExpr::isLinearInTests(), Sundance::SumExpr::isQuadraticForm(), Sundance::ProductExpr::isQuadraticForm(), and toText().
| bool BinaryExpr::lessThan | ( | const ScalarExpr * | other | ) | const [virtual] |
Ordering operator for use in transforming exprs to standard form
Reimplemented from Sundance::ExprWithChildren.
Definition at line 48 of file SundanceBinaryExpr.cpp.
References sign_.
| virtual const std::string& Sundance::BinaryExpr::opChar | ( | ) | const [protected, pure virtual] |
| virtual bool Sundance::BinaryExpr::parenthesizeOperands | ( | ) | const [protected, pure virtual] |
| virtual bool Sundance::BinaryExpr::parenthesizeSelf | ( | ) | const [protected, pure virtual] |
| Expr Sundance::BinaryExpr::right | ( | ) | const [inline] |
Definition at line 66 of file SundanceBinaryExpr.hpp.
References Sundance::ExprWithChildren::child().
Referenced by Sundance::RearrangeLeftSumWithConstant::doTransform(), Sundance::RearrangeRightSumWithConstant::doTransform(), Sundance::RearrangeLeftProductWithConstant::doTransform(), Sundance::RearrangeRightProductWithConstant::doTransform(), Sundance::DistributeSumOfDiffOps::doTransform(), Sundance::BringConstantOutsideDiffOp::doTransform(), Sundance::KillDiffOpOnConstant::doTransform(), Sundance::AssociateHungryDiffOpWithOperand::doTransform(), and toXML().
| const EvaluatableExpr* Sundance::BinaryExpr::rightEvaluatable | ( | ) | const [inline] |
Downcast the right expr to an evaluatable expr
Definition at line 76 of file SundanceBinaryExpr.hpp.
References Sundance::ExprWithChildren::evaluatableChild().
Referenced by Sundance::SumExpr::everyTermHasTestFunctions(), Sundance::ProductExpr::internalFindQ_V(), and Sundance::ProductExpr::internalFindQ_W().
| const ScalarExpr* Sundance::BinaryExpr::rightScalar | ( | ) | const [inline] |
Downcast the right expr to a scalar expr
Definition at line 83 of file SundanceBinaryExpr.hpp.
References Sundance::ExprWithChildren::scalarChild().
Referenced by Sundance::RearrangeLeftSumWithConstant::doTransform(), Sundance::RearrangeRightSumWithConstant::doTransform(), Sundance::RearrangeLeftProductWithConstant::doTransform(), Sundance::RearrangeRightProductWithConstant::doTransform(), Sundance::SumExpr::isHungryDiffOp(), Sundance::ProductExpr::isHungryDiffOp(), Sundance::SumExpr::isLinearForm(), Sundance::ProductExpr::isLinearForm(), Sundance::SumExpr::isLinearInTests(), Sundance::ProductExpr::isLinearInTests(), Sundance::SumExpr::isQuadraticForm(), Sundance::ProductExpr::isQuadraticForm(), and toText().
| int Sundance::BinaryExpr::sign | ( | ) | const [inline] |
Definition at line 69 of file SundanceBinaryExpr.hpp.
References sign_.
Referenced by Sundance::RearrangeLeftSumWithConstant::doTransform(), Sundance::RearrangeRightSumWithConstant::doTransform(), Sundance::DistributeSumOfDiffOps::doTransform(), Sundance::KillDiffOpOnConstant::doTransform(), Sundance::SumExpr::opChar(), Sundance::ProductExpr::opChar(), Sundance::SumExpr::xmlTag(), and Sundance::ProductExpr::xmlTag().
| std::ostream & BinaryExpr::toText | ( | std::ostream & | os, | |
| bool | paren | |||
| ) | const [virtual] |
Implements Sundance::ExprBase.
Definition at line 58 of file SundanceBinaryExpr.cpp.
References Sundance::ScalarExpr::isHungryDiffOp(), leftScalar(), opChar(), parenthesizeOperands(), parenthesizeSelf(), rightScalar(), Sundance::Expr::showAllParens(), and Sundance::ExprBase::toText().
| XMLObject BinaryExpr::toXML | ( | ) | const [virtual] |
| virtual const std::string& Sundance::BinaryExpr::xmlTag | ( | ) | const [protected, pure virtual] |
int Sundance::BinaryExpr::sign_ [private] |