regina Namespace Reference

Contains the entire Regina calculation engine. More...

## Namespaces

| boost
| Miscellaneous utility classes taken or modified from the Boost C++ libraries.
| i18n
| Various classes and routines for working with internationalisation and character encodings.
| python
| Utility classes and routines to assist with Python bindings for the calculation engine.
| stl
| Miscellaneous utility classes and routines taken or modified from the Standard Template Library.
| xml
| Various classes and routines for XML manipulation, some taken or modified from the libxml++ library.

## Classes

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

## Typedefs

typedef void(* | UseDim2GluingPerms) (const Dim2GluingPermSearcher *, void *)
| A routine used to do arbitrary processing upon a particular set of triangle gluing permutations. More...
typedef bool(* | AcceptTriangulation) (NTriangulation *, void *)
| A legacy typedef that is identical to NCensus::AcceptTriangulation. More...
typedef std::list< NIsomorphism * > | NFacePairingIsoList
| A legacy typedef provided for backward compatibility only. More...
typedef void(* | UseFacePairing) (const NFacePairing *, const NFacePairingIsoList *, void *)
| A legacy typedef provided for backward compatibility only. More...
typedef void(* | UseGluingPerms) (const NGluingPermSearcher *, void *)
| A routine used to do arbitrary processing upon a particular set of tetrahedron gluing permutations. More...
typedef NDoubleDescription | NDoubleDescriptor
| A legacy typedef provided for backward compatibility only. More...
typedef NFacetSpec< 2 > | Dim2TriangleEdge
| A lightweight class used to refer to a particular edge of a particular triangle in a 2-manifold triangulation. More...
typedef NFacetSpec< 3 > | NTetFace
| A lightweight class used to refer to a particular face of a particular tetrahedron in a 3-manifold triangulation. More...
typedef NIntegerBase< true > | NLargeInteger
| NLargeInteger is a typedef for NIntegerBase<true>, which offers arbitrary precision integers with support for infinity. More...
typedef NIntegerBase< false > | NInteger
| NInteger is a typedef for NIntegerBase<false>, which offers arbitrary precision integers without support for infinity. More...
typedef NNativeInteger< sizeof(long)> | NNativeLong
| NNativeLong is a typedef for the NNativeInteger template class whose underlying integer type is a native long. More...
typedef std::list< NSigPartialIsomorphism * > | NSigIsoList
| A list of partial isomorphisms on splitting surface signatures. More...
typedef void(* | UseSignature) (const NSignature &, const NSigIsoList &, void *)
| A routine used to do arbitrary processing upon a splitting surface signature and its automorphisms. More...
typedef NewFunction1< NNormalSurfaceVector, size_t > | NewNormalSurfaceVector
| A legacy typedef provided for backward compatibility only. More...
typedef regina::Flags< NormalListFlags > | NormalList
| A combination of flags for types of normal surface lists. More...
typedef regina::Flags< NormalAlgFlags > | NormalAlg
| A combination of flags for types of normal surface lists. More...
typedef NPerm4 | NPerm
| A legacy typedef provided for backward compatibility only. More...
typedef NBitmask1< unsigned char > | NBitmaskLen8
| A convenience typedef that gives a small and extremely fast bitmask class capable of holding at least 8 true-or-false bits. More...
typedef NBitmask1< unsigned int > | NBitmaskLen16
| A convenience typedef that gives a small and extremely fast bitmask class capable of holding at least 16 true-or-false bits. More...
typedef InternalBitmaskLen32::Type | NBitmaskLen32
| A convenience typedef that gives a small and extremely fast bitmask class capable of holding at least 32 true-or-false bits. More...
typedef InternalBitmaskLen64::Type | NBitmaskLen64
| A convenience typedef that gives a small and extremely fast bitmask class capable of holding at least 64 true-or-false bits. More...
typedef NQitmask1< unsigned char > | NQitmaskLen8
| A convenience typedef that gives a small and extremely fast qitmask class capable of holding at least 8 true-or-false bits. More...
typedef NQitmask1< unsigned int > | NQitmaskLen16
| A convenience typedef that gives a small and extremely fast qitmask class capable of holding at least 16 true-or-false bits. More...
typedef InternalQitmaskLen32::Type | NQitmaskLen32
| A convenience typedef that gives a small and extremely fast qitmask class capable of holding at least 32 true-or-false bits. More...
typedef InternalQitmaskLen64::Type | NQitmaskLen64
| A convenience typedef that gives a small and extremely fast qitmask class capable of holding at least 64 true-or-false bits. More...
typedef pthread_t | NThreadID
| The type used for a thread identifier. More...
typedef NTritmask1< unsigned char > | NTritmaskLen8
| A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 8 true-or-false bits. More...
typedef NTritmask1< unsigned int > | NTritmaskLen16
| A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 16 true-or-false bits. More...
typedef InternalTritmaskLen32::Type | NTritmaskLen32
| A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 32 true-or-false bits. More...
typedef InternalTritmaskLen64::Type | NTritmaskLen64
| A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 64 true-or-false bits. More...

