Utility
We provide several utility functions that may be useful for a tool developer. While some of them are large enough to deserve a subpage (see menu), in the following, we outline some of the smaller but maybe useful features.
Adaptions CaRL
A collection of wrappers around the API of CaRL that used to change. To overcome problems with different versions of the API, HyPro comes with this collection of wrappers that we encourage users to use. Please contact us in case you find missing functionality.
Adaptions Eigen3
Holds operators on matrices and vectors (<=,<,==,>,>=), query functions such as finding duplicate rows and transformations that allow adding or removing rows of matrices and vectors.
Logging
Holds Macros to invoke a logger based on carl::logging
, e.g., TRACE(channel, text)
to invoke a trace log
message on a given channel. The logger comes with a filter on channels that can be configured as well, such that each
channel can have a filter on a different log level.
Matlab
First start for a wrapper for matlab, incomplete.
Multithreading
Deprecated collection of headers that provide functionality for multithreading.
Sampling
Header to create pseudo-random samples.
Sequence Generation
Holds generators for sequences of arbitrary dimension and type, e.g, permutations, combinations of a fixed amount of numbers in a certain range. Useful for instance for vertex enumeration for boxes.
Serialization
All functionality around the library cereal
to serialize objects from HyPro. Can/Should be extended on demand.
SMT
Access to the more expressive SMT interface provided by solving backends such as SMT-RAT
or z3
. Currently,
formulas have to be provided as carl::formula
and the current solving backend is limited to z3
. Also comes
with utility functionality that should be extended on demand to allow simpler formula generation (e.g., how to express
that two sets are semantically equal).
Statistics
Holds macros to enable statistics about the execution of functions in HyPro. These macros allow to measure time as well
as count instances of events. Needs to be enabled during compilation via the cmake flag -DHYPRO_STATISTICS=ON
.
Tuple Expansion and Type Handling
Helpers to allow compile-time polymorphism over lists of types and alike.