#include <FaceMap.h> using namespace pm::face_lattice;
A special case of an associative container, whose keys are ordered sets. It is implemented as a recursively nested AVL tree: The topmost tree uses the first set element as a local search key, and his nodes contain second-level trees, using in turn the second set element as a local search key, and so on.
The main purpose of the FaceMap is to collect faces from a polytope face lattice or a simplicial complex, hence the name. The idea came from Marc E. Pfetsch and Volker Kaibel, the authors of the face lattice enumeration algorithm implemented in polymake.
The template parameter Traits should be a traits class defining all necessary information about the data to be stored in the FaceMap:
An example of a valid traits class for FaceMap is struct face_traits defined in face_lattice_tools.h.
FaceMap implements the immutable Forward Container interface. The iterator and const_iterator is the same read-only iterator class. Unlike std::map or Map, it does not point to a (key, value) pair. Dereferencing the iterator yields a GenericSet being the entry key; method iterator::data() gives access to the payload data. Note: The FaceMap::size() method physically enumerates all entries!