Public Member Functions | |
ScalarExpr () | |
virtual | ~ScalarExpr () |
virtual bool | isConstant () const |
virtual bool | isImmutable () const |
virtual bool | isHungryDiffOp () const |
virtual bool | isIndependentOf (const Expr &u) const |
virtual bool | isLinearInTests () const |
virtual bool | everyTermHasTestFunctions () const |
virtual bool | hasTestFunctions () const |
virtual bool | hasUnkFunctions () const |
virtual bool | isLinearForm (const Expr &u) const |
virtual bool | isQuadraticForm (const Expr &u) const |
virtual void | getUnknowns (Set< int > &unkID, Array< Expr > &unks) const |
virtual void | getTests (Set< int > &varID, Array< Expr > &vars) const |
virtual bool | lessThan (const ScalarExpr *other) const =0 |
Definition at line 53 of file SundanceScalarExpr.hpp.
ScalarExpr::ScalarExpr | ( | ) |
empty ctor
Definition at line 39 of file SundanceScalarExpr.cpp.
virtual Sundance::ScalarExpr::~ScalarExpr | ( | ) | [inline, virtual] |
virtual destructor
Definition at line 60 of file SundanceScalarExpr.hpp.
virtual bool Sundance::ScalarExpr::everyTermHasTestFunctions | ( | ) | const [inline, virtual] |
Indicate whether every term in the expression contains test functions
Reimplemented in Sundance::ExprWithChildren, Sundance::SumExpr, Sundance::SumOfIntegrals, and Sundance::TestFuncElement.
Definition at line 85 of file SundanceScalarExpr.hpp.
References hasTestFunctions().
Referenced by Sundance::SumExpr::everyTermHasTestFunctions(), Sundance::ExprWithChildren::everyTermHasTestFunctions(), and Sundance::Expr::everyTermHasTestFunctions().
virtual void Sundance::ScalarExpr::getTests | ( | Set< int > & | varID, | |
Array< Expr > & | vars | |||
) | const [inline, virtual] |
Find all the test functions in this expression.
Reimplemented in Sundance::ExprWithChildren.
Definition at line 106 of file SundanceScalarExpr.hpp.
Referenced by Sundance::ExprWithChildren::getTests(), and Sundance::Expr::getTests().
virtual void Sundance::ScalarExpr::getUnknowns | ( | Set< int > & | unkID, | |
Array< Expr > & | unks | |||
) | const [inline, virtual] |
Find all the unknown functions in this expression.
Reimplemented in Sundance::ExprWithChildren.
Definition at line 103 of file SundanceScalarExpr.hpp.
Referenced by Sundance::ExprWithChildren::getUnknowns(), and Sundance::Expr::getUnknowns().
virtual bool Sundance::ScalarExpr::hasTestFunctions | ( | ) | const [inline, virtual] |
Indicate whether the expression contains test functions
Reimplemented from Sundance::ExprBase.
Reimplemented in Sundance::DiscreteFuncElement, Sundance::ExprWithChildren, Sundance::SumOfIntegrals, Sundance::SymbolicFuncElement, and Sundance::TestFuncElement.
Definition at line 89 of file SundanceScalarExpr.hpp.
Referenced by everyTermHasTestFunctions(), Sundance::ExprWithChildren::hasTestFunctions(), Sundance::Expr::hasTestFunctions(), Sundance::SumExpr::isLinearInTests(), and Sundance::ProductExpr::isLinearInTests().
virtual bool Sundance::ScalarExpr::hasUnkFunctions | ( | ) | const [inline, virtual] |
Indicate whether the expression contains unknown functions
Reimplemented from Sundance::ExprBase.
Reimplemented in Sundance::ExprWithChildren.
Definition at line 92 of file SundanceScalarExpr.hpp.
Referenced by Sundance::ExprWithChildren::hasUnkFunctions().
virtual bool Sundance::ScalarExpr::isConstant | ( | ) | const [inline, virtual] |
Indicate whether this expression is constant in space
Reimplemented in Sundance::ExprWithChildren, and Sundance::SpatiallyConstantExpr.
Definition at line 64 of file SundanceScalarExpr.hpp.
Referenced by Sundance::RearrangeLeftSumWithConstant::doTransform(), Sundance::RearrangeRightSumWithConstant::doTransform(), Sundance::RearrangeLeftProductWithConstant::doTransform(), Sundance::RearrangeRightProductWithConstant::doTransform(), Sundance::BringConstantOutsideDiffOp::doTransform(), and Sundance::KillDiffOpOnConstant::doTransform().
virtual bool Sundance::ScalarExpr::isHungryDiffOp | ( | ) | const [inline, virtual] |
Indicate whether this expression is a "hungry" differential operator that is awaiting an argument.
Reimplemented in Sundance::ProductExpr, Sundance::SumExpr, and Sundance::Derivative.
Definition at line 72 of file SundanceScalarExpr.hpp.
Referenced by Sundance::SumExpr::isHungryDiffOp(), Sundance::ProductExpr::isHungryDiffOp(), and Sundance::BinaryExpr::toText().
virtual bool Sundance::ScalarExpr::isImmutable | ( | ) | const [inline, virtual] |
Indicate whether this expression is an immutable constant
Reimplemented in Sundance::ConstantExpr.
Definition at line 68 of file SundanceScalarExpr.hpp.
virtual bool Sundance::ScalarExpr::isIndependentOf | ( | const Expr & | u | ) | const [inline, virtual] |
Indicate whether the expression is independent of the given functions
Reimplemented in Sundance::ExprWithChildren, Sundance::SumOfIntegrals, and Sundance::SymbolicFuncElement.
Definition at line 76 of file SundanceScalarExpr.hpp.
Referenced by Sundance::Expr::isIndependentOf(), Sundance::SumExpr::isLinearForm(), Sundance::SumExpr::isQuadraticForm(), and Sundance::ProductExpr::isQuadraticForm().
virtual bool Sundance::ScalarExpr::isLinearForm | ( | const Expr & | u | ) | const [inline, virtual] |
Indicate whether the expression is linear in the given functions
Reimplemented in Sundance::DiffOp, Sundance::ProductExpr, Sundance::SumExpr, Sundance::SumOfIntegrals, Sundance::SymbolicFuncElement, and Sundance::UnaryMinus.
Definition at line 96 of file SundanceScalarExpr.hpp.
Referenced by Sundance::UnaryMinus::isLinearForm(), Sundance::SumExpr::isLinearForm(), Sundance::ProductExpr::isLinearForm(), Sundance::Expr::isLinearForm(), Sundance::DiffOp::isLinearForm(), Sundance::SumExpr::isQuadraticForm(), and Sundance::ProductExpr::isQuadraticForm().
virtual bool Sundance::ScalarExpr::isLinearInTests | ( | ) | const [inline, virtual] |
Indicate whether the expression is nonlinear with respect to test functions
Reimplemented in Sundance::DiffOp, Sundance::ProductExpr, Sundance::SumExpr, Sundance::SumOfIntegrals, Sundance::TestFuncElement, and Sundance::UnaryMinus.
Definition at line 81 of file SundanceScalarExpr.hpp.
Referenced by Sundance::UnaryMinus::isLinearInTests(), Sundance::SumExpr::isLinearInTests(), Sundance::ProductExpr::isLinearInTests(), Sundance::Expr::isLinearInTests(), and Sundance::DiffOp::isLinearInTests().
virtual bool Sundance::ScalarExpr::isQuadraticForm | ( | const Expr & | u | ) | const [inline, virtual] |
Indicate whether the expression is quadratic in the given functions
Reimplemented in Sundance::DiffOp, Sundance::ProductExpr, Sundance::SumExpr, Sundance::SumOfIntegrals, and Sundance::UnaryMinus.
Definition at line 100 of file SundanceScalarExpr.hpp.
Referenced by Sundance::UnaryMinus::isQuadraticForm(), Sundance::SumExpr::isQuadraticForm(), Sundance::ProductExpr::isQuadraticForm(), Sundance::Expr::isQuadraticForm(), and Sundance::DiffOp::isQuadraticForm().
virtual bool Sundance::ScalarExpr::lessThan | ( | const ScalarExpr * | other | ) | const [pure virtual] |
Ordering operator for use in transforming exprs to standard form
Implemented in Sundance::BinaryExpr, Sundance::ConstantExpr, Sundance::DerivOfSymbFunc, Sundance::DiffOp, Sundance::DiscreteFuncElement, Sundance::ExplicitFunctionalDerivativeElement, Sundance::ExprWithChildren, Sundance::FuncElementBase, Sundance::FunctionalPolynomial, Sundance::NonlinearUnaryOp, Sundance::SumOfIntegrals, Sundance::TestFuncElement, Sundance::UnknownFuncElement, Sundance::UnknownParameterElement, Sundance::CellDiameterExpr, Sundance::CellVectorExpr, Sundance::CoordExpr, Sundance::CurveNormExpr, and Sundance::Derivative.