15class Log<Expression, Expression> :
public BinaryExpression<Log> {
18 Log(
const Log<Expression, Expression>& other) =
default;
20 Log(
const Expression& base,
const Expression& argument);
22 [[deprecated]] [[nodiscard]]
auto Simplify() const ->
std::unique_ptr<Expression> final;
24 [[nodiscard]] auto
Integrate(const Expression& integrationVariable) const ->
std::unique_ptr<Expression> final;
25 [[nodiscard]] auto
Differentiate(const Expression& differentiationVariable) const ->
std::unique_ptr<Expression> final;
38template <typename BaseT = Expression, typename ArgumentT = BaseT>
47 Log(
const BaseT& base,
const ArgumentT& argument)
#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 Log expression represents the logarithm of a base and an argument.
Definition Log.hpp:39
EXPRESSION_CATEGORY(BinExp)
auto operator=(const Log &other) -> Log &=default
Log(const Log< BaseT, ArgumentT > &other)
Definition Log.hpp:42
Log(const BaseT &base, const ArgumentT &argument)
Definition Log.hpp:47
@ BinExp
Definition Expression.hpp:52