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] |