5#ifndef OASIS_VARIABLE_HPP
6#define OASIS_VARIABLE_HPP
28 [[nodiscard]]
virtual auto Equals(
const Expression& other)
const ->
bool final;
38 [[nodiscard]]
auto GetName() const ->
std::
string;
#define EXPRESSION_CATEGORY(category)
Definition Expression.hpp:192
#define EXPRESSION_TYPE(type)
Definition Expression.hpp:181
An expression.
Definition Expression.hpp:56
A leaf expression.
Definition LeafExpression.hpp:21
An algebraic variable.
Definition Variable.hpp:21
auto Integrate(const Expression &integrationVariable) const -> std::unique_ptr< Expression > final
Attempts to integrate this expression using integration rules.
Definition Variable.cpp:31
auto GetName() const -> std::string
Gets the name of the variable.
Definition Variable.cpp:26
auto Substitute(const Expression &var, const Expression &val) -> std::unique_ptr< Expression > override
Definition Variable.cpp:59
auto Differentiate(const Expression &differentiationVariable) const -> std::unique_ptr< Expression > final
Tries to differentiate this function.
Definition Variable.cpp:71
virtual auto Equals(const Expression &other) const -> bool final
Compares this expression to another expression for equality.
Definition Variable.cpp:21
Variable(const Variable &other)=default
@ UnExp
Definition Expression.hpp:46