![]() |
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 | MatchCastImpl |
| 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 | Subtract |
| The Subtract expression subtracts two expressions. More... | |
| class | Summation |
| class | TypedVisitor |
| class | UnaryExpression |
| class | Undefined |
| An undefined expression. More... | |
| class | Variable |
| An algebraic variable. More... | |
| class | Visitor |
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 |
| concept | IVisitor |
| concept | ExpectedWithString |
| concept | TransformerAcceptsCheckArg |
Typedefs | |
| using | any = boost::anys::unique_any |
| typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > | MatrixXXD |
| typedef Eigen::Matrix< double, Eigen::Dynamic, 1 > | Matrix1D |
| template<typename Lambda > | |
| using | lambda_argument_type = std::remove_cvref_t<std::tuple_element_t<0, boost::callable_traits::args_t<Lambda>>> |
| template<typename ArgumentT > | |
| using | MatchCast = MatchCastImpl<ArgumentT, boost::mpl::vector<>> |
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> requires (!DerivedFromBinaryExpression<T> && !DerivedFromUnaryExpression<T>) | |
| auto | RecursiveCast (const Expression &other) -> std::unique_ptr< T > |
| using Oasis::any = boost::anys::unique_any |
| using Oasis::lambda_argument_type = std::remove_cvref_t<std::tuple_element_t<0, boost::callable_traits::args_t<Lambda>>> |
| using Oasis::MatchCast = MatchCastImpl<ArgumentT, boost::mpl::vector<>> |
| 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 |