![]() |
OASIS
Open Algebra Software
|
#include <any>
#include <cstdint>
#include <memory>
#include <optional>
#include <vector>
#include "Concepts.hpp"
Go to the source code of this file.
Classes | |
class | Oasis::Expression |
An expression. More... | |
Namespaces | |
namespace | Oasis |
Macros | |
#define | EXPRESSION_TYPE(type) |
#define | EXPRESSION_CATEGORY(category) |
Enumerations | |
enum class | Oasis::ExpressionType { Oasis::None , Oasis::Real , Oasis::Imaginary , Oasis::Variable , Oasis::Add , Oasis::Subtract , Oasis::Multiply , Oasis::Divide , Oasis::Exponent , Oasis::Log , Oasis::Integral , Oasis::Limit , Oasis::Derivative , Oasis::Negate , Oasis::Sqrt , Oasis::Matrix , Oasis::Pi , Oasis::EulerNumber , Oasis::Magnitude } |
The type of an expression. More... | |
enum | Oasis::ExpressionCategory : uint32_t { Oasis::None = 0 , Oasis::Associative = 1 , Oasis::Commutative = 1 << 1 , Oasis::BinExp = 1 << 2 , Oasis::UnExp = 1 << 3 } |
The category of an expression. More... | |
Functions | |
std::unique_ptr< Oasis::Expression > | operator+ (const std::unique_ptr< Oasis::Expression > &lhs, const std::unique_ptr< Oasis::Expression > &rhs) |
std::unique_ptr< Oasis::Expression > | operator- (const std::unique_ptr< Oasis::Expression > &lhs, const std::unique_ptr< Oasis::Expression > &rhs) |
std::unique_ptr< Oasis::Expression > | operator* (const std::unique_ptr< Oasis::Expression > &lhs, const std::unique_ptr< Oasis::Expression > &rhs) |
std::unique_ptr< Oasis::Expression > | operator/ (const std::unique_ptr< Oasis::Expression > &lhs, const std::unique_ptr< Oasis::Expression > &rhs) |
#define EXPRESSION_CATEGORY | ( | category | ) |
#define EXPRESSION_TYPE | ( | type | ) |
std::unique_ptr< Oasis::Expression > operator* | ( | const std::unique_ptr< Oasis::Expression > & | lhs, |
const std::unique_ptr< Oasis::Expression > & | rhs ) |
std::unique_ptr< Oasis::Expression > operator+ | ( | const std::unique_ptr< Oasis::Expression > & | lhs, |
const std::unique_ptr< Oasis::Expression > & | rhs ) |
std::unique_ptr< Oasis::Expression > operator- | ( | const std::unique_ptr< Oasis::Expression > & | lhs, |
const std::unique_ptr< Oasis::Expression > & | rhs ) |
std::unique_ptr< Oasis::Expression > operator/ | ( | const std::unique_ptr< Oasis::Expression > & | lhs, |
const std::unique_ptr< Oasis::Expression > & | rhs ) |