## Enumerations

enum | PacketType { PACKET_CONTAINER = 1, PACKET_TEXT = 2, PACKET_TRIANGULATION = 3, PACKET_NORMALSURFACELIST = 6, PACKET_SCRIPT = 7, PACKET_SURFACEFILTER = 8, PACKET_ANGLESTRUCTURELIST = 9, PACKET_PDF = 10, PACKET_DIM2TRIANGULATION = 15, PACKET_SNAPPEATRIANGULATION = 16 }
| Represents the different types of packet that are available in Regina. More...
enum | SurfaceExportFields { surfaceExportName = 0x0001, surfaceExportEuler = 0x0002, surfaceExportOrient = 0x0004, surfaceExportSides = 0x0008, surfaceExportBdry = 0x0010, surfaceExportLink = 0x0020, surfaceExportType = 0x0040, surfaceExportNone = 0, surfaceExportAllButName = 0x007e, surfaceExportAll = 0x007f }
| Used to describe a field, or a set of fields, that can be exported alongside a normal surface list. More...
enum | NormalCoords { NS_STANDARD = 0, NS_QUAD = 1, NS_AN_LEGACY = 100, NS_AN_QUAD_OCT = 101, NS_AN_STANDARD = 102, NS_EDGE_WEIGHT = 200, NS_TRIANGLE_ARCS = 201, NS_FACE_ARCS = 201, NS_ORIENTED = 300, NS_ORIENTED_QUAD = 301, NS_ANGLE = 400 }
| Represents different coordinate systems that can be used for enumerating and displaying normal surfaces. More...
enum | NormalListFlags { NS_LIST_DEFAULT = 0x0000, NS_EMBEDDED_ONLY = 0x0001, NS_IMMERSED_SINGULAR = 0x0002, NS_VERTEX = 0x0004, NS_FUNDAMENTAL = 0x0008, NS_LEGACY = 0x4000, NS_CUSTOM = 0x8000 }
| Represents different lists of normal surfaces that might be constructed for a given triangulation. More...
enum | NormalAlgFlags { NS_ALG_DEFAULT = 0x0000, NS_VERTEX_VIA_REDUCED = 0x0001, NS_VERTEX_STD_DIRECT = 0x0002, NS_VERTEX_TREE = 0x0010, NS_VERTEX_DD = 0x0020, NS_HILBERT_PRIMAL = 0x0100, NS_HILBERT_DUAL = 0x0200, NS_HILBERT_CD = 0x0400, NS_HILBERT_FULLCONE = 0x0800, NS_ALG_LEGACY = 0x4000, NS_ALG_CUSTOM = 0x8000 }
| Represents options and variants of algorithms for enumerating various types of normal surfaces. More...
enum | SurfaceFilterType { NS_FILTER_DEFAULT = 0, NS_FILTER_PROPERTIES = 1, NS_FILTER_COMBINATION = 2 }
| Represents different types of filter classes that can be used to filter lists of normal surfaces in 3-manifold triangulations. More...

## Functions

