| docs.h | Contains miscellaneous documentation |
| engine.h | Provides global routines for interfacing with the Regina calculation engine |
| regina-core.h | Core definitions that must be included in every Regina header file |
| shareableobject.h | Deals with objects that can be shared from the calculation engine with the outside world |
| algebra/nabeliangroup.h | Deals with finitely generated abelian groups |
| algebra/ngrouppresentation.h | Deals with finite presentations of groups |
| algebra/nmarkedabeliangroup.h | Deals with abelian groups given by chain complexes |
| algebra/nxmlalgebrareader.h | Deals with parsing XML data for various algebraic structures |
| angle/nanglestructure.h | Deals with angle structures on triangulations |
| angle/nanglestructurelist.h | Contains a packet representing a collection of angle structures on a triangulation |
| angle/nxmlanglestructreader.h | Deals with parsing XML data for angle structure lists |
| census/ncensus.h | Deals with forming a census of all 3-manifold triangulations of a given size |
| census/nfacepairing.h | Deals with pairing off tetrahedron faces in a triangulation census |
| census/ngluingperms.h | Deals with selecting gluing permutations to complement a particular pairing of tetrahedron faces |
| census/ngluingpermsearcher.h | Supports searching through all possible sets of tetrahedron gluing permutations for a given tetrahedron face pairing |
| enumerate/ndoubledescription.h | Provides a modified double description method for polytope vertex enumeration |
| enumerate/ndoubledescriptor.h | Provides a modified double description method for polytope vertex enumeration |
| enumerate/nenumconstraint.h | Deals with validity constraints in polytope vertex enumeration |
| file/nfile.h | Deals with reading and writing packet trees to and from old-style binary files |
| file/nfileinfo.h | Deals with determining information about Regina data files |
| file/nfilepropertyreader.h | Deals with reading individual properties of objects from old-style binary files |
| file/nglobaldirs.h | Gives information about system installation directories |
| file/nresources.h | Provides methods for accessing old-style binary file-like resources |
| file/nxmlcallback.h | Deals with parsing XML program data at the file level |
| file/nxmlelementreader.h | Deals with parsing XML program data at the tag level |
| file/nxmlfile.h | Deals with storing program data (including packet trees) in XML data files |
| foreign/csvsurfacelist.h | Exports normal surface lists to plain text CSV files |
| foreign/dehydration.h | Allows reading lists of dehydrated triangulations |
| foreign/isosig.h | Allows reading lists of isomorphism signatures |
| foreign/orb.h | Allows reading Orb / Casson triangulation files |
| foreign/pdf.h | Allows reading and writing PDF documents |
| foreign/snappea.h | Allows reading and writing SnapPea files |
| manifold/ngraphloop.h | Deals with graph manifolds formed from self-identified Seifert fibred spaces |
| manifold/ngraphpair.h | Deals with graph manifolds formed from pairs of Seifert fibred spaces |
| manifold/ngraphtriple.h | Deals with graph manifolds formed from sequences of three Seifert fibred spaces |
| manifold/nhandlebody.h | Deals with arbitrary handlebodies |
| manifold/nlensspace.h | Deals with general lens spaces |
| manifold/nmanifold.h | Deals with the underlying 3-manifolds of triangulations |
| manifold/notation.h | Explains notation used for describing various types of 3-manifold |
| manifold/nsfs.h | Deals with general Seifert fibred spaces |
| manifold/nsfsaltset.h | Assists with providing different representations of the same Seifert fibred space |
| manifold/nsimplesurfacebundle.h | Deals with simple closed surface bundles |
| manifold/nsnappeacensusmfd.h | Deals with 3-manifolds from the SnapPea census |
| manifold/ntorusbundle.h | Deals with torus bundles over the circle |
| maths/approx.h | Provides facilities for working around rounding errors when dealing with real numbers |
| maths/matrixops.h | Provides various complex matrix calculations |
| maths/nlargeinteger.h | Deals with arbitrary precision integers |
| maths/nmatrix.h | Deals with matrices of elements of various types |
| maths/nmatrix2.h | Deals with 2x2 integer matrices |
| maths/nmatrixint.h | Deals with matrices of arbitrary precision integers |
| maths/nperm3.h | Deals with permutations of {0,1,2} |
| maths/nperm4.h | Deals with permutations of {0,1,2,3} |
| maths/nprimes.h | Support for finding primes and factorising integers |
| maths/nrational.h | Deals with artibrary precision rational numbers |
| maths/nray.h | Provides a fast class for rational rays rooted at the origin |
| maths/numbertheory.h | Provides miscellaneous number theory routines |
| maths/nvector.h | Provides a fast and generic vector class |
| packet/ncontainer.h | Contains a packet whose entire life purpose is to contain other packets |
| packet/npacket.h | Deals with packets of information that form the working data objects |
| packet/npacketlistener.h | Deals with objects that can listen for packet events |
| packet/npdf.h | A packet that contains a PDF document |
| packet/nscript.h | Contains a packet representing a script |
| packet/ntext.h | Contains a packet representing a text string |
| packet/nxmlpacketreader.h | Deals with parsing XML data for individual packets |
| packet/nxmlpacketreaders.h | Deals with parsing XML data for various basic packet types |
| packet/packetregistry.h | Contains a registry of packet types known to the engine |
| progress/nprogress.h | Allows external interfaces to obtain progress reports when running long calculations |
| progress/nprogressmanager.h | Facilitates sharing NProgress objects between an operation thread and an external interface |
| progress/nprogresstypes.h | Provides specific methods of representing progress reports |
| snappea/nsnappeatriangulation.h | Allows Regina triangulations to interact with the SnapPea kernel |
| split/nsigcensus.h | Deals with forming a census of splitting surface signatures |
| split/nsigisomorphism.h | Deals with full and partial isomorphisms of splitting surface signatures |
| split/nsignature.h | Deals with signatures of splitting surfaces |
| subcomplex/naugtrisolidtorus.h | Deals with augmented triangular solid torus components of a triangulation |
| subcomplex/nblockedsfs.h | Supports closed Seifert fibred spaces that are triangulated using saturated blocks |
| subcomplex/nblockedsfsloop.h | Supports self-identified Seifert fibred spaces that are triangulated using saturated blocks |
| subcomplex/nblockedsfspair.h | Supports joined pairs of Seifert fibred spaces that are triangulated using saturated blocks |
| subcomplex/nblockedsfstriple.h | Supports joined sequences of three Seifert fibred spaces that are triangulated using saturated blocks |
| subcomplex/nl31pillow.h | Deals with triangular pillow L(3,1) components of a triangulation |
| subcomplex/nlayeredchain.h | Deals with layered chains in a triangulation |
| subcomplex/nlayeredchainpair.h | Deals with layered chain pair components of a triangulation |
| subcomplex/nlayeredlensspace.h | Deals with layered lens space components of a triangulation |
| subcomplex/nlayeredloop.h | Deals with layered loop components of a triangulation |
| subcomplex/nlayeredsolidtorus.h | Deals with layered solid tori in a triangulation |
| subcomplex/nlayeredsurfacebundle.h | Deals with layered surface bundle triangulations |
| subcomplex/nlayering.h | Assists with the analysis of layerings upon a torus boundary |
| subcomplex/npillowtwosphere.h | Deals with 2-spheres made from two faces glued along their three edges |
| subcomplex/npluggedtorusbundle.h | Supports self-identified Seifert fibred spaces that are triangulated using a combination of thin I-bundles and saturated blocks |
| subcomplex/nplugtrisolidtorus.h | Deals with plugged triangular solid torus components of a triangulation |
| subcomplex/nsatannulus.h | Deals with saturated two-face annuli within a Seifert fibred space |
| subcomplex/nsatblock.h | Deals with saturated blocks in triangulations of Seifert fibred spaces |
| subcomplex/nsatblockstarter.h | Provides a hard-coded list of saturated blocks to use as starting points for recognising larger Seifert fibred spaces |
| subcomplex/nsatblocktypes.h | Describes several types of saturated blocks within Seifert fibred space triangulations |
| subcomplex/nsatregion.h | Supports connected regions of saturated blocks in triangulations of Seifert fibred spaces |
| subcomplex/nsnappeacensustri.h | Deals with 3-manifold triangulations from the SnapPea census |
| subcomplex/nsnappedball.h | Deals with snapped 3-balls in a triangulation |
| subcomplex/nsnappedtwosphere.h | Deals with 2-spheres made from two snapped 3-balls in a triangulation |
| subcomplex/nspiralsolidtorus.h | Deals with spiralled solid tori in a triangulation |
| subcomplex/nstandardtri.h | Deals with triangulations whose structures are well-understood |
| subcomplex/ntrisolidtorus.h | Deals with triangular solid tori in a triangulation |
| subcomplex/ntrivialtri.h | Deals with a few specific trivial triangulations |
| subcomplex/ntxicore.h | Provides various triangulations of the product of the torus and the interval |
| surfaces/filterregistry.h | Contains a registry of normal surface filtering classes known to the engine. Each such class should be a subclass of NSurfaceFilter |
| surfaces/flavourregistry.h | Contains a registry of coordinate system flavours known to the engine that can actually be used to create and store normal surfaces in 3-manifold triangulations |
| surfaces/ndisc.h | Deals with individual normal discs and sets of normal discs in a normal surface |
| surfaces/ndisctype.h | Deals with normal and almost normal disc types |
| surfaces/nnormalsurface.h | Deals with an individual normal surface in a 3-manifold triangulation |
| surfaces/nnormalsurfacelist.h | Contains a packet representing a collection of normal surfaces in a 3-manifold |
| surfaces/nprism.h | Deals with triangular prisms defined by slicing along normal quads in a tetrahedron |
| surfaces/nsanstandard.h | Implements almost normal surface vectors using standard triangle-quad-oct coordinates |
| surfaces/nsmirrored.h | Provides a normal surface vector that is mirrored in another coordinate system to avoid frequent lengthy calculations |
| surfaces/nsquad.h | Implements normal surface vectors using quad coordinates |
| surfaces/nsquadoct.h | Implements almost normal surface vectors using quad-oct coordinates |
| surfaces/nsstandard.h | Implements normal surface vectors using standard triangle-quad coordinates |
| surfaces/nsurfacefilter.h | Contains a packet that filters through normal surfaces |
| surfaces/nsurfaceset.h | Provides access to a collection of normal surfaces |
| surfaces/nsurfacesubset.h | Provides subsets of normal surface sets |
| surfaces/nxmlfilterreader.h | Deals with parsing XML data for normal surface filters |
| surfaces/nxmlsurfacereader.h | Deals with parsing XML data for normal surface lists |
| surfaces/sfcombination.h | Contains a normal surface filter that simply combines other filters |
| surfaces/sfproperties.h | Contains a normal surface filter that filters by basic properties |
| triangulation/nboundarycomponent.h | Deals with components of the boundary of a triangulation |
| triangulation/ncomponent.h | Deals with components of a triangulation |
| triangulation/nedge.h | Deals with edges in a triangulation |
| triangulation/nexampletriangulation.h | Offers several example triangulations as starting points for testing code or getting used to Regina |
| triangulation/nface.h | Deals with faces in a triangulation |
| triangulation/nfacepair.h | Deals with simple pairs of face numbers |
| triangulation/nhomologicaldata.h | Deals with all the details of the cellular homology of a manifold |
| triangulation/nisomorphism.h | Deals with combinatorial isomorphisms of triangulations |
| triangulation/nperm.h | A deprecated header for dealing with permutations of {0,1,2,3} |
| triangulation/npermit.h | Provides utilities for iterating through permutations |
| triangulation/ntetface.h | Allows lightweight representation of individual tetrahedron faces |
| triangulation/ntetrahedron.h | Deals with tetrahedra in a triangulation |
| triangulation/ntriangulation.h | Deals with triangulations |
| triangulation/nvertex.h | Deals with vertices in a triangulation |
| triangulation/nxmltrireader.h | Deals with parsing XML data for triangulation packets |
| utilities/base64.h | Routines for base64 encoding and decoding taken from the gnulib library |
| utilities/bitmanip.h | Optimised classes for bitwise analysis and manipulation of native data types |
| utilities/boostutils.h | Miscellaneous utility classes taken or modified from the Boost C++ libraries |
| utilities/hashmap.h | Includes the Standard Template Library hash map header |
| utilities/hashset.h | Includes the Standard Template Library hash set header |
| utilities/hashutils.h | Provides a variety of hash functions for use with the Standard Template Library |
| utilities/i18nutils.h | Various classes and routines for working with internationalisation and character encodings |
| utilities/memutils.h | Provides object creation and deletion functions for use with the Standard Template Library |
| utilities/nbitmask.h | Provides optimised bitmasks of arbitrary length |
| utilities/nbooleans.h | Provides various types that extend the standard boolean |
| utilities/nindexedarray.h | Deals with arrays of objects with fast object-to-index lookup |
| utilities/nlistoncall.h | Provides lists of expensive objects that are only created when required |
| utilities/nmarkedvector.h | Provides space-efficient arrays with fast object-to-index lookup |
| utilities/nproperty.h | Deals with calculable properties of individual objects |
| utilities/nthread.h | Provides very basic thread handling |
| utilities/ntrieset.h | Provides a trie-like structure for storing sets |
| utilities/osutils.h | Provides miscellaneous helper routines that are specific to particular operating systems |
| utilities/ptrutils.h | Provides function objects for use in the Standard Template Library that take pointers as arguments but work with the pointees instead |
| utilities/stlutils.h | Miscellaneous utility classes and routines taken or modified from the Standard Template Library |
| utilities/stringutils.h | Provides various routines for use with C++ strings |
| utilities/xmlutils.h | Various classes and routines for XML manipulation, some taken or modified from the libxml++ library. The libxml2 library is used to do most of the underlying work |
| utilities/zstream.h | Provides compressed I/O streams |
| python/globalarray.h | Allows global C++ arrays to be wrapped neatly in Python |