| ► algebra | |
| abeliangroup.h | Deals with finitely generated abelian groups |
| grouppresentation.h | Deals with finite presentations of groups |
| homgrouppresentation.h | Deals with finite presentations of groups |
| intersectionform.h | Deals with intersection forms of 4-manifolds |
| markedabeliangroup.h | Deals with abelian groups given by chain complexes |
| ► angle | |
| angleflags.h | Defines constants and flags for angle structure enumeration |
| anglestructure.h | Deals with angle structures on triangulations |
| anglestructures.h | Implements a collection of angle structures on a 3-manifold triangulation |
| ► census | |
| census.h | Provides facilities for looking up 3-manifold triangulations in Regina's in-built census databases |
| gluingperms.h | Deals with selecting gluing permutations to complement a particular pairing of facets of simplices in an n-manifold triangulation |
| gluingpermsearcher.h | Supports searching through all possible sets of gluing permutations for a given facet pairing |
| gluingpermsearcher2.h | Supports searching through all possible sets of triangle gluing permutations for a given triangle edge pairing |
| gluingpermsearcher3.h | Supports searching through all possible sets of tetrahedron gluing permutations for a given tetrahedron face pairing |
| gluingpermsearcher4.h | Supports searching through all possible sets of pentachoron gluing permutations for a given pentachoron facet pairing |
| purgeflags.h | Defines constants and flags for census generation |
| ► core | |
| engine.h | Provides global routines for interfacing with the Regina calculation engine |
| output.h | Provides a common interface for human-readable text output |
| ► enumerate | |
| doubledescription.h | Provides a modified double description method for polytope vertex enumeration |
| hilbertcd.h | Provides a modified Contejean-Devie algorithm for Hilbert basis enumeration |
| hilbertdual.h | Provides a modified dual algorithm for Hilbert basis enumeration |
| hilbertprimal.h | Provides a modified primal algorithm for Hilbert basis enumeration |
| maxadmissible.h | Provides an algorithm for enumerating maximal faces of a polyhedral cone that satisfy a set of admissibility constraints |
| ordering.h | Provides different ways of sorting hyperplanes (or matching equations) when performing normal surface enumeration |
| treeconstraint.h | Constraint classes for use with tree traversal enumeration methods |
| treelp.h | Linear programming code for tree traversal enumeration methods |
| treetraversal.h | Tree traversal methods for normal surface and angle structure enumeration and optimisation |
| typetrie.h | A supporting data structure for tree traversal enumeration methods |
| validityconstraints.h | Deals with validity constraints in polytope vertex enumeration |
| ► file | |
| fileformat.h | Represents the different generations of Regina data file format |
| fileinfo.h | Deals with determining information about Regina data files |
| globaldirs.h | Gives information about system installation directories |
| ► foreign | |
| dehydration.h | Allows reading lists of dehydrated triangulations |
| isosig.h | Allows reading lists of isomorphism signatures and knot signatures |
| orb.h | Allows reading Orb / Casson triangulation files |
| ► hypersurface | |
| hypercoords.h | Defines constants for normal hypersurface coordinate systems |
| hyperflags.h | Defines constants and flags for normal hypersurface enumeration |
| normalhypersurface.h | Deals with an individual normal hypersurface in a 4-manifold triangulation |
| normalhypersurfaces.h | Implements a collection of normal hypersurfaces in a 4-manifold triangulation |
| ► link | |
| examplelink.h | Offers several ready-made examples of knots and links |
| link.h | Deals with classical and virtual knots and links |
| modellinkgraph.h | Deals with model 4-valent graphs for knots and links |
| spatiallink.h | Deals with specific embeddings of knots and links in real 3-dimensional space |
| tangle.h | Deals with 2-tangles in the 3-ball |
| ► manifold | |
| graphloop.h | Deals with graph manifolds formed from self-identified Seifert fibred spaces |
| graphpair.h | Deals with graph manifolds formed from pairs of Seifert fibred spaces |
| graphtriple.h | Deals with graph manifolds formed from sequences of three Seifert fibred spaces |
| handlebody.h | Deals with arbitrary handlebodies |
| lensspace.h | Deals with general lens spaces |
| manifold.h | Deals with the underlying 3-manifolds of triangulations |
| notation.h | Explains notation used for describing various types of 3-manifold |
| sfs.h | Deals with general Seifert fibred spaces |
| sfsalt.h | Assists with providing different representations of the same Seifert fibred space |
| simplesurfacebundle.h | Deals with simple closed surface bundles |
| snappeacensusmfd.h | Deals with 3-manifolds from the SnapPea census |
| torusbundle.h | Deals with torus bundles over the circle |
| ► maths | |
| ► spec | |
| perm2.h | Internal header for permutations of {0,1} |
| perm3.h | Internal header for permutations of {0,1,2} |
| perm4.h | Internal header for permutations of {0,1,2,3} |
| perm5.h | Internal header for permutations of {0,1,2,3,4} |
| perm6.h | Internal header for permutations of {0,1,2,3,4,5} |
| perm7.h | Internal header for permutations of {0,1,2,3,4,5,6} |
| 3d.h | Deals with floating-point 3-dimensional geometry |
| arrow.h | Implements the multivariate polynomial type used for arrow polynomials of links |
| binom.h | Provides small binomial coefficients |
| cyclotomic.h | Implements exact arithmetic in cyclotomic fields |
| integer.h | Provides arbitrary-precision and fixed-precision integer types |
| laurent.h | Implements single variable Laurent polynomials over arbitrary rings |
| laurent2.h | Implements Laurent polynomials in two variables over arbitrary rings |
| matrix.h | Deals with matrices of elements of various types |
| matrix2.h | Deals with 2x2 integer matrices |
| matrixops.h | Provides various complex matrix calculations |
| numbertheory.h | Provides miscellaneous number theory routines |
| perm.h | Deals with permutations of {0,1,...,n-1} |
| permgroup.h | Implements groups of permutations on n objects |
| permsn.h | Provides lookup and iteration over all permutations in S_n |
| polynomial.h | Implements single variable polynomials over arbitrary rings |
| primes.h | Support for finding primes and factorising integers |
| rational.h | Deals with artibrary precision rational numbers |
| ring.h | Utilities for writing generic code that can work in arbitrary (mathematical) rings |
| vector.h | Provides a fast and generic vector class |
| ► packet | |
| attachment.h | A packet that contains an arbitrary file attachment |
| container.h | Contains a packet whose entire life purpose is to contain other packets |
| packet.h | Deals with packets of information that form the working data objects |
| packettype.h | Defines constants for the various packet types known to Regina |
| script.h | Contains a packet representing a script |
| text.h | Contains a packet representing a text string |
| ► progress | |
| progresstracker.h | Facilitates progress tracking and cancellation for long operations |
| ► snappea | |
| examplesnappea.h | Offers several ready-made example SnapPea triangulations |
| snappeatriangulation.h | Provides access to the SnapPea kernel |
| ► split | |
| sigcensus.h | Deals with forming a census of splitting surface signatures |
| sigisomorphism.h | Deals with full and partial isomorphisms of splitting surface signatures |
| signature.h | Deals with signatures of splitting surfaces |
| ► subcomplex | |
| augtrisolidtorus.h | Deals with augmented triangular solid torus components of a triangulation |
| blockedsfs.h | Supports Seifert fibred spaces that are triangulated using saturated blocks |
| blockedsfsloop.h | Supports self-identified Seifert fibred spaces that are triangulated using saturated blocks |
| blockedsfspair.h | Supports joined pairs of Seifert fibred spaces that are triangulated using saturated blocks |
| blockedsfstriple.h | Supports joined sequences of three Seifert fibred spaces that are triangulated using saturated blocks |
| layeredchain.h | Deals with layered chains in a triangulation |
| layeredchainpair.h | Deals with layered chain pair components of a triangulation |
| layeredlensspace.h | Deals with layered lens space components of a triangulation |
| layeredloop.h | Deals with layered loop components of a triangulation |
| layeredsolidtorus.h | Deals with layered solid tori in a triangulation |
| layeredtorusbundle.h | Deals with layered torus bundle triangulations |
| layering.h | Assists with the analysis of layerings upon a torus boundary |
| pillowtwosphere.h | Deals with 2-spheres made from two triangles glued along their three edges |
| pluggedtorusbundle.h | Supports self-identified Seifert fibred spaces that are triangulated using a combination of thin I-bundles and saturated blocks |
| plugtrisolidtorus.h | Deals with plugged triangular solid torus components of a triangulation |
| satannulus.h | Deals with saturated two-triangle annuli within a Seifert fibred space |
| satblock.h | Deals with saturated blocks in triangulations of Seifert fibred spaces |
| satblocktypes.h | Describes several types of saturated blocks within Seifert fibred space triangulations |
| satregion.h | Supports connected regions of saturated blocks in triangulations of Seifert fibred spaces |
| snappeacensustri.h | Deals with 3-manifold triangulations from the SnapPea census |
| snappedball.h | Deals with snapped 3-balls in a triangulation |
| snappedtwosphere.h | Deals with 2-spheres made from two snapped 3-balls in a triangulation |
| spiralsolidtorus.h | Deals with spiralled solid tori in a triangulation |
| standardtri.h | Deals with triangulations whose structures are well-understood |
| trisolidtorus.h | Deals with triangular solid tori in a triangulation |
| trivialtri.h | Deals with a few specific hard-coded trivial triangulations |
| txicore.h | Provides various triangulations of the product of the torus and the interval |
| ► surface | |
| disc.h | Deals with individual normal discs and sets of normal discs in a normal surface |
| disctype.h | Deals with normal and almost normal disc types |
| normalcoords.h | Defines constants for normal surface coordinate systems |
| normalflags.h | Defines constants and flags for normal surface enumeration |
| normalsurface.h | Deals with an individual normal surface in a 3-manifold triangulation |
| normalsurfaces.h | Implements a collection of normal surfaces in a 3-manifold triangulation |
| prism.h | Deals with triangular prisms defined by slicing along normal quads in a tetrahedron |
| surfacefilter.h | Contains a packet that filters through normal surfaces |
| surfacefiltertype.h | Defines constants for normal surface filter types |
| ► treewidth | |
| treedecomposition.h | Deals with treewidth and tree decompositions, in particular for facet pairing graphs |
| ► triangulation | |
| ► alias | |
| face.h | Provides dimension-specific aliases for dimension-agnostic routines |
| facenumber.h | Provides dimension-specific aliases for dimension-agnostic routines |
| isomorphism.h | Provides dimension-specific aliases for dimension-agnostic routines |
| ► detail | |
| boundarycomponent.h | Implementation details for boundary components of triangulations |
| component.h | Implementation details for connected components of triangulations |
| example.h | Implementation details for generating example triangulations in arbitrary dimension |
| face.h | Implementation details for lower-dimensional faces of triangulations |
| facenumbering.h | Implementation details for describing how subdim-faces are numbered within a dim-dimensional simplex |
| facetpairing.h | Implementation details for dual graphs of dim-dimensional triangulations |
| retriangulate.h | Traits classes and implementation details for retriangulation or link rewriting functions |
| simplex.h | Implementation details for top-dimensional simplices in a triangulation |
| strings.h | Implementation details that hard-code strings appropriate for each dimension |
| triangulation.h | Implementation details for triangulations of arbitrary dimension |
| ► dim2 | |
| component2.h | Internal header for connected components of a 2-manifold triangulation |
| triangle2.h | Internal header for triangular faces in a 2-manifold triangulation |
| triangulation2.h | Internal header for 2-dimensional triangulations |
| ► dim3 | |
| component3.h | Internal header for connected components of a 3-manifold triangulation |
| edge3.h | Internal header for edges in a 3-manifold triangulation |
| homologicaldata.h | Deals with all the details of the cellular homology of a manifold |
| tetrahedron3.h | Internal header for tetrahedra in a 3-manifold triangulation |
| triangle3.h | Internal header for triangles in a 3-manifold triangulation |
| triangulation3.h | Internal header for 3-dimensional triangulations |
| vertex3.h | Internal header for vertices in a 3-manifold triangulation |
| ► dim4 | |
| component4.h | Internal header for connected components of a 4-manifold triangulation |
| edge4.h | Internal header for edges in a 4-manifold triangulation |
| pentachoron4.h | Internal header for 4-dimensional simplices in a 4-manifold triangulation |
| tetrahedron4.h | Internal header for tetrahedra in a 4-manifold triangulation |
| triangle4.h | Internal header for triangles in a 4-manifold triangulation |
| triangulation4.h | Internal header for 4-dimensional triangulations |
| vertex4.h | Internal header for vertices in a 4-manifold triangulation |
| ► generic | |
| boundarycomponent.h | Internal header for boundary components of triangulations of arbitrary dimension |
| component.h | Internal header for connected components of triangulations of arbitrary dimension |
| face.h | Internal header for faces of triangulations of arbitrary dimension |
| faceembedding.h | Internal header for embeddings of faces within top-dimensional simplices |
| facetpairing.h | Internal header for dual graphs of triangulations of arbitrary dimension |
| isomorphism.h | Internal header for combinatorial isomorphisms between triangulations of arbitrary dimension |
| simplex.h | Internal header for top-dimensional simplices of triangulations of arbitrary dimension |
| triangulation.h | Internal header for working with triangulations of arbitrary dimension |
| cut.h | Supports cuts in objects that can be modelled by graphs, such as triangulations, facet pairings, and links |
| dim2.h | Includes all headers for working with 2-dimensional triangulations. This includes headers for the main class Triangulation<2>, as well as the face classes Face<2,subdim>, the component classes Component<2> and BoundaryComponent<2>, and the isomorphism class Isomorphism<2> |
| dim3.h | Includes all headers for working with 3-dimensional triangulations. This includes headers for the main class Triangulation<3>, as well as the face classes Face<3,subdim>, the component classes Component<3> and BoundaryComponent<3>, and the isomorphism class Isomorphism<3> |
| dim4.h | Includes all headers for working with 4-dimensional triangulations. This includes headers for the main class Triangulation<4>, as well as the face classes Face<4,subdim>, the component classes Component<4> and BoundaryComponent<4>, and the isomorphism class Isomorphism<4> |
| example.h | Offers some example higher-dimensional triangulations as starting points for testing code or getting used to Regina |
| example2.h | Offers some example 2-dimensional triangulations as starting points for testing code or getting used to Regina |
| example3.h | Offers some example 3-dimensional triangulations as starting points for testing code or getting used to Regina |
| example4.h | Offers some example 4-dimensional triangulations as starting points for testing code or getting used to Regina |
| facenumbering.h | Describes the way in which subdim-faces are numbered within a dim-dimensional simplex |
| facepair.h | Deals with simple pairs of face numbers |
| facetpairing.h | Includes headers for working with facet pairings in all dimensions except for dimension 3. Specifically, this includes headers for the class FacetPairing<dim> for all dim ≠ 3 |
| facetpairing3.h | Deals with dual graphs of 3-manifold triangulations |
| facetspec.h | Allows lightweight representation of individual facets of simplices |
| forward.h | Provides forward declarations of Regina's triangulation-related classes |
| generic.h | Includes all headers for working with higher-dimensional triangulations. This includes headers for the main class Triangulation<dim>, as well as the face classes Face<dim,subdim>, the component classes Component<dim> and BoundaryComponent<dim>, and the isomorphism class Isomorphism<dim>, for all dimensions dim ≥ 5 |
| isosigencoding.h | Defines different encodings for isomorphism signatures |
| isosigtype.h | Defines different types of isomorphism signatures |
| pachner.h | Explains terminology used with Pachner moves on triangulations |
| ► utilities | |
| base64.h | Routines for base64 encoding and decoding taken and modified from the Base64 project at base64.sourceforge.net |
| bitmanip.h | Optimised classes for bitwise analysis and manipulation of native data types |
| bitmask.h | Provides optimised bitmasks of arbitrary length |
| boolset.h | Provides various types that extend the standard boolean |
| exception.h | Defines some general exception types thrown by Regina. Note that some exceptions that are specific to a particular piece of machinery (e.g., snapshotting, or errors within the SnapPea kernel) are defined in other headers alongside that machinery |
| fixedarray.h | Provides a fixed-size array whose size is determined at runtime |
| flags.h | A template class for handling bitwise combinations of enum flags |
| i18nutils.h | Various classes and routines for working with internationalisation and character encodings |
| intutils.h | Miscellaneous utility classes for analysing the built-in integer types at compile time |
| listview.h | Lightweight objects that offer access to lists |
| markedvector.h | Provides space-efficient arrays with fast object-to-index lookup |
| memstream.h | Supports input streams that read directly from memory |
| osutils.h | Provides miscellaneous helper routines that are specific to particular operating systems |
| qitmask.h | Provides optimised "base 4 bitmasks" of fixed length |
| randutils.h | Provides threadsafe random number generation |
| sequence.h | Support for temporary lightweight sequences |
| shortarray.h | Provides short stack-based arrays of bounded size |
| sigutils.h | General helper tools for isomorphism signatures, knot signatures and the like |
| snapshot.h | Provides a mechanism for snapshotting objects at a particular moment in time |
| stringutils.h | Provides various routines for use with C++ strings |
| tableview.h | Lightweight objects that offer access to multi-dimensional tables |
| tightencoding.h | Provides short ASCII printable encodings for various objects |
| topologylock.h | Support for "topology locks" on objects such as triangulations or links |
| trieset.h | Provides a trie-like structure for storing sets |
| typeutils.h | Provides helper classes for use with template metaprogramming and type analysis. The need for these will likely diminish as Regina switches to use more modern C++ standards |
| xmlutils.h | Various classes and routines for XML manipulation. The libxml2 library is used to do most of the underlying work |
| docs.h | Contains miscellaneous documentation |
| regina-core.h | Core definitions that must be included in every Regina header file |