|
| BoundedUnaryExpression ()=default |
|
| BoundedUnaryExpression (const BoundedUnaryExpression &other) |
|
| BoundedUnaryExpression (const OperandT &operand, const LowerBoundT &lowerBound, const UpperBoundT &upperBound) |
|
auto | Copy () const -> std::unique_ptr< Expression > final |
| Copies this expression.
|
|
auto | Copy (tf::Subflow &) const -> std::unique_ptr< Expression > final |
|
auto | Differentiate (const Expression &differentiationVariable) const -> std::unique_ptr< Expression > override |
| Tries to differentiate this function.
|
|
auto | Equals (const Expression &other) const -> bool final |
| Compares this expression to another expression for equality.
|
|
auto | HasOperand () const -> bool |
|
auto | GetOperand () const -> const OperandT & |
|
template<typename T >
requires IsAnyOf<T, OperandT, Expression> |
void | SetOperand (const T &expr) |
|
auto | Substitute (const Expression &var, const Expression &val) -> std::unique_ptr< Expression > override |
|
auto | operator= (const BoundedUnaryExpression &other) -> BoundedUnaryExpression &=default |
|
void | Serialize (SerializationVisitor &visitor) const override |
| This function serializes the expression object.
|
|
| BoundedExpression ()=default |
|
| BoundedExpression (const BoundedExpression &other) |
|
| BoundedExpression (const LowerBoundT &lowerBound, const UpperBoundT &upperBound) |
|
auto | HasLowerBound () const -> bool |
|
auto | HasUpperBound () const -> bool |
|
auto | GetLowerBound () const -> const LowerBoundT & |
|
auto | GetUpperBound () const -> const UpperBoundT & |
|
template<typename T >
requires IsAnyOf<T, LowerBoundT, Expression> |
void | SetLowerBound (const T &expr) |
|
template<typename T >
requires IsAnyOf<T, UpperBoundT, Expression> |
void | SetUpperBound (const T &expr) |
|
auto | FindZeros () const -> std::vector< std::unique_ptr< Expression > > |
| The FindZeros function finds all rational real zeros, and up to 2 irrational/complex zeros of a polynomial.
|
|
virtual auto | GetCategory () const -> uint32_t |
| Gets the category of this expression.
|
|
virtual auto | GetType () const -> ExpressionType |
| Gets the type of this expression.
|
|
virtual auto | Generalize () const -> std::unique_ptr< Expression > |
| Converts this expression to a more general expression.
|
|
virtual auto | Integrate (const Expression &) const -> std::unique_ptr< Expression > |
| Attempts to integrate this expression using integration rules.
|
|
virtual auto | IntegrateWithBounds (const Expression &, const Expression &, const Expression &) -> std::unique_ptr< Expression > |
| Attempts to integrate this expression using integration rules.
|
|
template<IExpression T> |
bool | Is () const |
| Gets whether this expression is of a specific type.
|
|
template<template< typename > typename T> |
bool | Is () const |
|
template<template< typename, typename > typename T> |
bool | Is () const |
|
virtual auto | Simplify () const -> std::unique_ptr< Expression > |
| Simplifies this expression.
|
|
virtual auto | StructurallyEquivalent (const Expression &other) const -> bool=0 |
| Checks whether this expression is structurally equivalent to another expression.
|
|
virtual | ~Expression ()=default |
|
template<template< IExpression, IExpression, IExpression > class DerivedT, IExpression OperandT, IExpression LowerBoundT = Expression, IExpression UpperBoundT = LowerBoundT>
Compares this expression to another expression for equality.
Two expressions are equal if they are structurally equivalent and have the same value. While this method considers the associativity and commutativity of expressions, it does not simplify the expressions before comparing them. For example, Add<Real>(Real(1), Real(2))
and Add<Real>(Real(2), Real(1))
are not equal, despite being structurally equivalent.
- Parameters
-
other | The other expression. |
- Returns
- Whether the two expressions are equal.
Implements Oasis::Expression.