OASIS
Open Algebra Software
Loading...
Searching...
No Matches
Oasis::Magnitude< OperandT > Class Template Referencefinal

#include <Oasis/Magnitude.hpp>

Inheritance diagram for Oasis::Magnitude< OperandT >:
[legend]
Collaboration diagram for Oasis::Magnitude< OperandT >:
[legend]

Public Member Functions

 Magnitude ()=default
 
 Magnitude (const Magnitude &other)
 
 Magnitude (const OperandT &operand)
 
auto Simplify () const -> std::unique_ptr< Expression > override
 Simplifies this expression.
 
auto Differentiate (const Expression &var) const -> std::unique_ptr< Expression > override
 Tries to differentiate this function.
 
auto Integrate (const Expression &integrationVar) const -> std::unique_ptr< Expression > override
 Attempts to integrate this expression using integration rules.
 
- Public Member Functions inherited from Oasis::UnaryExpression< Magnitude, OperandT >
 UnaryExpression ()=default
 
 UnaryExpression (const UnaryExpression &other)
 
 UnaryExpression (const OperandT &operand)
 
auto Copy () const -> std::unique_ptr< Expression > final
 Copies this expression.
 
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 GetOperand () const -> const OperandT &
 
auto HasOperand () const -> bool
 
auto StructurallyEquivalent (const Expression &other) const -> bool final
 Checks whether this expression is structurally equivalent to another expression.
 
auto SetOperand (const OperandT &operand) -> void
 
auto Substitute (const Expression &var, const Expression &val) -> std::unique_ptr< Expression > override
 
void Serialize (SerializationVisitor &visitor) const override
 This function serializes the expression object.
 
- Public Member Functions inherited from Oasis::Expression
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>
bool Is () const
 
template<template< typename, typename > typename T>
bool Is () const
 
virtual ~Expression ()=default
 

Additional Inherited Members

- Protected Attributes inherited from Oasis::UnaryExpression< Magnitude, OperandT >
std::unique_ptr< OperandT > op
 

Detailed Description

template<typename OperandT>
class Oasis::Magnitude< OperandT >
Template Parameters
OperandTType of child operand This represents magnitude/absolute value

Constructor & Destructor Documentation

◆ Magnitude() [1/3]

template<typename OperandT >
Oasis::Magnitude< OperandT >::Magnitude ( )
default

◆ Magnitude() [2/3]

template<typename OperandT >
Oasis::Magnitude< OperandT >::Magnitude ( const Magnitude< OperandT > & other)
inline

◆ Magnitude() [3/3]

template<typename OperandT >
Oasis::Magnitude< OperandT >::Magnitude ( const OperandT & operand)
inlineexplicit

Member Function Documentation

◆ Differentiate()

template<typename OperandT >
auto Oasis::Magnitude< OperandT >::Differentiate ( const Expression & ) const -> std::unique_ptr<Expression>
inlineoverridevirtual

Tries to differentiate this function.

Returns
the differentiated expression.

Reimplemented from Oasis::Expression.

◆ Integrate()

template<typename OperandT >
auto Oasis::Magnitude< OperandT >::Integrate ( const Expression & variable) const -> std::unique_ptr<Expression>
inlineoverridevirtual

Attempts to integrate this expression using integration rules.

Returns
An indefinite integral of the expression added to a constant

Reimplemented from Oasis::Expression.

◆ Simplify()

template<typename OperandT >
auto Oasis::Magnitude< OperandT >::Simplify ( ) const -> std::unique_ptr<Expression>
inlineoverridevirtual

Simplifies this expression.

Returns
The simplified expression.

Reimplemented from Oasis::Expression.


The documentation for this class was generated from the following file: