|
| | Exponent ()=default |
| |
| | Exponent (const Exponent< BaseT, PowerT > &other) |
| |
| | Exponent (const BaseT &base, const PowerT &power) |
| |
| auto | operator= (const Exponent &other) -> Exponent &=default |
| |
| | BinaryExpression ()=default |
| |
| | BinaryExpression (const BinaryExpression &other) |
| |
| | BinaryExpression (const MostSigOpT &mostSigOp, const LeastSigOpT &leastSigOp) |
| |
| template<IExpression Op1T, IExpression Op2T, IExpression... OpsT> |
| | BinaryExpression (const Op1T &op1, const Op2T &op2, const OpsT &... ops) |
| |
| auto | Copy () const -> std::unique_ptr< Expression > final |
| | Copies this expression.
|
| |
| 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 | Generalize () const -> std::unique_ptr< Expression > final |
| | Converts this expression to a more general expression.
|
| |
| auto | Simplify () const -> std::unique_ptr< Expression > override |
| | Simplifies this expression.
|
| |
| auto | Integrate (const Expression &integrationVariable) const -> std::unique_ptr< Expression > override |
| | Attempts to integrate this expression using integration rules.
|
| |
| auto | StructurallyEquivalent (const Expression &other) const -> bool final |
| | Checks whether this expression is structurally equivalent to another expression.
|
| |
| auto | Flatten (std::vector< std::unique_ptr< Expression > > &out) const -> void |
| | Flattens this expression.
|
| |
| auto | GetMostSigOp () const -> const MostSigOpT & |
| | Gets the most significant operand of this expression.
|
| |
| auto | GetLeastSigOp () const -> const LeastSigOpT & |
| | Gets the least significant operand of this expression.
|
| |
| auto | HasMostSigOp () const -> bool |
| | Gets whether this expression has a most significant operand.
|
| |
| auto | HasLeastSigOp () const -> bool |
| | Gets whether this expression has a least significant operand.
|
| |
template<typename T >
requires IsAnyOf<T, MostSigOpT, Expression> |
| auto | SetMostSigOp (const T &op) -> bool |
| | Sets the most significant operand of this expression.
|
| |
template<typename T >
requires IsAnyOf<T, LeastSigOpT, Expression> |
| auto | SetLeastSigOp (const T &op) -> bool |
| | Sets the least significant operand of this expression.
|
| |
| auto | Substitute (const Expression &var, const Expression &val) -> std::unique_ptr< Expression > override |
| |
| auto | SwapOperands () const -> DerivedT< LeastSigOpT, MostSigOpT > |
| | Swaps the operands of this expression.
|
| |
| auto | operator= (const BinaryExpression &other) -> BinaryExpression &=default |
| |
| auto | AcceptInternal (Visitor &visitor) const -> any override |
| | This function serializes the expression object.
|
| |
| 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 | 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>
requires (DerivedFromUnaryExpression<T<Expression>> && !DerivedFromBinaryExpression<T<Expression>>) |
| bool | Is () const |
| |
template<template< typename, typename > typename T>
requires DerivedFromBinaryExpression<T<Expression, Expression>> |
| bool | Is () const |
| |
template<IVisitor T>
requires ExpectedWithString<typename T::RetT> |
| auto | Accept (T &visitor) const -> std::expected< typename T::RetT, std::string_view > |
| |
template<IVisitor T>
requires ExpectedWithString<typename T::RetT> |
| auto | Accept (T &visitor) const -> typename T::RetT |
| |
| virtual | ~Expression ()=default |
| |
template<IExpression BaseT = Expression, IExpression PowerT = BaseT>
class Oasis::Exponent< BaseT, PowerT >
The exponent expression creates an exponent two expressions.
- Template Parameters
-
| BaseT | The expression to be used as the base. |
| PowerT | The expression to be used as the power. |