 regina | Contains the entire Regina calculation engine |
  boost | Miscellaneous utility classes taken or modified from the Boost C++ libraries |
   remove_pointer | A template class used to remove the indirection from a pointer type |
   reference_wrapper | A wrapper allowing references to be passed through generic functions |
   noncopyable | A base class that guarantees that derived classes cannot be copied |
  i18n | Various classes and routines for working with internationalisation and character encodings |
   Locale | A simple class with static routines for querying information about the current locale |
   IConvStreamBuffer | An output stream buffer that translates between character encodings |
   IConvStream | An output stream that converts between character encodings |
  python | Utility classes and routines to assist with Python bindings for the calculation engine |
   GlobalArray2D | A template class that references a constant two-dimensional C++ array |
   GlobalArray3D | A template class that references a constant three-dimensional C++ array |
   GlobalArray | A template class that references a constant one-dimensional C++ array |
  stl | Miscellaneous utility classes and routines taken or modified from the Standard Template Library |
   select1st | An adaptable unary function used to select the first element of a pair |
   select2nd | An adaptable unary function used to select the second element of a pair |
   unary_compose | An adaptable unary function used to compose two unary functions |
  xml | Various classes and routines for XML manipulation, some taken or modified from the libxml++ library |
   XMLPropertyDict | Represents a map from property names to property values |
   XMLParserCallback | Provides the callbacks for an XMLParser |
   XMLParser | Used to parse an entire XML file |
  NAbelianGroup | Represents a finitely generated abelian group |
  NGroupExpressionTerm | Represents a power of a generator in a group presentation |
  NGroupExpression | Represents an expression involving generators from a group presentation or a free group |
  NGroupPresentation | Represents a finite presentation of a group |
  NHomGroupPresentation | Represents a homomorphism between groups which are described via finite presentations |
  NMarkedAbelianGroup | Represents a finitely generated abelian group given by a chain complex |
  NHomMarkedAbelianGroup | Represents a homomorphism of finitely generated abelian groups |
  NXMLAbelianGroupReader | An XML element reader that reads a single abelian group |
  NXMLGroupPresentationReader | An XML element reader that reads a single group presentation |
  NAngleStructureVector | A vector of integers used to indirectly store the individual angles in an angle structure |
  NAngleStructure | Represents an angle structure on a triangulation |
  PacketInfo< PACKET_ANGLESTRUCTURELIST > | Stores information about the angle structure list packet |
  NAngleStructureList | A packet representing a collection of angle structures on a triangulation |
   StructureInserter | An output iterator used to insert angle structures into an NAngleStructureList |
  NXMLAngleStructureReader | An XML element reader that reads a single angle structure |
  NXMLAngleStructureListReader | An XML packet reader that reads a single angle structure list |
  Dim2Census | A utility class used to form a complete census of 2-manifold triangulations satisfying certain constraints |
  Dim2EdgePairing | Represents a specific pairwise matching of edges of triangles |
  Dim2GluingPerms | Represents a specific set of gluing permutations to complement a particular pairwise matching of triangle edges |
  Dim2GluingPermSearcher | A utility class for searching through all possible gluing permutation sets that correspond to a given triangle edge pairing |
  NCensus | A utility class used to form a complete census of 3-manifold triangulations satisfying certain constraints |
  NFacePairing | Represents a specific pairwise matching of tetrahedron faces |
  NGenericFacetPairing | A dimension-agnostic base class that represents a pairwise matching of facets of dim-dimensional simplices |
  NGenericGluingPerms | A dimension-agnostic base class that represents a specific set of gluing permutations to complement a particular pairwise matching of simplex facets |
  NGluingPerms | Represents a specific set of gluing permutations to complement a particular pairwise matching of tetrahedron faces |
  NGluingPermSearcher | A utility class for searching through all possible gluing permutation sets that correspond to a given tetrahedron face pairing |
  NEulerSearcher | A gluing permutation search class that offers a specialised search algorithm for when all vertex links must all have a given fixed Euler characteristic |
   TetEdgeState | A structure used to track equivalence classes of tetrahedron edges as the gluing permutation set is constructed |
   TetVertexState | A structure used to track equivalence classes of tetrahedron vertices as the gluing permutation set is constructed |
  NCompactSearcher | A gluing permutation search class that offers a specialised search algorithm for when only compact (finite) 3-manifold triangulations are required |
   TetEdgeState | A structure used to track equivalence classes of tetrahedron edges as the gluing permutation set is constructed |
   TetVertexState | A structure used to track equivalence classes of tetrahedron vertices as the gluing permutation set is constructed |
  NClosedPrimeMinSearcher | A gluing permutation search class that offers a specialised search algorithm for when (i) only closed prime minimal P2-irreducible triangulations are required, and (ii) the given face pairing has order at least three |
  Dim2BoundaryComponent | Represents a component of the boundary of a 2-manifold triangulation |
  Dim2Component | Represents a component of a 2-manifold triangulation |
  Dim2EdgeEmbedding | Details how an edge in the 1-skeleton of a 2-manifold triangulation forms part of an individual triangle |
  Dim2Edge | Represents an edge in the 1-skeleton of a 2-manifold triangulation |
  Dim2ExampleTriangulation | This class offers routines for constructing sample 2-manifold triangulations of various types |
  Dim2Isomorphism | Represents a combinatorial isomorphism from one 2-manifold triangulation into another |
  Dim2Triangle | Represents a triangular face in a 2-manifold triangulation |
  PacketInfo< PACKET_DIM2TRIANGULATION > | Stores information about the 2-manifold triangulation packet |
  Dim2Triangulation | Stores the triangulation of a 2-manifold along with its various cellular structures and other information |
  Dim2VertexEmbedding | Details how a vertex in the skeleton of a 2-manifold triangulation forms part of an individual triangle |
  Dim2Vertex | Represents a vertex in the skeleton of a 2-manifold triangulation |
  NXMLDim2TriangulationReader | An XML packet reader that reads a single 2-manifold triangulation |
  NDoubleDescription | Implements a modified double description method for polytope vertex enumeration |
  NEnumConstraintList | Represents an individual validity constraint for use with polytope vertex enumeration |
  NHilbertCD | Implements a modified Contejean-Devie algorithm for enumerating Hilbert bases |
  NHilbertDual | Implements a modified dual algorithm for enumerating Hilbert bases |
  NHilbertPrimal | Implements a modified primal algorithm for enumerating Hilbert bases |
  NMaxAdmissible | Used to enumerate all maximal admissible faces of a polyhedral cone under a given set of admissibility constraints |
  LPMatrix | A matrix class for use with linear programming |
  LPConstraintBase | A base class for additional linear constraints that we can add to the tableaux of normal surface matching equations |
   Coefficients | Stores the extra coefficients in a single column for the nConstraints additional rows that we add to the tableaux to describe the nConstraints additional linear equations or inequalities |
  LPConstraintSubspace | A subclass of LPConstraintBase used for constraints defined entirely by homogeneous linear equations |
  LPConstraintNone | A do-nothing class that imposes no additional linear constraints on the tableaux of normal surface matching equations |
   Coefficients | Stores the extra coefficients in the tableaux associated with this constraint class (which for this class is a no-op, since in this case there are no extra coefficients) |
  LPConstraintEuler | A class that constraints the tableaux of normal surface matching equations to ensure that Euler characteristic is strictly positive |
   Coefficients | Stores the extra coefficients in the tableaux associated with this constraint class (in this case, one extra integer per column) |
  LPConstraintNonSpun | A class that constraints the tableaux of normal surface matching equations to ensure that normal surfaces in an ideal triangulation are compact (thereby avoiding spun normal surfaces with infinitely many triangles) |
   Coefficients | Stores the extra coefficients in the tableaux associated with this constraint class (in this case, two extra integers per column) |
  BanConstraintBase | A base class for additional banning and marking constraints that we can place on tree traversal algorithms |
  BanNone | A do-nothing class that bans no disc types and marks no disc types |
  BanBoundary | A class that bans normal disc types that meet the boundary of the underlying triangulation |
  BanTorusBoundary | A class that bans and marks disc types associated with torus boundary components |
  LPInitialTableaux | Stores an adjusted matrix of matching equations from the underlying triangulation, in sparse form |
   Col | Stores a single column of the adjusted matching equation matrix in sparse form |
  LPData | Stores an intermediate tableaux for the dual simplex method, and contains all of the core machinery for using the dual simplex method |
  NTreeTraversal | A base class for searches that employ the tree traversal algorithm for enumerating and locating vertex normal surfaces |
  NTreeEnumeration | The main entry point for the tree traversal algorithm to enumerate all vertex normal or almost normal surfaces in a 3-manifold triangulation |
  NTreeSingleSoln | The main entry point for the tree traversal / branching algorithm to locate a single non-trivial normal surface satisfying given constraints within a 3-manifold triangulation |
  NTypeTrie | A trie that stores a set of type vectors of a fixed length |
  NPosOrder | A comparison object that sorts hyperplanes by position vectors |
  NFileInfo | Stores information about a Regina data file, including file type and version |
  NGlobalDirs | Provides global routines that return directories in which various components of Regina are installed on the system |
  NXMLCallback | Provides the callbacks for an XMLParser required to parse an entire file using a series of NXMLElementReader objects |
  NXMLElementReader | Used to read the contents of a single XML element |
  NXMLCharsReader | A reader for an XML element that contains only characters |
  DimTraits | A template class that provides typedefs and other information about working in each of the supported dimensions |
  NFacetSpec | A lightweight class used to refer to a particular facet of a particular simplex in a triangulation |
  NGenericIsomorphism | A dimension-agnostic base class that represents a combinatorial isomorphism from one dim-manifold triangulation into another |
  NGenericTriangulation | A generic helper class for working with triangulations of arbitrary dimension |
  NGraphLoop | Represents a closed graph manifold formed by joining a single bounded Seifert fibred space to itself along a torus |
  NGraphPair | Represents a closed graph manifold formed by joining two bounded Seifert fibred spaces along a common torus |
  NGraphTriple | Represents a closed graph manifold formed by joining three bounded Seifert fibred spaces along their torus boundaries |
  NHandlebody | Represents an arbitrary handlebody |
  NLensSpace | Represents a general lens space |
  NManifold | Represents a particular 3-manifold |
  NSFSFibre | Represents an exceptional (alpha, beta) fibre in a Seifert fibred space |
  NSFSpace | Represents a general Seifert fibred space, which may be orientable or non-orientable |
  NSFSAltSet | Provides a variety of alternative representations of a single bounded Seifert fibred space |
  NSimpleSurfaceBundle | Represents a particularly simple closed surface bundle over the circle |
  NSnapPeaCensusManifold | Represents a 3-manifold from the SnapPea cusped census |
  NTorusBundle | Represents a torus bundle over the circle |
  NNativeInteger | A wrapper class for a native, fixed-precision integer type of the given size |
  InfinityBase | Internal base classes for use with NIntegerBase, templated on whether we should support infinity as an allowed value |
  NIntegerBase | Represents an arbitrary precision integer |
  NMatrix | Represents a matrix of elements of the given type T |
  NMatrixRing | Represents a matrix of elements from a given ring T |
  NMatrix2 | Represents a 2-by-2 integer matrix |
  NMatrixInt | Represents a matrix of arbitrary precision integers |
  NPerm3 | Represents a permutation of {0,1,2} |
  NPerm4 | Represents a permutation of {0,1,2,3} |
  NPerm5 | Represents a permutation of {0,1,2,3,4} |
  NPrimes | A helper class for finding primes and factorising integers |
  NRational | Represents an arbitrary precision rational number |
  NRay | A fast class for storing a ray rooted at the origin whose coordinates are rational |
  NVector | An optimised vector class of elements from a given ring T |
  PacketInfo< PACKET_CONTAINER > | Stores information about the container packet |
  NContainer | A packet that simply contains other packets |
  PacketInfo | A template that stores information about a particular type of packet |
  NPacket | Represents a packet of information that may be individually edited or operated upon |
   ChangeEventSpan | An object that facilitates firing packetToBeChanged() and packetWasChanged() events |
  NPacketListener | An object that can be registered to listen for packet events |
  PacketInfo< PACKET_PDF > | Stores information about the PDF packet |
  NPDF | A packet that can hold a PDF document |
  PacketInfo< PACKET_SCRIPT > | Stores information about the script packet |
  NScript | A packet representing a Python script that can be run |
  PacketInfo< PACKET_TEXT > | Stores information about the text packet |
  NText | A packet representing a text string |
  NXMLPacketReader | An XML element reader that reads the data for an individual packet |
  NXMLContainerReader | An XML packet reader that reads a single container |
  NXMLPDFReader | An XML packet reader that reads a single PDF packet |
  NXMLScriptReader | An XML packet reader that reads a single script |
  NXMLTextReader | An XML packet reader that reads a single text packet |
  NXMLTreeResolutionTask | An individual task for resolving dangling packet references after an XML data file has been read |
  NXMLTreeResolver | Provides a mechanism to resolve dangling packet references after a complete packet tree has been read from an XML data file |
  NProgress | An object through which external interfaces can obtain progress reports when running long calculations |
  NProgressFinished | A progress report that immediately claims it is finished |
  NProgressManager | Manages the sharing of an NProgress object between reading and writing threads |
  NProgressTracker | Manages progress tracking and cancellation polling for long operations |
  NProgressMessage | A progress report in which the current state of progress is stored as a string message |
  NProgressStateNumeric | A simple structure used for passing around a numeric state of progress |
  NProgressNumber | A progress report in which the current state of progress is stored as a number of items completed |
  ShareableObject | Facilitates mirroring objects in the underlying C++ calculation engine using the various wrapper classes provided in the various external interfaces (such as the Python interface) |
  NSnapPeaTriangulation | Offers direct access to the SnapPea kernel from within Regina |
  NSigCensus | A utility class used by formSigCensus() |
  NSigPartialIsomorphism | Represents a partial isomorphism between two splitting surface signatures |
  NSignature | Represents a signature of a splitting surface in a closed 3-manifold triangulation |
  NAugTriSolidTorus | Represents an augmented triangular solid torus component of a triangulation |
  NBlockedSFS | Represents a blocked Seifert fibred space (possibly with boundary) |
  NBlockedSFSLoop | Represents a blocked Seifert fibred space with two boundary tori that are joined together |
  NBlockedSFSPair | Represents a blocked pair of Seifert fibred spaces joined along a single connecting torus |
  NBlockedSFSTriple | Represents a blocked sequence of three Seifert fibred spaces joined along connecting tori |
  NL31Pillow | Represents a triangular pillow L(3,1) component of a triangulation |
  NLayeredChain | Represents a layered chain in a triangulation |
  NLayeredChainPair | Represents a layered chain pair component of a triangulation |
  NLayeredLensSpace | Represents a layered lens space component of a triangulation |
  NLayeredLoop | Represents a layered loop component of a triangulation |
  NLayeredSolidTorus | Represents a layered solid torus in a triangulation |
  NLayeredTorusBundle | Describes a layered torus bundle |
  NLayering | Represents a layering of zero or more tetrahedra upon a torus boundary |
  NPillowTwoSphere | Represents a 2-sphere made from two triangles glued together along their three edges |
  NPluggedTorusBundle | Describes a triangulation of a graph manifold formed by joining a bounded saturated region with a thin I-bundle over the torus, possibly with layerings in between |
  NPlugTriSolidTorus | Represents a plugged triangular solid torus component of a triangulation |
  NSatAnnulus | Represents an annulus formed from a pair of triangles in a Seifert fibred space |
  NSatBlock | Represents a saturated block in a Seifert fibred space |
  NSatBlockStarter | Contains a triangulation of a saturated block along with the accompanying saturated block description |
  NSatBlockStarterSet | Represents a set of starter blocks that can be used for identifying triangulations of Seifert fibred spaces |
  NSatBlockStarterSearcher | A helper class for locating and using starter blocks within a triangulation |
  NSatMobius | A degenerate zero-tetrahedron saturated block that corresponds to attaching a Mobius band to a single annulus boundary |
  NSatLST | A saturated block that is a layered solid torus |
  NSatTriPrism | A saturated block that is a three-tetrahedron triangular prism |
  NSatCube | A saturated block that is a six-tetrahedron cube |
  NSatReflectorStrip | A saturated block that is a reflector strip |
  NSatLayering | A degenerate saturated block that is a single tetrahedron wrapped around so that two opposite edges touch |
  NSatBlockSpec | Describes how a single saturated block forms a part of a larger saturated region |
  NSatRegion | A large saturated region in a Seifert fibred space formed by joining together saturated blocks |
  NSnapPeaCensusTri | Represents a 3-manifold triangulation from the SnapPea cusped census |
  NSnappedBall | Represents a snapped 3-ball in a triangulation |
  NSnappedTwoSphere | Represents a 2-sphere made from two snapped 3-balls in a triangulation |
  NSpiralSolidTorus | Represents a spiralled solid torus in a triangulation |
  NStandardTriangulation | Describes a triangulation or subcomplex of a triangulation whose structure is well-understood |
  NTriSolidTorus | Represents a three-tetrahedron triangular solid torus in a triangulation |
  NTrivialTri | Represents one of a few particular hard-coded trivial triangulations that do not belong to any of the other larger families |
  NTxICore | Provides a triangulation of the product T x I (the product of the torus and the interval) |
  NTxIDiagonalCore | One of a family of thin T x I triangulations that typically appear at the centres of layered torus bundles |
  NTxIParallelCore | A specific six-tetrahedron NTxICore triangulation that does not fit neatly into other families |
  NDiscSpec | Specifies a single normal disc in a normal surface |
  NDiscSetTet | Represents a set of normal discs inside a single tetrahedron |
  NDiscSetTetData | Stores data of type T for every normal disc inside a single tetrahedron |
  NDiscSetSurface | Represents the set of all normal discs forming a normal surface |
  NDiscSetSurfaceData | Stores data of type T for every normal disc within a particular normal surface |
  NDiscSpecIterator | An iterator used for running through all normal discs in a normal surface |
  NDiscType | Identifies a single normal or almost normal disc type within a triangulation |
  NormalInfo | A template that stores information about a particular normal coordinate system |
  NNormalSurfaceVector | Stores the vector of a single normal surface in a 3-manifold |
  NNormalSurface | Represents a single normal surface in a 3-manifold |
  PacketInfo< PACKET_NORMALSURFACELIST > | Stores information about the normal surface list packet |
  NNormalSurfaceList | A packet representing a collection of normal surfaces in a 3-manifold |
   SurfaceInserter | An output iterator used to insert surfaces into an NNormalSurfaceList |
   VectorIterator | A bidirectional iterator that runs through the raw vectors for surfaces in this list |
  NPrismSpec | Specifies a single triangular prism in a tetrahedron |
  NPrismSetSurface | Represents the set of prisms defined by slicing along all the quads in a particular normal surface |
  NormalInfo< NS_AN_STANDARD > | Stores information about standard almost normal coordinates |
  NNormalSurfaceVectorANStandard | An almost normal surface vector using standard triangle-quad-oct coordinates |
  NNormalSurfaceVectorMirrored | A normal surface vector that is mirrored in another coordinate system to avoid frequent lengthy calculations |
  NormalInfo< NS_ORIENTED > | Stores information about transversely oriented standard normal coordinates |
  NNormalSurfaceVectorOriented | A normal surface vector using transversely oriented standard (triangle-quad) coordinates |
  NormalInfo< NS_ORIENTED_QUAD > | Stores information about transversely oriented quad normal coordinates |
  NNormalSurfaceVectorOrientedQuad | A normal surface vector using transversely oriented quadrilateral coordinates |
  NormalInfo< NS_QUAD > | Stores information about quad normal coordinates |
  NNormalSurfaceVectorQuad | A normal surface vector using quad coordinates |
  NormalInfo< NS_AN_QUAD_OCT > | Stores information about quad-oct almost normal coordinates |
  NNormalSurfaceVectorQuadOct | An almost normal surface vector using quad-oct coordinates |
  NormalInfo< NS_STANDARD > | Stores information about standard normal coordinates |
  NNormalSurfaceVectorStandard | A normal surface vector using standard triangle-quad coordinates |
  SurfaceFilterInfo | A template that stores information about a particular type of normal surface filter |
  PacketInfo< PACKET_SURFACEFILTER > | Stores information about the normal surface filter packet type |
  SurfaceFilterInfo< NS_FILTER_DEFAULT > | Stores information about the default accept-all surface filter |
  NSurfaceFilter | A packet that accepts or rejects normal surfaces |
  NSurfaceSubset | Represents a subset of a normal surface list |
  NXMLFilterReader | An XML element reader that reads the specific details of a normal surface filter |
  NXMLFilterPacketReader | An XML packet reader that reads a single surface filter |
  NXMLNormalSurfaceReader | An XML element reader that reads a single normal surface |
  NXMLNormalSurfaceListReader | An XML packet reader that reads a single normal surface list |
  SurfaceFilterInfo< NS_FILTER_COMBINATION > | Stores information about the combination surface filter |
  NSurfaceFilterCombination | A normal surface filter that simply combines other filters |
  SurfaceFilterInfo< NS_FILTER_PROPERTIES > | Stores information about the property-based surface filter |
  NSurfaceFilterProperties | A normal surface filter that filters by basic properties of the normal surface |
  NBoundaryComponent | Represents a component of the boundary of a triangulation |
  NComponent | Represents a component of a triangulation |
  NEdgeEmbedding | Details how an edge in the skeleton forms part of an individual tetrahedron |
  NEdge | Represents an edge in the skeleton of a triangulation |
  NExampleTriangulation | This class offers routines for constructing sample 3-manifold triangulations of various types |
  NFacePair | Represents a pair of tetrahedron face numbers |
  NHomologicalData | Data type that deals with all the detailed homological information in a manifold |
  NIsomorphism | Represents a combinatorial isomorphism from one triangulation into another |
  NIsomorphismDirect | A deprecated synonym for NIsomorphism, provided for backward compatibility only |
  NPermItS4 | An iterator class that runs through all 24 permutations of four elements |
  NTetrahedron | Represents a tetrahedron in a triangulation |
  NTriangleEmbedding | Details how a triangle in the skeleton forms part of an individual tetrahedron |
  NTriangle | Represents a triangle in the skeleton of a triangulation |
  PacketInfo< PACKET_TRIANGULATION > | Stores information about the 3-manifold triangulation packet |
  NTriangulation | Stores the triangulation of a 3-manifold along with its various cellular structures and other information |
  NVertexEmbedding | Details how a vertex in the skeleton forms part of an individual tetrahedron |
  NVertex | Represents a vertex in the skeleton of a triangulation |
  NXMLTriangulationReader | An XML packet reader that reads a single triangulation |
  GenericBitManipulator | A generic class for bitwise analysis and manipulation of native data types |
  BitManipulator | An optimised class for bitwise analysis and manipulation of native data types |
  Flags | A class representing a bitwise combination of flags defined by an enumeration type |
  IntOfSize | Gives access to k-byte integer types, where k is a constant that is not known until compile time |
  FuncNew | An adaptable generator used to create objects using default constructors |
  FuncNewCopyPtr | An adaptable unary function used to create objects using copy constructors |
  FuncNewCopyRef | An adaptable unary function used to create objects using copy constructors |
  FuncNewClonePtr | An adaptable unary function used to create objects using the clone() method |
  FuncDelete | An adaptable unary function used to deallocate objects |
  NBitmask | A bitmask that can store arbitrarily many true-or-false bits |
  NBitmask1 | A small but extremely fast bitmask class that can store up to 8 * sizeof(T) true-or-false bits |
  NBitmask2 | A small but extremely fast bitmask class that can store up to 8 * sizeof(T) + 8 * sizeof(U) true-or-false bits |
  NTriBool | A three-way extension of the boolean type |
  NTriBool_Illegal_Integer_Conversion | An exception thrown when an illegal integer conversion is attempted with NTriBool |
  NBoolSet | A set of booleans |
  NListOnCall | Offers a hard-coded list of expensive objects that should only be created if they are required |
  NMarkedElement | A base class for elements of NMarkedVector |
  NMarkedVector | A vector of objects with fast, space-efficient reverse lookup of array indices |
  StoreValue | An NProperty storage policy indicating that the property should be held by value |
  StoreConstPtr | An NProperty storage policy indicating that the property should be held by constant pointer |
  StoreManagedPtr | An NProperty storage policy indicating that the property should be held by pointer and that the property wrapper will also take responsibility for memory management |
  NPropertyBase | A base class that provides routines shared by all properties, regardless of their individual NProperty template parameters |
  NProperty | Stores a calculable property of an object |
  NQitmask1 | A small but extremely fast "base 4 bitmask" class that can store up to 8 * sizeof(T) "qits", each equal to 0, 1, 2 or 3 |
  NQitmask2 | A small but extremely fast "base 4 bitmask" class that can store up to 8 * sizeof(T) + 8 * sizeof(U) "qits", each equal to 0, 1, 2 or 3 |
  NMutex | A mutual exclusion device (mutex) used to ensure that different threads do not interfere when working with the same data |
   MutexLock | A utility class for locking and unlocking a mutex |
  NThread | Provides very basic thread handling |
  NTrieSet | A trie-like data structure for storing and retriving sets |
  NTritmask1 | A small but extremely fast "ternary bitmask" class that can store up to 8 * sizeof(T) "trits", each equal to 0, 1 or 2 |
  NTritmask2 | A small but extremely fast "ternary bitmask" class that can store up to 8 * sizeof(T) + 8 * sizeof(U) "trits", each equal to 0, 1 or 2 |
  LessDeref | An adaptable binary function used to compare the objects to which pointers are pointing |
  Returns | A convenience base class for a function object, which does nothing beyond provide a ReturnType typedef |
  NewFunction1 | A function object that creates a new object subclassed from Base, where the particular subclass is chosen according to the template argument to operator() |
  ZBuffer | A common base class for compression/decompression stream buffers |
  CompressionBuffer | An output stream buffer that compresses data as it is written |
  DecompressionBuffer | An input stream buffer that decompresses data as it is read |
  CompressionStream | An output stream that compresses data as it is written |
  DecompressionStream | An input stream that decompresses data as it is read |