Regina Calculation Engine

Contains the entire Regina calculation engine. More...
Namespaces  
namespace  boost 
Miscellaneous utility classes taken or modified from the Boost C++ libraries.  
namespace  i18n 
Various classes and routines for working with internationalisation and character encodings.  
namespace  python 
Utility classes and routines to assist with Python bindings for the calculation engine.  
namespace  stl 
Miscellaneous utility classes and routines taken or modified from the Standard Template Library.  
namespace  xml 
Various classes and routines for XML manipulation, some taken or modified from the libxml++ library.  
Classes  
class  NAbelianGroup 
Represents a finitely generated abelian group. More...  
struct  NGroupExpressionTerm 
Represents a power of a generator in a group presentation. More...  
class  NGroupExpression 
Represents an expression involving generators from a group presentation or a free group. More...  
class  NGroupPresentation 
Represents a finite presentation of a group. More...  
class  NHomGroupPresentation 
Represents a homomorphism between groups which are described via finite presentations. More...  
class  NMarkedAbelianGroup 
Represents a finitely generated abelian group given by a chain complex. More...  
class  NHomMarkedAbelianGroup 
Represents a homomorphism of finitely generated abelian groups. More...  
class  NXMLAbelianGroupReader 
An XML element reader that reads a single abelian group. More...  
class  NXMLGroupPresentationReader 
An XML element reader that reads a single group presentation. More...  
class  NAngleStructureVector 
A vector of integers used to indirectly store the individual angles in an angle structure. More...  
class  NAngleStructure 
Represents an angle structure on a triangulation. More...  
struct  PacketInfo< PACKET_ANGLESTRUCTURELIST > 
Stores information about the angle structure list packet. More...  
class  NAngleStructureList 
A packet representing a collection of angle structures on a triangulation. More...  
class  NXMLAngleStructureReader 
An XML element reader that reads a single angle structure. More...  
class  NXMLAngleStructureListReader 
An XML packet reader that reads a single angle structure list. More...  
class  Dim2Census 
A utility class used to search for triangulations across one or more 2manifold census databases. More...  
class  Dim2EdgePairing 
Represents a specific pairwise matching of edges of triangles. 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  NCensusDB 
Stores the location and description of one of Regina's inbuilt census databases. More...  
class  NCensusHit 
Stores a single "hit" indicating that some given triangulation has been located in one of Regina's inbuilt 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 inbuilt census databases. More...  
class  NCensus 
A utility class used to search for triangulations across one or more 3manifold census databases. More...  
class  NFacePairing 
Represents a specific pairwise matching of tetrahedron faces. More...  
class  NGenericFacetPairing 
A dimensionagnostic base class that represents a pairwise matching of facets of dimdimensional simplices. More...  
class  NGenericGluingPerms 
A dimensionagnostic base class that represents a specific set of gluing permutations to complement a particular pairwise matching of simplex facets. 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  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...  
class  NCompactSearcher 
A gluing permutation search class that offers a specialised search algorithm for when only compact (finite) 3manifold triangulations are required. More...  
class  NClosedPrimeMinSearcher 
A gluing permutation search class that offers a specialised search algorithm for when (i) only closed prime minimal P2irreducible triangulations are required, and (ii) the given face pairing has order at least three. More...  
class  NHyperbolicMinSearcher 
A gluing permutation search class that offers a specialised search algorithm for when only minimal ideal triangulations of cusped finitevolume hyperbolic 3manifolds are required. More...  
class  Dim2BoundaryComponent 
Represents a component of the boundary of a 2manifold triangulation. More...  
class  Dim2Component 
Represents a component of a 2manifold triangulation. More...  
class  Dim2EdgeEmbedding 
Details how an edge in the 1skeleton of a 2manifold triangulation forms part of an individual triangle. More...  
class  Dim2Edge 
Represents an edge in the 1skeleton of a 2manifold triangulation. More...  
class  Dim2ExampleTriangulation 
This class offers routines for constructing sample 2manifold triangulations of various types. More...  
class  Dim2Isomorphism 
Represents a combinatorial isomorphism from one 2manifold triangulation into another. More...  
class  Dim2Triangle 
Represents a triangular face in a 2manifold triangulation. More...  
struct  PacketInfo< PACKET_DIM2TRIANGULATION > 
Stores information about the 2manifold triangulation packet. More...  
class  Dim2Triangulation 
Stores the triangulation of a 2manifold along with its various cellular structures and other information. More...  
class  Dim2VertexEmbedding 
Details how a vertex in the skeleton of a 2manifold triangulation forms part of an individual triangle. More...  
class  Dim2Vertex 
Represents a vertex in the skeleton of a 2manifold triangulation. More...  
class  NXMLDim2TriangulationReader 
An XML packet reader that reads a single 2manifold triangulation. More...  
class  NDoubleDescription 
Implements a modified double description method for polytope vertex enumeration. More...  
class  NEnumConstraintList 
Represents an individual validity constraint for use with polytope vertex enumeration. More...  
class  NHilbertCD 
Implements a modified ContejeanDevie 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  NMaxAdmissible 
Used to enumerate all maximal admissible faces of a polyhedral cone under a given set of admissibility constraints. More...  
class  LPMatrix 
A matrix class for use with linear programming. 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  LPConstraintSubspace 
A subclass of LPConstraintBase used for constraints defined entirely by homogeneous linear equations. More...  
class  LPConstraintNone 
A donothing class that imposes no additional linear constraints on 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  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  BanConstraintBase 
A base class for additional banning and marking constraints that we can place on tree traversal algorithms. More...  
class  BanNone 
A donothing class that bans no coordinates and marks no coordinates. More...  
class  BanBoundary 
A class that bans normal disc types that meet the boundary of the underlying triangulation. More...  
class  BanTorusBoundary 
A class that bans and marks disc types associated with torus boundary components. More...  
class  LPInitialTableaux 
Stores an adjusted matrix of homogeneous linear matching equations based on a given triangulation, in sparse form. 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  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  NTreeEnumeration 
The main entry point for the tree traversal algorithm to enumerate all vertex normal or almost normal surfaces in a 3manifold triangulation. More...  
class  NTautEnumeration 
The main entry point for the tree traversal algorithm to enumerate all taut angle structures in a 3manifold triangulation. More...  
class  NTreeSingleSoln 
The main entry point for the tree traversal / branching algorithm to locate a single nontrivial normal surface satisfying given constraints within a 3manifold triangulation. More...  
class  NTypeTrie 
A trie that stores a set of type vectors of a fixed length. More...  
class  NPosOrder 
A comparison object that sorts hyperplanes by position vectors. More...  
class  NFileInfo 
Stores information about a Regina data file, including file type and version. More...  
class  NGlobalDirs 
Provides global routines that return directories in which various components of Regina are installed on the system. More...  
struct  DimTraits 
A template class that provides typedefs and other information about working in each of the supported dimensions. More...  
struct  NFacetSpec 
A lightweight class used to refer to a particular facet of a particular simplex in a triangulation. More...  
class  NGenericIsomorphism 
A dimensionagnostic base class that represents a combinatorial isomorphism from one dimmanifold triangulation into another. More...  
class  NGenericTriangulation 
A generic helper class for working with triangulations of arbitrary dimension. 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  NHandlebody 
Represents an arbitrary handlebody. More...  
class  NLensSpace 
Represents a general lens space. More...  
class  NManifold 
Represents a particular 3manifold. 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 nonorientable. More...  
class  NSFSAltSet 
Provides a variety of alternative representations of a single bounded Seifert fibred space. More...  
class  NSimpleSurfaceBundle 
Represents a particularly simple closed surface bundle over the circle. More...  
class  NSnapPeaCensusManifold 
Represents a 3manifold from the SnapPea cusped census. More...  
class  NTorusBundle 
Represents a torus bundle over the circle. More...  
class  NNativeInteger 
A wrapper class for a native, fixedprecision integer type of the given size. More...  
struct  InfinityBase 
Internal base classes for use with NIntegerBase, templated on whether we should support infinity as an allowed value. More...  
class  NIntegerBase 
Represents an arbitrary precision integer. More...  
class  NMatrix 
Represents a matrix of elements of the given type T. More...  
class  NMatrixRing 
Represents a matrix of elements from a given ring T. More...  
class  NMatrix2 
Represents a 2by2 integer matrix. More...  
class  NMatrixInt 
Represents a matrix of arbitrary precision integers. 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  NPrimes 
A helper class for finding primes and factorising integers. 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...  
class  NVector 
An optimised vector class of elements from a given ring T. More...  
struct  PacketInfo< PACKET_CONTAINER > 
Stores information about the container packet. More...  
class  NContainer 
A packet that simply contains other packets. More...  
struct  PacketInfo 
A template that stores information about a particular type of packet. 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...  
struct  PacketInfo< PACKET_PDF > 
Stores information about the PDF packet. More...  
class  NPDF 
A packet that can hold a PDF document. More...  
struct  PacketInfo< PACKET_SCRIPT > 
Stores information about the script packet. More...  
class  NScript 
A packet representing a Python script that can be run. More...  
struct  PacketInfo< PACKET_TEXT > 
Stores information about the text packet. More...  
class  NText 
A packet representing a text string. More...  
class  NXMLPacketReader 
An XML element reader that reads the data for an individual packet. More...  
class  NXMLContainerReader 
An XML packet reader that reads a single container. 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  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  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  NProgressTracker 
Manages progress tracking and cancellation polling for long operations. More...  
class  NProgressMessage 
A progress report in which the current state of progress is stored as a string message. More...  
struct  NProgressStateNumeric 
A simple structure used for passing around a numeric state of progress. More...  
class  NProgressNumber 
A progress report in which the current state of progress is stored as a number of items completed. 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...  
struct  PacketInfo< PACKET_SNAPPEATRIANGULATION > 
Stores information about the SnapPea triangulation packet. More...  
class  NCusp 
Represents a single cusp of a SnapPea triangulation. More...  
class  NSnapPeaTriangulation 
Offers direct access to the SnapPea kernel from within Regina. More...  
class  NXMLSnapPeaReader 
An XML packet reader that reads a single SnapPea triangulation. More...  
class  NSigCensus 
A utility class used by formSigCensus(). More...  
class  NSigPartialIsomorphism 
Represents a partial isomorphism between two splitting surface signatures. More...  
class  NSignature 
Represents a signature of a splitting surface in a closed 3manifold triangulation. More...  
class  NAugTriSolidTorus 
Represents an augmented triangular solid torus component of a triangulation. 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  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  NPillowTwoSphere 
Represents a 2sphere 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 Ibundle over the torus, possibly with layerings in between. More...  
class  NPlugTriSolidTorus 
Represents a plugged triangular solid torus component of a triangulation. 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...  
class  NSatBlockStarter 
Contains a triangulation of a saturated block along with the accompanying saturated block description. More...  
class  NSatBlockStarterSet 
Represents a set of starter blocks that can be used for identifying triangulations of Seifert fibred spaces. More...  
class  NSatBlockStarterSearcher 
A helper class for locating and using starter blocks within a triangulation. More...  
class  NSatMobius 
A degenerate zerotetrahedron saturated block that corresponds to attaching a Mobius band to a single annulus boundary. More...  
class  NSatLST 
A saturated block that is a layered solid torus. More...  
class  NSatTriPrism 
A saturated block that is a threetetrahedron triangular prism. More...  
class  NSatCube 
A saturated block that is a sixtetrahedron cube. More...  
class  NSatReflectorStrip 
A saturated block that is a reflector strip. More...  
class  NSatLayering 
A degenerate saturated block that is a single tetrahedron wrapped around so that two opposite edges touch. More...  
struct  NSatBlockSpec 
Describes how a single saturated block forms a part of a larger saturated region. More...  
class  NSatRegion 
A large saturated region in a Seifert fibred space formed by joining together saturated blocks. More...  
class  NSnapPeaCensusTri 
Represents a 3manifold triangulation from the SnapPea cusped census. More...  
class  NSnappedBall 
Represents a snapped 3ball in a triangulation. More...  
class  NSnappedTwoSphere 
Represents a 2sphere made from two snapped 3balls 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 wellunderstood. More...  
class  NTriSolidTorus 
Represents a threetetrahedron triangular solid torus in a triangulation. More...  
class  NTrivialTri 
Represents one of a few particular hardcoded 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 sixtetrahedron NTxICore triangulation that does not fit neatly into other families. More...  
struct  NDiscSpec 
Specifies a single normal disc in a 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...  
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  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...  
struct  NormalInfo 
A template that stores information about a particular normal coordinate system. More...  
class  NNormalSurfaceVector 
Stores the vector of a single normal surface in a 3manifold. More...  
class  NNormalSurface 
Represents a single normal surface in a 3manifold. More...  
struct  PacketInfo< PACKET_NORMALSURFACELIST > 
Stores information about the normal surface list packet. More...  
class  NNormalSurfaceList 
A packet representing a collection of normal surfaces in a 3manifold. More...  
struct  NPrismSpec 
Specifies a single triangular prism in a tetrahedron. More...  
class  NPrismSetSurface 
Represents the set of prisms defined by slicing along all the quads in a particular normal surface. More...  
struct  NormalInfo< NS_AN_STANDARD > 
Stores information about standard almost normal coordinates. More...  
class  NNormalSurfaceVectorANStandard 
An almost normal surface vector using standard trianglequadoct coordinates. More...  
class  NNormalSurfaceVectorMirrored 
A normal surface vector that is mirrored in another coordinate system to avoid frequent lengthy calculations. More...  
struct  NormalInfo< NS_ORIENTED > 
Stores information about transversely oriented standard normal coordinates. More...  
class  NNormalSurfaceVectorOriented 
A normal surface vector using transversely oriented standard (trianglequad) coordinates. More...  
struct  NormalInfo< NS_ORIENTED_QUAD > 
Stores information about transversely oriented quad normal coordinates. More...  
class  NNormalSurfaceVectorOrientedQuad 
A normal surface vector using transversely oriented quadrilateral coordinates. More...  
struct  NormalInfo< NS_QUAD > 
Stores information about quad normal coordinates. More...  
class  NNormalSurfaceVectorQuad 
A normal surface vector using quad coordinates. More...  
struct  NormalInfo< NS_AN_QUAD_OCT > 
Stores information about quadoct almost normal coordinates. More...  
class  NNormalSurfaceVectorQuadOct 
An almost normal surface vector using quadoct coordinates. More...  
struct  NormalInfo< NS_STANDARD > 
Stores information about standard normal coordinates. More...  
class  NNormalSurfaceVectorStandard 
A normal surface vector using standard trianglequad coordinates. More...  
struct  SurfaceFilterInfo 
A template that stores information about a particular type of normal surface filter. More...  
struct  PacketInfo< PACKET_SURFACEFILTER > 
Stores information about the normal surface filter packet type. More...  
struct  SurfaceFilterInfo< NS_FILTER_DEFAULT > 
Stores information about the default acceptall surface filter. More...  
class  NSurfaceFilter 
A packet that accepts or rejects normal surfaces. More...  
class  NSurfaceSubset 
Represents a subset of a normal surface list. More...  
class  NXMLFilterReader 
An XML element reader that reads the specific details of a normal surface filter. More...  
class  NXMLFilterPacketReader 
An XML packet reader that reads a single surface filter. More...  
class  NXMLNormalSurfaceReader 
An XML element reader that reads a single normal surface. More...  
class  NXMLNormalSurfaceListReader 
An XML packet reader that reads a single normal surface list. More...  
struct  SurfaceFilterInfo< NS_FILTER_COMBINATION > 
Stores information about the combination surface filter. More...  
class  NSurfaceFilterCombination 
A normal surface filter that simply combines other filters. More...  
struct  SurfaceFilterInfo< NS_FILTER_PROPERTIES > 
Stores information about the propertybased surface filter. More...  
class  NSurfaceFilterProperties 
A normal surface filter that filters by basic properties of the normal surface. More...  
class  NBoundaryComponent 
Represents a component of the boundary of a triangulation. More...  
class  NComponent 
Represents a component of a triangulation. More...  
class  NEdgeEmbedding 
Details how an edge in the skeleton forms part of an individual tetrahedron. More...  
class  NEdge 
Represents an edge in the skeleton of a triangulation. More...  
class  NExampleTriangulation 
This class offers routines for constructing sample 3manifold triangulations of various types. More...  
class  NFacePair 
Represents a pair of tetrahedron face numbers. More...  
class  NHomologicalData 
Data type that deals with all the detailed homological information in a manifold. 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  NPermItS4 
An iterator class that runs through all 24 permutations of four elements. More...  
class  NTetrahedron 
Represents a tetrahedron in a triangulation. More...  
class  NTriangleEmbedding 
Details how a triangle in the skeleton forms part of an individual tetrahedron. More...  
class  NTriangle 
Represents a triangle in the skeleton of a triangulation. More...  
struct  PacketInfo< PACKET_TRIANGULATION > 
Stores information about the 3manifold triangulation packet. More...  
class  NTriangulation 
Stores the triangulation of a 3manifold along with its various cellular structures and other information. More...  
class  NVertexEmbedding 
Details how a vertex in the skeleton forms part of an individual tetrahedron. More...  
class  NVertex 
Represents a vertex in the skeleton of a triangulation. More...  
class  NXMLTriangulationReader 
An XML packet reader that reads a single triangulation. More...  
class  GenericBitManipulator 
A generic class for bitwise analysis and manipulation of native data types. More...  
class  BitManipulator 
An optimised class for bitwise analysis and manipulation of native data types. More...  
class  Flags 
A class representing a bitwise combination of flags defined by an enumeration type. More...  
struct  IntOfSize 
Gives access to kbyte integer types, where k is a constant that is not known until compile time. More...  
struct  FuncNew 
An adaptable generator used to create objects using default constructors. 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...  
struct  FuncNewClonePtr 
An adaptable unary function used to create objects using the clone() method. More...  
struct  FuncDelete 
An adaptable unary function used to deallocate objects. More...  
class  NBitmask 
A bitmask that can store arbitrarily many trueorfalse bits. More...  
class  NBitmask1 
A small but extremely fast bitmask class that can store up to 8 * sizeof(T) trueorfalse bits. More...  
class  NBitmask2 
A small but extremely fast bitmask class that can store up to 8 * sizeof(T) + 8 * sizeof(U) trueorfalse bits. More...  
class  NTriBool 
A threeway 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  NBoolSet 
A set of booleans. More...  
class  NListOnCall 
Offers a hardcoded list of expensive objects that should only be created if they are required. More...  
class  NMarkedElement 
A base class for elements of NMarkedVector. More...  
class  NMarkedVector 
A vector of objects with fast, spaceefficient reverse lookup of array indices. More...  
class  StoreValue 
An NProperty storage policy indicating that the property should be held by value. 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  NPropertyBase 
A base class that provides routines shared by all properties, regardless of their individual NProperty template parameters. More...  
class  NProperty 
Stores a calculable property of an object. 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  NMutex 
A mutual exclusion device (mutex) used to ensure that different threads do not interfere when working with the same data. More...  
class  NThread 
Provides very basic thread handling. More...  
class  NTrieSet 
A trielike data structure for storing and retriving sets. 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  NXMLCallback 
Provides the callbacks for an XMLParser required to parse an entire file using a series of NXMLElementReader objects. More...  
class  NXMLElementReader 
Used to read the contents of a single XML element. More...  
class  NXMLCharsReader 
A reader for an XML element that contains only characters. More...  
class  LessDeref 
An adaptable binary function used to compare the objects to which pointers are pointing. More...  
struct  Returns 
A convenience base class for a function object, which does nothing beyond provide a ReturnType typedef. 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  ZBuffer 
A common base class for compression/decompression stream buffers. More...  
class  CompressionBuffer 
An output stream buffer that compresses data as it is written. More...  
class  DecompressionBuffer 
An input stream buffer that decompresses data as it is read. More...  
class  CompressionStream 
An output stream that compresses data as it is written. More...  
class  DecompressionStream 
An input stream that decompresses data as it is read. 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 2manifold triangulation. More...  
typedef NFacetSpec< 3 >  NTetFace 
A lightweight class used to refer to a particular face of a particular tetrahedron in a 3manifold 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 trueorfalse 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 trueorfalse bits. More...  
typedef InternalBitmaskLen32::Type  NBitmaskLen32 
A convenience typedef that gives a small and extremely fast bitmask class capable of holding at least 32 trueorfalse bits. More...  
typedef InternalBitmaskLen64::Type  NBitmaskLen64 
A convenience typedef that gives a small and extremely fast bitmask class capable of holding at least 64 trueorfalse 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 trueorfalse 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 trueorfalse bits. More...  
typedef InternalQitmaskLen32::Type  NQitmaskLen32 
A convenience typedef that gives a small and extremely fast qitmask class capable of holding at least 32 trueorfalse bits. More...  
typedef InternalQitmaskLen64::Type  NQitmaskLen64 
A convenience typedef that gives a small and extremely fast qitmask class capable of holding at least 64 trueorfalse 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 trueorfalse 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 trueorfalse bits. More...  
typedef InternalTritmaskLen32::Type  NTritmaskLen32 
A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 32 trueorfalse bits. More...  
typedef InternalTritmaskLen64::Type  NTritmaskLen64 
A convenience typedef that gives a small and extremely fast tritmask class capable of holding at least 64 trueorfalse 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 3manifold 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 UTF8 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 (commaseparated value) file, using standard trianglequadrilateral 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 (commaseparated 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 3manifold 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 3manifold 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 SnapPeaspecific 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 SnapPeaspecific 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 humanreadable 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 nonzero. 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 nonnegative. More...  
template<class R >  
bool  isNonPositive (R x) 
Determines whether the given real number is nonpositive. 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 4element permutation to a 5element permutation. More...  
REGINA_API NPerm4  perm5to4 (const NPerm5 &p) 
Expresses the given 5element permutation as a 4element permutation. More...  
REGINA_API NPerm4  perm3to4 (const NPerm3 &p) 
Converts the given 3element permutation to a 4element permutation. More...  
REGINA_API NPerm3  perm4to3 (const NPerm4 &p) 
Expresses the given 4element permutation as a 3element permutation. More...  
REGINA_API NPerm5  perm3to5 (const NPerm3 &p) 
Converts the given 3element permutation to a 5element permutation. More...  
REGINA_API NPerm3  perm5to3 (const NPerm5 &p) 
Expresses the given 5element permutation as a 3element 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 registrybased template function forCoords(). More...  
template<typename VoidFunctionObject >  
void  forFlavour (NormalCoords coords, VoidFunctionObject func) 
A deprecated alias for the registrybased 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 threeway 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 threeway 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...  
Contains the entire Regina calculation engine.
Define REGINA_VERIFY_LPDATA to check invariants as the algorithm runs.
Bug: Derive from regina::boost::noncopyable where appropriate.
Feature (longterm): Enhance the test suite for the calculation engine.
This checking is slow and can increase the running time significantly.
typedef NNativeInteger<sizeof(long)> regina::NNativeLong 
NNativeLong is a typedef for the NNativeInteger template class whose underlying integer type is a native long.

inline 
Writes the given integer to the given output stream.
out  the output stream to which to write. 
i  the integer to write. 

inline 
Writes the given integer to the given output stream.
out  the output stream to which to write. 
i  the integer to write. 
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:
The three ellipses in the example above will be replaced with integers, representing:
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 nonLinux 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.
/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.out  the output stream to which usage information will be written. 