|
template<class T > |
std::ostream & | operator<< (std::ostream &os, const Environment< T > &env) |
|
template std::ostream & | operator<< (std::ostream &os, const Environment< int > &env) |
|
template std::ostream & | operator<< (std::ostream &os, const Environment< long > &env) |
|
template std::ostream & | operator<< (std::ostream &os, const Environment< float > &env) |
|
template std::ostream & | operator<< (std::ostream &os, const Environment< double > &env) |
|
template<class T > |
Expression< T > | operator+ (const T &c, const Expression< T > &e) |
|
template<class T > |
Expression< T > | operator- (const T &c, const Expression< T > &e) |
|
template<class T > |
Expression< T > | operator* (const T &c, const Expression< T > &e) |
|
template<class T > |
Expression< T > | operator/ (const T &c, const Expression< T > &e) |
|
template<class T > |
Expression< T > | operator^ (const T &c, const Expression< T > &e) |
|
template<class T > |
std::ostream & | operator<< (std::ostream &os, const Expression< T > &expr) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (Expression) |
|
template Expression< int > | operator+ (const int &c, const Expression< int > &e) |
|
template Expression< long > | operator+ (const long &c, const Expression< long > &e) |
|
template Expression< double > | operator+ (const double &c, const Expression< double > &e) |
|
template Expression< float > | operator+ (const float &c, const Expression< float > &e) |
|
template Expression< int > | operator- (const int &c, const Expression< int > &e) |
|
template Expression< long > | operator- (const long &c, const Expression< long > &e) |
|
template Expression< double > | operator- (const double &c, const Expression< double > &e) |
|
template Expression< float > | operator- (const float &c, const Expression< float > &e) |
|
template Expression< int > | operator* (const int &c, const Expression< int > &e) |
|
template Expression< long > | operator* (const long &c, const Expression< long > &e) |
|
template Expression< double > | operator* (const double &c, const Expression< double > &e) |
|
template Expression< float > | operator* (const float &c, const Expression< float > &e) |
|
template Expression< int > | operator/ (const int &c, const Expression< int > &e) |
|
template Expression< long > | operator/ (const long &c, const Expression< long > &e) |
|
template Expression< double > | operator/ (const double &c, const Expression< double > &e) |
|
template Expression< float > | operator/ (const float &c, const Expression< float > &e) |
|
template Expression< int > | operator^ (const int &c, const Expression< int > &e) |
|
template Expression< long > | operator^ (const long &c, const Expression< long > &e) |
|
template Expression< double > | operator^ (const double &c, const Expression< double > &e) |
|
template Expression< float > | operator^ (const float &c, const Expression< float > &e) |
|
template std::ostream & | operator<< (std::ostream &os, const Expression< int > &expr) |
|
template std::ostream & | operator<< (std::ostream &os, const Expression< long > &expr) |
|
template std::ostream & | operator<< (std::ostream &os, const Expression< double > &expr) |
|
template std::ostream & | operator<< (std::ostream &os, const Expression< float > &expr) |
|
| EXTERNAL_TEMPLATE_INSTANTIATION_NUMERIC (Expression) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionCell) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (UnaryExpressionCell) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (BinaryExpressionCell) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionConstant) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionVar) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionNaN) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionAdd) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionMul) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionPow) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionDiv) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionAddFactory) |
|
| EXPLICIT_TEMPLATE_INSTANTIATION_NUMERIC (ExpressionMulFactory) |
|
std::ostream & | operator<< (std::ostream &os, const ExpressionKind &kind) |
|
bool | operator< (ExpressionKind k1, ExpressionKind k2) |
|
template<> |
bool | is_integer (const int &v) |
|
template<> |
bool | is_integer (const long &v) |
|
template<> |
bool | is_integer (const float &v) |
|
template<> |
bool | is_integer (const double &v) |
|
template<> |
int | pow (const int &base, const int &exponent) |
|
template<> |
long | pow (const long &base, const long &exponent) |
|
template<> |
float | pow (const float &base, const float &exponent) |
|
template<> |
double | pow (const double &base, const double &exponent) |
|
template<class T > |
bool | is_integer (const T &v) |
|
template<class T > |
T | pow (const T &base, const T &exponent) |
|
std::ostream & | operator<< (std::ostream &os, const Variable &var) |
|
std::ostream & | operator<< (std::ostream &os, Variable::Type type) |
|
Variables | operator+ (const Variable &var, Variables vars) |
|
std::ostream & | operator<< (std::ostream &os, const Variables &vars) |
|
template<InvocableHashAlgorithm HashAlgorithm, Hashable< HashAlgorithm > T> |
void | hash_append (HashAlgorithm &hasher, const T &hashable) noexcept |
|
void | hash_append (InvocableHashAlgorithm auto &hasher, const std::integral auto &item) noexcept |
|
template<class T > |
void | hash_append (InvocableHashAlgorithm auto &hasher, const T *item) noexcept |
|
void | hash_append (InvocableHashAlgorithm auto &hasher, const IsEnum auto &item) noexcept |
|
template<std::floating_point T> |
void | hash_append (InvocableHashAlgorithm auto &hasher, const T &item) noexcept |
|
template<class Traits , class Allocator > |
void | hash_append (InvocableHashAlgorithm auto &hasher, const std::basic_string< char, Traits, Allocator > &item) noexcept |
|
template<class T1 , class T2 > |
void | hash_append (InvocableHashAlgorithm auto &hasher, const std::pair< T1, T2 > &item) noexcept |
|
template<class T > |
void | hash_append (InvocableHashAlgorithm auto &hasher, const std::optional< T > &item) noexcept |
|
template<class T1 , class T2 , class Compare , class Allocator > |
void | hash_append (InvocableHashAlgorithm auto &hasher, const std::map< T1, T2, Compare, Allocator > &item) noexcept |
|
template<class Key , class Compare , class Allocator > |
void | hash_append (InvocableHashAlgorithm auto &hasher, const std::set< Key, Compare, Allocator > &item) noexcept |
|
template<class Iter > |
void | hash_append_range (InvocableHashAlgorithm auto &hasher, Iter begin, Iter end) noexcept |
|
std::shared_ptr< spdlog::logger > | get_logger (const bool to_stdout) |
|
std::ostream & | operator<< (std::ostream &os, const Stats &stats) |
|
std::ostream & | operator<< (std::ostream &os, const IterationStats &stats) |
|
ExpressionKind enum.
Hash functions.
Variable class.
ExpressionVisitor class.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license
The main namespace for the smats library.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Environment class
Represents a symbolic environment (mapping from a variable to a value).
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Expression class.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license ExpressionCell class and its subclasses.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license ExpressionCell factory classes
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
-
2019 Drake (https://drake.mit.edu)
- Licence:
- Apache-2.0 license
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
-
2019 Drake (https://drake.mit.edu)
- Licence:
- Apache-2.0 license
Kinds of symbolic expressions.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
-
2019 Drake (https://drake.mit.edu)
- Licence:
- Apache-2.0 license
Base class for expression visitors.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Symbolic utilities.
A collection of utilities to work with symbolic expressions and formulas.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
-
2019 Drake (https://drake.mit.edu)
- Licence:
- Apache-2.0 license
Represents a symbolic variable. A symbolic variable is a named entity that can take a value from a specific domain.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Collection of concepts used in the smats library.
Utility file that contains c++20 concepts used in the smats library in order to make the code more readable and to provide better error messages.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Custom exception classes.
This file contains the definition of the custom exception classes. They inherit from std::exception and override the what() method, returning a custom message to aid in debugging.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
-
2019 Drake (https://drake.mit.edu)
- Licence:
- Apache-2.0 license
smats implements the hash_append pattern as described by N3980, based on Drake's implementation. For more information, refer to N3980.
To provide hash_append support within a class, the class must implement a hash_append
function. The function appends every hash-relevant member field into the hasher.
class MyValue {
public:
...
template <class HashAlgorithm>
HashAlgorithm& hasher, const MyValue& item) noexcept {
}
...
private:
std::string my_data_;
};
void hash_append(HashAlgorithm &hasher, const T &hashable) noexcept
Definition hash.hpp:79
Checklist for reviewing a hash_append
implementation:
- The function cites
@ref hash_append
in its Doxygen comment.
- The function is marked
noexcept
.
To use hashable types, Drake types may be used in unordered collections:
std::unordered_set<MyValue, smats::DefaultHash> foo;
Some types may also choose to specialize std::hash<MyValue>
to use DefaultHash
, so that the second template argument to std::unordered_set
can be omitted. For example smats::Expression header states:
}
Definition expression.h:185
so that users are able to simply write:
std::unordered_set<smats::Expression> foo;
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Logging macros. Allows logging with different verbosity levels using spdlog.
The verbosity level is set with the –verbosity flag. The verbosity level is an integer between 0 and 5. The higher the verbosity level, the more information is logged. If another value is provided, the logging is turned off.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Stats class. Used as a base class for more specialized stats classes.
Simple dataclass to store the statistics of a solver run.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Timer classes.
The Timer class is a simple timer class to evaluate the performance of the software. The TimerGuard class wraps a timer object and pauses it when the guard object is destructed.
- Author
- Ernesto Casablanca (casab.nosp@m.lanc.nosp@m.aerne.nosp@m.sto@.nosp@m.gmail.nosp@m..com)
- Copyright
- 2024 smats
- Licence:
- Apache-2.0 license Visitor class.
Base class for visitors.