OASIS
Open Algebra Software
|
Classes | |
class | Add |
The Add expression adds two expressions together. More... | |
class | BinaryExpression |
A binary expression. More... | |
class | BoundedBinaryExpression |
class | BoundedExpression |
class | BoundedUnaryExpression |
class | DefiniteIntegral |
class | Derivative |
The Derivative class template calculates the derivative of given expressions. More... | |
class | Divide |
The Divide expression divides two expressions. More... | |
class | EulerNumber |
An 'EulerNumber' number. More... | |
class | Exponent |
The exponent expression creates an exponent two expressions. More... | |
class | Expression |
An expression. More... | |
class | Imaginary |
An 'imaginary' number. More... | |
class | Integral |
The Integral expression integrates the two expressions together. More... | |
class | LeafExpression |
A leaf expression. More... | |
class | Log |
The Log expression represents the logarithm of a base and an argument. More... | |
class | Magnitude |
class | Matrix |
A matrix. More... | |
class | Multiply |
The Multiply expression multiplies two expressions. More... | |
class | Negate |
class | Pi |
Mathematical Constant Pi. More... | |
class | Real |
A real number. More... | |
class | SerializationVisitor |
class | Subtract |
The Subtract expression subtracts two expressions. More... | |
class | Summation |
class | UnaryExpression |
class | Undefined |
An undefined expression. More... | |
class | Variable |
An algebraic variable. More... | |
Concepts | |
concept | IOperand |
A concept for an operand of a binary expression. | |
concept | IAssociativeAndCommutative |
concept | IExpression |
An expression concept. | |
concept | IsAnyOf |
Checks if type T is same as any of the provided types in U. | |
concept | DerivedFromBinaryExpression |
concept | DerivedFromUnaryExpression |
Typedefs | |
typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > | MatrixXXD |
typedef Eigen::Matrix< double, Eigen::Dynamic, 1 > | Matrix1D |
Enumerations | |
enum class | ExpressionType { None , Real , Imaginary , Variable , Add , Subtract , Multiply , Divide , Exponent , Log , Integral , Limit , Derivative , Negate , Sqrt , Matrix , Pi , EulerNumber , Magnitude } |
The type of an expression. More... | |
enum | ExpressionCategory : uint32_t { None = 0 , Associative = 1 , Commutative = 1 << 1 , BinExp = 1 << 2 , UnExp = 1 << 3 } |
The category of an expression. More... | |
Functions | |
template<template< typename, typename > typename T> requires IAssociativeAndCommutative<T> | |
auto | BuildFromVector (const std::vector< std::unique_ptr< Expression > > &ops) -> std::unique_ptr< T< Expression, Expression > > |
Builds a reasonably balanced binary expression from a vector of operands. | |
auto | SolveLinearSystems (std::vector< std::unique_ptr< Expression > > &exprs) -> std::map< std::string, double > |
auto | SolveLinearSystems (MatrixXXD &matrix) -> Matrix1D |
auto | SolveLinearSystems (MatrixXXD &matrixA, Matrix1D &matrixb) -> Matrix1D |
From the form Ax=b. | |
auto | ConstructMatrices (const std::vector< std::unique_ptr< Expression > > &exprs) -> std::pair< std::pair< MatrixXXD, Matrix1D >, std::map< std::string, Eigen::Index > > |
template<class u , class v > | |
auto | GetMapValue (std::map< u, v > &map, u key, v nextValue) -> std::pair< v, bool > |
template<IExpression T> requires DerivedFromBinaryExpression<T> | |
auto | RecursiveCast (const Expression &other) -> std::unique_ptr< T > |
template<IExpression T> requires DerivedFromUnaryExpression<T> | |
auto | RecursiveCast (const Expression &other) -> std::unique_ptr< T > |
template<IExpression T> | |
auto | RecursiveCast (const Expression &other) -> std::unique_ptr< T > |
typedef Eigen::Matrix< double, Eigen::Dynamic, 1 > Oasis::Matrix1D |
typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > Oasis::MatrixXXD |
enum Oasis::ExpressionCategory : uint32_t |
|
strong |
auto Oasis::BuildFromVector | ( | const std::vector< std::unique_ptr< Expression > > & | ops | ) | -> std::unique_ptr<T<Expression, Expression>> |
Builds a reasonably balanced binary expression from a vector of operands.
ops | The vector of operands. Must have a minimum of 2 operands. |
auto Oasis::ConstructMatrices | ( | const std::vector< std::unique_ptr< Expression > > & | exprs | ) | -> std::pair<std::pair<MatrixXXD, Matrix1D>, std::map<std::string, Eigen::Index>> |
exprs | A vector of simplified expressions |
auto Oasis::GetMapValue | ( | std::map< u, v > & | map, |
u | key, | ||
v | nextValue ) -> std::pair<v, bool> |
u | key type |
v | value type |
map | A map that maps some key to a value |
key | The key you are searching for |
nextValue | What the next assigned value should be assuming that the key doesn't already have one. If no value is found, this value will be assigned to this key. |
auto Oasis::RecursiveCast | ( | const Expression & | other | ) | -> std::unique_ptr<T> |
auto Oasis::RecursiveCast | ( | const Expression & | other | ) | -> std::unique_ptr<T> |
auto Oasis::RecursiveCast | ( | const Expression & | other | ) | -> std::unique_ptr<T> |
matrix | to solve (in row echelon form) |
auto Oasis::SolveLinearSystems | ( | std::vector< std::unique_ptr< Expression > > & | exprs | ) | -> std::map<std::string, double> |
exprs | A vector of expressions |