Linear data structure with random access. Similar to STL's vector class. The main differences are
the following.
INDEX_CHECKS enforces array bound
checkingAssociative container class based on an AVL tree structure. Logarithmic cost for access, insert, and
delete. Similar to STL's map class.
Linear data structures for number types with random access. Functionality as expected from linear algebra, typical operators defined.
INDEX_CHECKS enforces array bound
checkingDIMENSION_CHECKS verifies
whether operands in an expression are of appropriate dimensionsThere are also the sparse variants SparseVector and SparseMatrix built from
AVL trees. Sparse and dense vectors and matrices can arbitrarily be mixed in expressions.
Ordered sets realized as AVL trees. Typical set operators defined.
There is also the Bitset class.
Operands from both classes can arbitrarily mixed in expressions.
Beware of collateral costs in case of too many implicit conversions though.
This is essentially a SparseMatrix with bool entries. Again based on AVL trees.
Graphs are realized as adjacency lists. Similar to an IncidenceMatrix where the rows columns are
indexed by the nodes. By default our graphs are undirected. There is also a directed variant. Node and edge
labels of arbitrary type optional.