OASIS
Open Algebra Software
Loading...
Searching...
No Matches
Oasis::Integral< IntegrandT, DifferentialT > Class Template Reference

The Integral expression integrates the two expressions together. More...

#include <Oasis/Integral.hpp>

Inheritance diagram for Oasis::Integral< IntegrandT, DifferentialT >:
[legend]
Collaboration diagram for Oasis::Integral< IntegrandT, DifferentialT >:
[legend]

Public Member Functions

 Integral ()=default
 
 Integral (const Integral< IntegrandT, DifferentialT > &other)
 
 Integral (const IntegrandT &integrand, const DifferentialT &differential)
 
auto operator= (const Integral &other) -> Integral &=default
 
- Public Member Functions inherited from Oasis::BinaryExpression< DerivedT, MostSigOpT, LeastSigOpT >
 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
 
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

- Public Attributes inherited from Oasis::BinaryExpression< DerivedT, MostSigOpT, LeastSigOpT >
std::unique_ptr< MostSigOpT > mostSigOp
 
std::unique_ptr< LeastSigOpT > leastSigOp
 

Detailed Description

template<IExpression IntegrandT = Expression, IExpression DifferentialT = IntegrandT>
class Oasis::Integral< IntegrandT, DifferentialT >

The Integral expression integrates the two expressions together.

Template Parameters
IntegrandTThe type of the expression to be integrated.
DifferentialTThe type of the expression defining which variable is integrating in the IntegrandT.

Constructor & Destructor Documentation

◆ Integral() [1/3]

template<IExpression IntegrandT = Expression, IExpression DifferentialT = IntegrandT>
Oasis::Integral< IntegrandT, DifferentialT >::Integral ( )
default

◆ Integral() [2/3]

template<IExpression IntegrandT = Expression, IExpression DifferentialT = IntegrandT>
Oasis::Integral< IntegrandT, DifferentialT >::Integral ( const Integral< IntegrandT, DifferentialT > & other)
inline

◆ Integral() [3/3]

template<IExpression IntegrandT = Expression, IExpression DifferentialT = IntegrandT>
Oasis::Integral< IntegrandT, DifferentialT >::Integral ( const IntegrandT & integrand,
const DifferentialT & differential )
inline

Member Function Documentation

◆ operator=()

template<IExpression IntegrandT = Expression, IExpression DifferentialT = IntegrandT>
auto Oasis::Integral< IntegrandT, DifferentialT >::operator= ( const Integral< IntegrandT, DifferentialT > & other) -> Integral &=default
default

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