REGINA_API std::ostream & | operator<< (std::ostream &out, const NGroupExpressionTerm &term)
| Writes the given term to the given output stream. More...
REGINA_API const char * | getVersionString ()
| Returns the full version number of this calculation engine. More...
REGINA_API int | getVersionMajor ()
| Returns the major version number of this calculation engine. More...
REGINA_API int | getVersionMinor ()
| Returns the minor version number of this calculation engine. More...
REGINA_API bool | versionUsesUTF8 (const char *version)
| Did the given version of Regina consistently use UTF-8 in its data files? More...
REGINA_API int | testEngine (int value)
| Tests to see if an interface can successfully communicate with the underlying C++ calculation engine. More...
REGINA_API bool | writeXMLFile (const char *filename, NPacket *subtree, bool compressed=true)
| Deprecated routine that writes a packet tree (or subtree) to a Regina data file using Regina's native XML file format. More...
REGINA_API NPacket * | readXMLFile (const char *filename)
| Deprecated routine that reads a packet tree from the given Regina data file using Regina's native XML file format. More...
REGINA_API NPacket * | readFileMagic (const std::string &filename)
| Deprecated routine that reads a packet tree from the given Regina data file using Regina's native XML file format. More...
REGINA_API bool | writeCSVStandard (const char *filename, NNormalSurfaceList &surfaces, int additionalFields=surfaceExportAll)
| Deprecated function that exports the given list of normal surfaces as a plain text CSV (comma-separated value) file, using standard triangle-quadrilateral coordinates. More...
REGINA_API bool | writeCSVEdgeWeight (const char *filename, NNormalSurfaceList &surfaces, int additionalFields=surfaceExportAll)
| Deprecated function that exports the given list of normal surfaces as a plain text CSV (comma-separated value) file, using edge weight coordinates. More...
REGINA_API NContainer * | readDehydrationList (const char *filename, unsigned colDehydrations=0, int colLabels=-1, unsigned long ignoreLines=0)
| Reads a list of dehydrated triangulations from the given text file. More...
REGINA_API NContainer * | readIsoSigList (const char *filename, unsigned dimension=3, unsigned colSigs=0, int colLabels=-1, unsigned long ignoreLines=0)
| Reads a list of isomorphism signatures from the given text file. More...
REGINA_API NTriangulation * | readOrb (const char *filename)
| Reads a triangulation from the given Orb / Casson file. More...
REGINA_API NPDF * | readPDF (const char *filename)
| Deprecated function that reads a PDF document from the given file. More...
REGINA_API bool | writePDF (const char *filename, const NPDF &pdf)
| Deprecated function that writes the given PDF document to the given file. More...
REGINA_API bool | writeRecogniser (const char *filename, NTriangulation &tri)
| Deprecated function that writes the given triangulation to the given file in Matveev's 3-manifold recogniser format. More...
REGINA_API bool | writeRecognizer (const char *filename, NTriangulation &tri)
| Deprecated function that writes the given triangulation to the given file in Matveev's 3-manifold recogniser format. More...
REGINA_API NTriangulation * | readSnapPea (const char *filename)
| Deprecated function that reads the given SnapPea data file and converts the result to Regina's NTriangulation class (thereby losing some SnapPea-specific information in the process). More...
REGINA_API NTriangulation * | readSnapPea (std::istream &in)
| Deprecated function that reads the contents of a SnapPea data file from the given input stream, and converts the result to Regina's NTriangulation class (thereby losing some SnapPea-specific information in the process). More...
REGINA_API bool | writeSnapPea (const char *filename, const NTriangulation &tri)
| Deprecated function that writes the given triangulation to the given file using SnapPea's native file format. More...
REGINA_API void | writeSnapPea (std::ostream &out, const NTriangulation &tri)
| Deprecated function that writes the given triangulation to the given output stream using SnapPea's native file format. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NSFSFibre &f)
| Writes the given fibre in human-readable format to the given output stream. More...
template<class R >
bool | isZero (R x)
| Determines whether the given real number is zero. More...
template<class R >
bool | isNonZero (R x)
| Determines whether the given real number is non-zero. More...
template<class R >
bool | isPositive (R x)
| Determines whether the given real number is strictly positive. More...
template<class R >
bool | isNegative (R x)
| Determines whether the given real number is strictly negative. More...
template<class R >
bool | isNonNegative (R x)
| Determines whether the given real number is non-negative. More...
template<class R >
bool | isNonPositive (R x)
| Determines whether the given real number is non-positive. More...
REGINA_API void | smithNormalForm (NMatrixInt &matrix)
| Transforms the given integer matrix into Smith normal form. More...
REGINA_API void | smithNormalForm (NMatrixInt &matrix, NMatrixInt &rowSpaceBasis, NMatrixInt &rowSpaceBasisInv, NMatrixInt &colSpaceBasis, NMatrixInt &colSpaceBasisInv)
| A Smith normal form algorithm that also returns change of basis matrices. More...
REGINA_API void | metricalSmithNormalForm (NMatrixInt &matrix, NMatrixInt *rowSpaceBasis=0, NMatrixInt *rowSpaceBasisInv=0, NMatrixInt *colSpaceBasis=0, NMatrixInt *colSpaceBasisInv=0)
| An alternative Smith normal form algorithm that also returns change of basis matrices. More...
REGINA_API unsigned | rowBasis (NMatrixInt &matrix)
| Find a basis for the row space of the given matrix. More...
REGINA_API unsigned | rowBasisAndOrthComp (NMatrixInt &input, NMatrixInt &complement)
| Finds a basis for the row space of the given matrix, as well as an "incremental" basis for its orthogonal complement. More...
REGINA_API void | columnEchelonForm (NMatrixInt &M, NMatrixInt &R, NMatrixInt &Ri, const std::vector< unsigned > &rowList)
| Transforms a given matrix into column echelon form with respect to a collection of rows. More...
REGINA_API std::auto_ptr< NMatrixInt > | preImageOfLattice (const NMatrixInt &hom, const std::vector< NLargeInteger > &sublattice)
| Given a homomorphism from Z^n to Z^k and a sublattice of Z^k, compute the preimage of this sublattice under this homomorphism. More...
REGINA_API std::auto_ptr< NMatrixInt > | torsionAutInverse (const NMatrixInt &input, const std::vector< NLargeInteger > &invF)
| Given an automorphism of an abelian group, this procedure computes the inverse automorphism. More...
template<bool supportInfinity>
REGINA_API std::ostream & | operator<< (std::ostream &out, const NIntegerBase< supportInfinity > &i)
| Writes the given integer to the given output stream. More...
template<bool supportInfinity>
REGINA_API NIntegerBase< supportInfinity > | operator+ (long lhs, const NIntegerBase< supportInfinity > &rhs)
| Adds the given native integer to the given large integer. More...
template<bool supportInfinity>
REGINA_API NIntegerBase< supportInfinity > | operator* (long lhs, const NIntegerBase< supportInfinity > &rhs)
| Multiplies the given native integer with the given large integer. More...
template<int bytes>
REGINA_API std::ostream & | operator<< (std::ostream &out, const NNativeInteger< bytes > &i)
| Writes the given integer to the given output stream. More...
template<bool supportInfinity>
NIntegerBase< supportInfinity > | operator+ (long lhs, const NIntegerBase< supportInfinity > &rhs)
| Adds the given native integer to the given large integer. More...
template<bool supportInfinity>
NIntegerBase< supportInfinity > | operator* (long lhs, const NIntegerBase< supportInfinity > &rhs)
| Multiplies the given native integer with the given large integer. More...
template<int bytes>
std::ostream & | operator<< (std::ostream &out, const NNativeInteger< bytes > &i)
| Writes the given integer to the given output stream. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NMatrix2 &mat)
| Writes the given matrix to the given output stream. More...
REGINA_API bool | simpler (const NMatrix2 &m1, const NMatrix2 &m2)
| Determines whether the first given matrix is more aesthetically pleasing than the second. More...
REGINA_API bool | simpler (const NMatrix2 &pair1first, const NMatrix2 &pair1second, const NMatrix2 &pair2first, const NMatrix2 &pair2second)
| Determines whether the first given pair of matrices is more aesthetically pleasing than the second pair. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NPerm3 &p)
| Writes a string representation of the given permutation to the given output stream. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NPerm4 &p)
| Writes a string representation of the given permutation to the given output stream. More...
REGINA_API NPerm4 | faceOrdering (int face)
| Returns a permutation mapping (0,1,2) to the vertices of the given tetrahedron face in their canonical order. More...
REGINA_API NPerm4 | edgeOrdering (int edge)
| Returns a permutation mapping (0,1) to the vertices of the given tetrahedron edge in their canonical order. More...
REGINA_API std::string | faceDescription (int face)
| Returns a string representation of the permutation mapping (0,1,2) to the vertices of the given tetrahedron face in their canonical order, as described in faceOrdering(). More...
REGINA_API std::string | faceDescription (const NPerm4 &facePerm)
| Returns a string representation of the given permutation with only the images of 0, 1 and 2 included. More...
REGINA_API std::string | edgeDescription (int edge)
| Returns a string representation of the permutation mapping (0,1) to the vertices of the given tetrahedron edge in their canonical order, as described in edgeOrdering(). More...
REGINA_API std::string | edgeDescription (const NPerm4 &edgePerm)
| Returns a string representation of the given permutation with only the images of 0 and 1 included. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NPerm5 &p)
| Writes a string representation of the given permutation to the given output stream. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NRational &rat)
| Writes the given rational to the given output stream. More...
REGINA_API long | reducedMod (long k, long modBase)
| Reduces k modulo modBase to give the smallest possible absolute value. More...
REGINA_API long | gcd (long a, long b)
| Calculates the greatest common divisor of two signed integers. More...
REGINA_API long | gcdWithCoeffs (long a, long b, long &u, long &v)
| Calculates the greatest common divisor of two given integers and finds the smallest coefficients with which these integers combine to give their gcd. More...
REGINA_API long | lcm (long a, long b)
| Calculates the lowest common multiple of two signed integers. More...
REGINA_API unsigned long | modularInverse (unsigned long n, unsigned long k)
| Calculates the multiplicative inverse of one integer modulo another. More...
REGINA_API void | factorise (unsigned long n, std::list< unsigned long > &factors)
| Calculates the prime factorisation of the given integer. More...
REGINA_API void | primesUpTo (const NLargeInteger &roof, std::list< NLargeInteger > &primes)
| Determines all primes up to and including the given upper bound. More...
template<class T >
std::ostream & | operator<< (std::ostream &out, const NVector< T > &vector)
| Writes the given vector to the given output stream. More...
REGINA_API NPerm5 | perm4to5 (const NPerm4 &p)
| Converts the given 4-element permutation to a 5-element permutation. More...
REGINA_API NPerm4 | perm5to4 (const NPerm5 &p)
| Expresses the given 5-element permutation as a 4-element permutation. More...
REGINA_API NPerm4 | perm3to4 (const NPerm3 &p)
| Converts the given 3-element permutation to a 4-element permutation. More...
REGINA_API NPerm3 | perm4to3 (const NPerm4 &p)
| Expresses the given 4-element permutation as a 3-element permutation. More...
REGINA_API NPerm5 | perm3to5 (const NPerm3 &p)
| Converts the given 3-element permutation to a 5-element permutation. More...
REGINA_API NPerm3 | perm5to3 (const NPerm5 &p)
| Expresses the given 5-element permutation as a 3-element permutation. More...
REGINA_API NPacket * | open (const char *filename)
| Reads a Regina data file, and returns the corresponding packet tree. More...
template<typename FunctionObject >
FunctionObject::ReturnType | forPacket (PacketType packetType, FunctionObject func, typename FunctionObject::ReturnType defaultReturn)
| Allows the user to call a template function whose template parameter matches a given value of PacketType, which is not known until runtime. More...
template<typename VoidFunctionObject >
void | forPacket (PacketType packetType, VoidFunctionObject func)
| Allows the user to call a template function whose template parameter matches a given value of PacketType, which is not known until runtime. More...
REGINA_API unsigned long | formSigCensus (unsigned order, UseSignature use, void *useArgs=0)
| Forms a census of all splitting surface signatures of the given order. More...
template<typename FunctionObject >
FunctionObject::ReturnType | forCoords (NormalCoords coords, FunctionObject func, typename FunctionObject::ReturnType defaultReturn)
| Allows the user to call a template function whose template parameter matches a given value of NormalCoords, which is not known until runtime. More...
template<typename VoidFunctionObject >
void | forCoords (NormalCoords coords, VoidFunctionObject func)
| Allows the user to call a template function whose template parameter matches a given value of NormalCoords, which is not known until runtime. More...
template<typename FunctionObject >
FunctionObject::ReturnType | forFlavour (NormalCoords coords, FunctionObject func, typename FunctionObject::ReturnType defaultReturn)
| A deprecated alias for the registry-based template function forCoords(). More...
template<typename VoidFunctionObject >
void | forFlavour (NormalCoords coords, VoidFunctionObject func)
| A deprecated alias for the registry-based template function forCoords(). More...
template<typename FunctionObject >
FunctionObject::ReturnType | forFilter (SurfaceFilterType filter, FunctionObject func, typename FunctionObject::ReturnType defaultReturn)
| Allows the user to call a template function whose template parameter matches a given value of SurfaceFilterType, which is not known until runtime. More...
template<typename VoidFunctionObject >
void | forFilter (SurfaceFilterType filter, VoidFunctionObject func)
| Allows the user to call a template function whose template parameter matches a given value of SurfaceFilterType, which is not known until runtime. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NDiscSpec &spec)
| Writes the given disc specifier to the given output stream. More...
REGINA_API bool | numberDiscsAwayFromVertex (int discType, int vertex)
| Determines whether or not normal discs of the given type are numbered away from the given vertex. More...
REGINA_API bool | discOrientationFollowsEdge (int discType, int vertex, int edgeStart, int edgeEnd)
| Determines whether or not the natural boundary orientation of a normal disc of the given type follows the given directed normal arc. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NDiscType &type)
| Writes the given disc type to the given output stream. More...
REGINA_API NNormalSurfaceVector * | makeZeroVector (const NTriangulation *triangulation, NormalCoords coords)
| Returns a new normal surface vector of the appropriate length for the given triangulation and the given coordinate system. More...
REGINA_API NMatrixInt * | makeMatchingEquations (const NTriangulation *triangulation, NormalCoords coords)
| Creates a new set of normal surface matching equations for the given triangulation using the given coordinate system. More...
REGINA_API NEnumConstraintList * | makeEmbeddedConstraints (const NTriangulation *triangulation, NormalCoords coords)
| Creates a new set of validity constraints representing the condition that normal surfaces be embedded. More...
NormalList | operator| (NormalListFlags lhs, NormalListFlags rhs)
| Returns the bitwise OR of the two given flags. More...
NormalAlg | operator| (NormalAlgFlags lhs, NormalAlgFlags rhs)
| Returns the bitwise OR of the two given flags. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NPrismSpec &spec)
| Writes the given prism specifier to the given output stream. More...
REGINA_API size_t | base64Length (size_t bytes)
| Returns the number of base64 characters required to encode the given number of bytes. More...
REGINA_API bool | isBase64 (char ch)
| Determines whether the given character is a base64 printable character as used by the base64 routines in Regina. More...
REGINA_API void | base64Encode (const char *in, size_t inlen, char *out, size_t outlen)
| Encodes the given sequence of raw bytes in base64, and writes the results into a preallocated output buffer. More...
REGINA_API size_t | base64Encode (const char *in, size_t inlen, char **out)
| Encodes the given sequence of raw bytes in base64, and passes back a newly allocated array containing the results. More...
REGINA_API bool | base64Decode (const char *in, size_t inlen, char *out, size_t *outlen)
| Decodes the given sequence of base64 characters, and writes the resulting raw bytes into a preallocated output buffer. More...
REGINA_API bool | base64Decode (const char *in, size_t inlen, char **out, size_t *outlen)
| Decodes the given sequence of base64 characters, and passes back a newly allocated array containing the results. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NBitmask &mask)
| Writes the given bitmask to the given output stream as a sequence of zeroes and ones. More...
template<typename T >
std::ostream & | operator<< (std::ostream &out, const NBitmask1< T > &mask)
| Writes the given bitmask to the given output stream as a sequence of zeroes and ones. More...
template<typename T , typename U >
std::ostream & | operator<< (std::ostream &out, const NBitmask2< T, U > &mask)
| Writes the given bitmask to the given output stream as a sequence of zeroes and ones. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NTriBool &set)
| Writes the given three-way boolean to the given output stream. More...
REGINA_API std::ostream & | operator<< (std::ostream &out, const NBoolSet &set)
| Writes the given boolean set to the given output stream. More...
template<typename T >
std::ostream & | operator<< (std::ostream &out, const NQitmask1< T > &mask)
| Writes the given qitmask to the given output stream as a sequence of digits (0, 1, 2 and/or 3). More...
template<typename T , typename U >
std::ostream & | operator<< (std::ostream &out, const NQitmask2< T, U > &mask)
| Writes the given qitmask to the given output stream as a sequence of digits (0, 1, 2 and/or 3). More...
template<typename T >
std::ostream & | operator<< (std::ostream &out, const NTritmask1< T > &mask)
| Writes the given tritmask to the given output stream as a sequence of digits (0, 1 and/or 2). More...
template<typename T , typename U >
std::ostream & | operator<< (std::ostream &out, const NTritmask2< T, U > &mask)
| Writes the given tritmask to the given output stream as a sequence of digits (0, 1 and/or 2). More...
REGINA_API void | writeResUsage (std::ostream &out)
| Writes time and memory usage for the current process to the given output stream. More...
template<typename T >
T * | clonePtr (T *cloneMe)
| A simple routine for cloning an object if and only if it exists. More...
template<typename T >
T * | clonePtr (const std::auto_ptr< T > &cloneMe)
| A simple routine for cloning an object if and only if it exists. More...
REGINA_API char * | duplicate (const std::string &str)
| Creates a new C string that is a duplicate of the given C++ string. More...
REGINA_API bool | startsWith (const std::string &str, const std::string &prefix)
| Determines whether the given C++ string begins with the given prefix. More...
REGINA_API std::string | stripWhitespace (const std::string &str)
| Strips all whitespace from the beginning and end of the given C++ string. More...
REGINA_API bool | valueOf (const std::string &str, int &dest)
| Converts the entire given string to an integer and reports whether this conversion was successful. More...
REGINA_API bool | valueOf (const std::string &str, unsigned &dest)
| Converts the entire given string to an unsigned integer and reports whether this conversion was successful. More...
REGINA_API bool | valueOf (const std::string &str, long &dest)
| Converts the entire given string to a long integer and reports whether this conversion was successful. More...
REGINA_API bool | valueOf (const std::string &str, unsigned long &dest)
| Converts the entire given string to an unsigned long integer and reports whether this conversion was successful. More...
template<bool supportInfinity>
REGINA_API bool | valueOf (const std::string &str, NIntegerBase< supportInfinity > &dest)
| Converts the entire given string to an arbitrary precision integer and reports whether this conversion was successful. More...
REGINA_API bool | valueOf (const std::string &str, double &dest)
| Converts the entire given string to a double precision real number and reports whether this conversion was successful. More...
REGINA_API bool | valueOf (const std::string &str, bool &dest)
| Converts the entire given string to a boolean and reports whether this conversion was successful. More...
REGINA_API bool | valueOf (const std::string &str, NTriBool &dest)
| Converts the entire given string to a three-way boolean (true, false or unknown) and reports whether this conversion was successful. More...
REGINA_API bool | valueOf (const std::string &str, NBoolSet &dest)
| Converts the entire given string to a set of booleans and reports whether this conversion was successful. More...
template<class OutputIterator >
REGINA_API unsigned | basicTokenise (OutputIterator results, const std::string &str)
| Decomposes the given string into tokens. More...
REGINA_API std::string | stringToToken (const char *str)
| Returns a token derived from the given string. More...
REGINA_API std::string | stringToToken (const std::string &str)
| Returns a token derived from the given string. More...

