OASIS
Open Algebra Software
Loading...
Searching...
No Matches
Oasis::BoundedExpression< LowerBoundT, UpperBoundT > Class Template Reference

#include <Oasis/BoundedExpression.hpp>

Inheritance diagram for Oasis::BoundedExpression< LowerBoundT, UpperBoundT >:
[legend]
Collaboration diagram for Oasis::BoundedExpression< LowerBoundT, UpperBoundT >:
[legend]

Public Member Functions

 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)
 
- Public Member Functions inherited from Oasis::Expression
virtual auto Copy () const -> std::unique_ptr< Expression >=0
 Copies this expression.
 
virtual auto Differentiate (const Expression &) const -> std::unique_ptr< Expression >
 Tries to differentiate this function.
 
virtual auto Equals (const Expression &other) const -> bool=0
 Compares this expression to another expression for equality.
 
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 auto Substitute (const Expression &var, const Expression &val) -> std::unique_ptr< Expression >=0
 
virtual void Serialize (SerializationVisitor &visitor) const =0
 This function serializes the expression object.
 
virtual ~Expression ()=default
 

Constructor & Destructor Documentation

◆ BoundedExpression() [1/3]

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::BoundedExpression ( )
default

◆ BoundedExpression() [2/3]

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::BoundedExpression ( const BoundedExpression< LowerBoundT, UpperBoundT > & other)
inline

◆ BoundedExpression() [3/3]

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::BoundedExpression ( const LowerBoundT & lowerBound,
const UpperBoundT & upperBound )
inline

Member Function Documentation

◆ GetLowerBound()

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
auto Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::GetLowerBound ( ) const -> const LowerBoundT&
inline

◆ GetUpperBound()

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
auto Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::GetUpperBound ( ) const -> const UpperBoundT&
inline

◆ HasLowerBound()

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
auto Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::HasLowerBound ( ) const -> bool
inline

◆ HasUpperBound()

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
auto Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::HasUpperBound ( ) const -> bool
inline

◆ SetLowerBound()

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
template<typename T >
requires IsAnyOf<T, LowerBoundT, Expression>
void Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::SetLowerBound ( const T & expr)
inline

◆ SetUpperBound()

template<IExpression LowerBoundT = Expression, IExpression UpperBoundT = Expression>
template<typename T >
requires IsAnyOf<T, UpperBoundT, Expression>
void Oasis::BoundedExpression< LowerBoundT, UpperBoundT >::SetUpperBound ( const T & expr)
inline

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