5#ifndef OASIS_NEGATE_HPP
6#define OASIS_NEGATE_HPP
13template <
typename OperandT>
22 explicit Negate(
const OperandT& operand)
#define EXPRESSION_CATEGORY(category)
Definition Expression.hpp:192
#define EXPRESSION_TYPE(type)
Definition Expression.hpp:181
An expression.
Definition Expression.hpp:56
virtual auto Simplify() const -> std::unique_ptr< Expression >
Simplifies this expression.
Definition Expression.cpp:244
The Multiply expression multiplies two expressions.
Definition Multiply.hpp:40
Negate(const OperandT &operand)
Definition Negate.hpp:22
auto Differentiate(const Expression &var) const -> std::unique_ptr< Expression > override
Tries to differentiate this function.
Definition Negate.hpp:36
auto Simplify() const -> std::unique_ptr< Expression > override
Simplifies this expression.
Definition Negate.hpp:27
Negate(const Negate &other)
Definition Negate.hpp:17
A real number.
Definition Real.hpp:15
Definition UnaryExpression.hpp:14
auto GetOperand() const -> const OperandT &
Definition UnaryExpression.hpp:62
@ UnExp
Definition Expression.hpp:46