## Variables

REGINA_API const double | epsilon
| A very small positive real designed to accommodate for rounding error. More...
REGINA_API const NPerm4 * | allPermsS4
| An array of size 24 containing all possible permutations of four elements. More...
REGINA_API const unsigned * | allPermsS4Inv
| An array of size 24 containing the inverses of the permutations in the array allPermsS4. More...
REGINA_API const NPerm4 * | orderedPermsS4
| An array of size 24 containing all possible permutations of four elements in lexicographical order. More...
REGINA_API const NPerm4 * | allPermsS3
| An array of size 6 containing all possible permutations of three elements. More...
REGINA_API const unsigned * | allPermsS3Inv
| An array of size 6 containing the inverses of the permutations in the array allPermsS3. More...
REGINA_API const NPerm4 * | orderedPermsS3
| An array of size 6 containing all possible permutations of three elements in lexicographical order. More...
REGINA_API const NPerm4 * | allPermsS2
| An array of size 2 containing all possible permutations of two elements. More...
REGINA_API const unsigned * | allPermsS2Inv
| An array of size 2 containing the inverses of the permutations in the array allPermsS2. More...
REGINA_API const int | vertexSplit [4][4]
| Lists which vertex splits separate which pairs of vertices. More...
REGINA_API const int | vertexSplitMeeting [4][4][2]
| Lists which vertex splits meet which edges. More...
REGINA_API const int | vertexSplitDefn [3][4]
| Lists the vertices which each vertex split splits. More...
REGINA_API const int | vertexSplitPartner [3][4]
| Lists the second vertex with which each vertex is paired under each vertex split. More...
REGINA_API const char | vertexSplitString [3][6]
| Contains strings describing which vertices each vertex split splits. More...
REGINA_API const NPerm4 | triDiscArcs [4][3]
| Lists in consecutive order the directed normal arcs that form the boundary of each type of triangular normal disc. More...
REGINA_API const NPerm4 | quadDiscArcs [3][4]
| Lists in consecutive order the directed normal arcs that form the boundary of each type of quadrilateral normal disc. More...
REGINA_API const NPerm4 | octDiscArcs [3][8]
| Lists in consecutive order the directed normal arcs that form the boundary of each type of octagonal normal disc. More...
REGINA_API const int | edgeNumber [4][4]
| `edgeNumber[i][j]` is the number of the edge linking vertices `i` and `j` in a tetrahedron. More...
REGINA_API const int | edgeStart [6]
| `edgeStart[k]` is the vertex of a tetrahedron at which edge `k` of the tetrahedron begins. More...
REGINA_API const int | edgeEnd [6]
| `edgeEnd[k]` is the vertex of a tetrahedron at which edge `k` of the tetrahedron ends. More...

