5#ifndef OASIS_SUBTRACT_HPP
6#define OASIS_SUBTRACT_HPP
15class Subtract<Expression, Expression> :
public BinaryExpression<Subtract> {
18 Subtract(
const Subtract<Expression, Expression>& other) =
default;
20 Subtract(
const Expression& minuend,
const Expression& subtrahend);
22 [[deprecated]] [[nodiscard]]
auto Simplify() const ->
std::unique_ptr<Expression> final;
24 [[nodiscard]] auto
Differentiate(const Expression& differentiationVariable) const ->
std::unique_ptr<Expression> final;
26 [[nodiscard]] auto
Integrate(const Expression& integrationVariable) const ->
std::unique_ptr<Expression> final;
160template <typename MinuendT = Expression, typename SubtrahendT = MinuendT>
169 Subtract(
const MinuendT& addend1,
const SubtrahendT& addend2)
#define EXPRESSION_CATEGORY(category)
Definition Expression.hpp:231
#define EXPRESSION_TYPE(type)
Definition Expression.hpp:220
A binary expression.
Definition BinaryExpression.hpp:83
auto Simplify() const -> std::unique_ptr< Expression > override
Simplifies this expression.
Definition BinaryExpression.hpp:204
auto Differentiate(const Expression &differentiationVariable) const -> std::unique_ptr< Expression > override
Tries to differentiate this function.
Definition BinaryExpression.hpp:132
auto Integrate(const Expression &integrationVariable) const -> std::unique_ptr< Expression > override
Attempts to integrate this expression using integration rules.
Definition BinaryExpression.hpp:215
The Subtract expression subtracts two expressions.
Definition Subtract.hpp:161
Subtract(const Subtract< MinuendT, SubtrahendT > &other)
Definition Subtract.hpp:164
Subtract(const MinuendT &addend1, const SubtrahendT &addend2)
Definition Subtract.hpp:169
auto operator=(const Subtract &other) -> Subtract &=default
@ BinExp
Definition Expression.hpp:52