5#ifndef OASIS_SERIALIZATION_HPP
6#define OASIS_SERIALIZATION_HPP
20template <IExpression, IExpression>
23template <IExpression MinuendT, IExpression SubtrahendT>
26template <IExpression MultiplicandT, IExpression MultiplierT>
29template <IExpression Div
idendT, IExpression DivisorT>
32template <IExpression BaseT, IExpression PowerT>
35template <IExpression BaseT, IExpression ArgumentT>
38template <
typename OperandT>
41template <
typename OperandT>
44template <IExpression, IExpression>
47template <IExpression Integrand, IExpression Differential>
The Add expression adds two expressions together.
Definition Add.hpp:40
The Derivative class template calculates the derivative of given expressions.
Definition Derivative.hpp:40
The Divide expression divides two expressions.
Definition Divide.hpp:42
An 'EulerNumber' number.
Definition EulerNumber.hpp:15
The exponent expression creates an exponent two expressions.
Definition Exponent.hpp:43
An 'imaginary' number.
Definition Imaginary.hpp:15
The Integral expression integrates the two expressions together.
Definition Integral.hpp:41
The Log expression represents the logarithm of a base and an argument.
Definition Log.hpp:42
Definition Magnitude.hpp:28
A matrix.
Definition Matrix.hpp:16
The Multiply expression multiplies two expressions.
Definition Multiply.hpp:40
Mathematical Constant Pi.
Definition Pi.hpp:15
A real number.
Definition Real.hpp:15
The Subtract expression subtracts two expressions.
Definition Subtract.hpp:43
virtual auto TypedVisit(const Add< Expression, Expression > &add) -> RetT=0
auto Visit(const Negate< Expression > &negate) -> any final
Definition Visit.hpp:91
virtual auto TypedVisit(const Integral< Expression, Expression > &integral) -> RetT=0
virtual auto TypedVisit(const Real &real) -> RetT=0
virtual auto TypedVisit(const EulerNumber &) -> RetT=0
virtual auto TypedVisit(const Pi &) -> RetT=0
auto Visit(const Pi &pi) -> any final
Definition Visit.hpp:84
virtual auto TypedVisit(const Exponent< Expression, Expression > &exponent) -> RetT=0
virtual auto TypedVisit(const Variable &variable) -> RetT=0
virtual auto TypedVisit(const Matrix &matrix) -> RetT=0
auto Visit(const Real &real) -> any final
Definition Visit.hpp:78
auto Visit(const Log< Expression, Expression > &log) -> any final
Definition Visit.hpp:90
auto Visit(const Subtract< Expression, Expression > &subtract) -> any final
Definition Visit.hpp:86
virtual auto TypedVisit(const Multiply< Expression, Expression > &multiply) -> RetT=0
auto Visit(const Variable &variable) -> any final
Definition Visit.hpp:81
auto Visit(const Divide< Expression, Expression > ÷) -> any final
Definition Visit.hpp:88
virtual auto TypedVisit(const Log< Expression, Expression > &log) -> RetT=0
auto Visit(const Add< Expression, Expression > &add) -> any final
Definition Visit.hpp:85
auto Visit(const Derivative< Expression, Expression > &derivative) -> any final
Definition Visit.hpp:93
T RetT
Definition Visit.hpp:76
auto Visit(const Matrix &matrix) -> any final
Definition Visit.hpp:80
auto Visit(const Integral< Expression, Expression > &integral) -> any final
Definition Visit.hpp:94
virtual auto TypedVisit(const Divide< Expression, Expression > ÷) -> RetT=0
virtual auto TypedVisit(const Derivative< Expression, Expression > &derivative) -> RetT=0
virtual auto TypedVisit(const Undefined &undefined) -> RetT=0
auto Visit(const Imaginary &imaginary) -> any final
Definition Visit.hpp:79
auto Visit(const Multiply< Expression, Expression > &multiply) -> any final
Definition Visit.hpp:87
auto Visit(const Exponent< Expression, Expression > &exponent) -> any final
Definition Visit.hpp:89
virtual auto TypedVisit(const Imaginary &imaginary) -> RetT=0
virtual auto TypedVisit(const Magnitude< Expression > &magnitude) -> RetT=0
auto Visit(const EulerNumber &e) -> any final
Definition Visit.hpp:83
auto Visit(const Undefined &undefined) -> any final
Definition Visit.hpp:82
virtual auto TypedVisit(const Subtract< Expression, Expression > &subtract) -> RetT=0
auto Visit(const Magnitude< Expression > &magnitude) -> any final
Definition Visit.hpp:92
virtual auto TypedVisit(const Negate< Expression > &negate) -> RetT=0
An undefined expression.
Definition Undefined.hpp:15
An algebraic variable.
Definition Variable.hpp:21
virtual any Visit(const Log< Expression, Expression > &log)=0
virtual any Visit(const Imaginary &imaginary)=0
virtual any Visit(const Pi &)=0
virtual any Visit(const Exponent< Expression, Expression > &exponent)=0
virtual any Visit(const Magnitude< Expression > &magnitude)=0
virtual ~Visitor()=default
virtual any Visit(const Subtract< Expression, Expression > &subtract)=0
virtual any Visit(const Integral< Expression, Expression > &integral)=0
virtual any Visit(const EulerNumber &)=0
virtual any Visit(const Negate< Expression > &negate)=0
virtual any Visit(const Variable &variable)=0
virtual any Visit(const Divide< Expression, Expression > ÷)=0
virtual any Visit(const Matrix &matrix)=0
virtual any Visit(const Multiply< Expression, Expression > &multiply)=0
virtual any Visit(const Derivative< Expression, Expression > &derivative)=0
virtual any Visit(const Add< Expression, Expression > &add)=0
virtual any Visit(const Real &real)=0
virtual any Visit(const Undefined &undefined)=0
boost::anys::unique_any any
Definition Expression.hpp:15