## Detailed Description

Contains the entire Regina calculation engine.

Define REGINA_VERIFY_LPDATA to check invariants as the algorithm runs.

Todo:

  Bug: Derive from regina::boost::noncopyable where appropriate.

  Feature (long-term): Enhance the test suite for the calculation engine.

This checking is slow and can increase the running time significantly.

## Typedef Documentation

typedef NNativeInteger<sizeof(long)> regina::NNativeLong

NNativeLong is a typedef for the NNativeInteger template class whose underlying integer type is a native long.

Python:
  Not present.

## Function Documentation

template<int bytes>

REGINA_API std::ostream& regina::operator<< | ( | std::ostream & | out,
|  | const NNativeInteger< bytes > & | i
| ) |  |

inline

Writes the given integer to the given output stream.

Parameters

  out | the output stream to which to write.
  i | the integer to write.

Returns
  a reference to out.

template<int bytes>

std::ostream& regina::operator<< | ( | std::ostream & | out,
|  | const NNativeInteger< bytes > & | i
| ) |  |

inline

Writes the given integer to the given output stream.

Parameters

  out | the output stream to which to write.
  i | the integer to write.

Returns
  a reference to out.

REGINA_API void regina::writeResUsage | ( | std::ostream & | out | ) |

Writes time and memory usage for the current process to the given output stream.

Information is gathered from the `/proc` filesystem, which means that this routine will only write meaningful information under a Linux system where `/proc` is mounted.

Specifically, this routine reads information on the running process from `/proc/self/stat`, and writes a short string to the given output stream of the form:

utime=..., stime=..., vsize=...

The three ellipses in the example above will be replaced with integers, representing:

- the number jiffies that this process has been scheduled in user mode (the utime field);
- the number jiffies that this process has been scheduled in kernel mode (the stime field);
- the the virtual memory size in bytes (the vsize field).

The description of these three fields is taken directly from the `proc(5)` manpage. Note that the length of a jiffy can differ from system to system; see the `time(7)` manpage for details.

The output will not contain a newline, and the given output stream will not be flushed.

If `/proc/self/stat` cannot be read, this routine will write a short message to that effect to the given output stream (which means that this utility is safe to call under non-Linux operating systems, although it will of course be useless in such scenarios).

If `/proc/self/stat` can be read but contains unexpected information, the behaviour of this routine is undefined.

Python:
  This routine does not take any arguments; instead the stream out is assumed to be standard output.

Warning
  Currently this routine allows at most 255 characters for the comm field in `/proc/self/stat` (which stores the executable filename along with surrounding parentheses). If the comm field is too long (i.e., the executable filename is too long), then this routine will not be able to parse `/proc/self/stat`, and will write a note to this effect to the given output stream. If you encounter this problem, you should be able to fix it by renaming your executable to something shorter.

Parameters

  out | the output stream to which usage information will be written.

Copyright © 1999-2014, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).