Regina 7.3 Calculation Engine
|
Contains the entire Regina calculation engine. More...
Namespaces | |
namespace | alias |
Contains helper classes that provide dimension-specific aliases for generic functions. | |
namespace | detail |
Contains implementation details and common functionality for Regina's dimension-agnostic classes. | |
namespace | i18n |
Various classes and routines for working with internationalisation and character encodings. | |
namespace | xml |
Various classes and routines for XML manipulation, some taken or modified from the libxml++ library. | |
Classes | |
class | AbelianGroup |
Represents a finitely generated abelian group. More... | |
class | AngleStructure |
Represents an angle structure on a triangulation. More... | |
class | AngleStructures |
A collection of angle structures on a 3-manifold triangulation. More... | |
class | Attachment |
A packet that can hold an arbitrary file attachment. More... | |
class | AugTriSolidTorus |
Represents an augmented triangular solid torus component of a triangulation. More... | |
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 | BanEdge |
A class that bans normal disc types that meet a particular edge of the underlying triangulation. 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... | |
struct | Base64SigEncoding |
General helper tools for signatures that use base64 encodings. More... | |
class | BitManipulator |
An optimised class for bitwise analysis and manipulation of native data types. More... | |
class | BitManipulatorBySize |
Contains implementation details for BitManipulator where we optimise according to the size of the underlying data type. More... | |
class | BitManipulatorByType |
Contains implementation details for BitManipulator where we optimise according to the underlying data type. More... | |
class | Bitmask |
A bitmask that can store arbitrarily many true-or-false bits. More... | |
class | Bitmask1 |
A small but extremely fast bitmask class that can store up to 8 * sizeof(T) true-or-false bits. More... | |
class | Bitmask2 |
A small but extremely fast bitmask class that can store up to 8 * sizeof(T) + 8 * sizeof(U) true-or-false bits. More... | |
class | BlockedSFS |
Represents a blocked Seifert fibred space (possibly with boundary). More... | |
class | BlockedSFSLoop |
Represents a blocked Seifert fibred space with two boundary tori that are joined together. More... | |
class | BlockedSFSPair |
Represents a blocked pair of Seifert fibred spaces joined along a single connecting torus. More... | |
class | BlockedSFSTriple |
Represents a blocked sequence of three Seifert fibred spaces joined along connecting tori. More... | |
class | BoolSet |
A set of booleans. More... | |
class | BoundaryComponent |
A component of the boundary of a dim-manifold triangulation. More... | |
struct | CallableArg |
A traits class that deduces the type of the argument in a given position for a callable object. More... | |
class | Census |
A utility class used to search for triangulations across one or more 3-manifold census databases. More... | |
class | CensusDB |
Stores the location and description of one of Regina's in-built census databases. More... | |
class | CensusHit |
Stores a single "hit" indicating that some given triangulation has been located in one of Regina's in-built census databases. More... | |
class | ChildIterator |
A forward iterator for iterating through all immediate children of a given packet. More... | |
class | ClosedPrimeMinSearcher |
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 | CompactSearcher |
A gluing permutation search class that offers a specialised search algorithm for when only compact (finite) 3-manifold triangulations are required. More... | |
class | Component |
A connected component of a dim-manifold triangulation. More... | |
class | Component< 2 > |
Represents a connected component of a 2-manifold triangulation. More... | |
class | Component< 3 > |
Represents a connected component of a 3-manifold triangulation. More... | |
class | Component< 4 > |
Represents a connected component of a 4-manifold triangulation. More... | |
class | Container |
A packet that simply contains other packets. More... | |
class | Crossing |
Represents a single crossing in a link diagram. More... | |
class | Cusp |
Used to return information about a single cusp of a SnapPea triangulation. More... | |
class | Cut |
A cut that separates a triangulation or facet pairing into two pieces. More... | |
class | Cyclotomic |
Represents an element of a cyclotomic field. More... | |
class | DegreeGreaterThan |
Deprecated function object used for sorting faces of triangulations by decreasing degree. More... | |
class | DegreeLessThan |
Deprecated function object used for sorting faces of triangulations by increasing degree. More... | |
class | DiscSetSurfaceDataImpl |
Stores a piece of data alongside every normal disc within a particular normal surface. More... | |
class | DiscSetTet |
Represents a set of normal discs inside a single tetrahedron. More... | |
class | DiscSetTetData |
Stores data of type T for every normal disc inside a single tetrahedron. More... | |
struct | DiscSpec |
Specifies a single normal disc in a normal surface. More... | |
class | DiscSpecIterator |
A forward iterator used for running through all normal discs in a normal surface. More... | |
struct | DiscType |
Identifies a single normal or almost normal disc type within a triangulation. More... | |
class | DoubleDescription |
Implements a modified double description method for polytope vertex enumeration. More... | |
struct | EnableIf |
A struct that holds either a single value of type T or nothing at all, depending on whether the given compile-time condition holds. More... | |
class | EulerSearcher |
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 | Example |
This class offers static routines for constructing a variety of sample dim-dimensional triangulations. More... | |
class | Example< 2 > |
Offers routines for constructing a variety of sample 2-dimensional triangulations. More... | |
class | Example< 3 > |
Offers routines for constructing a variety of sample 3-dimensional triangulations. More... | |
class | Example< 4 > |
Offers routines for constructing a variety of sample 4-dimensional triangulations. More... | |
class | ExampleLink |
This class offers routines for constructing ready-made examples of knots and links. More... | |
class | ExampleSnapPea |
This class offers routines for constructing various example SnapPea triangulations. More... | |
class | Face |
Represents a subdim-face in the skeleton of a dim-dimensional triangulation. More... | |
class | Face< 2, 2 > |
Represents a triangle within a 2-manifold triangulation. More... | |
class | Face< 3, 0 > |
Represents a vertex in the skeleton of a 3-manifold triangulation. More... | |
class | Face< 3, 1 > |
Represents an edge in the skeleton of a 3-manifold triangulation. More... | |
class | Face< 3, 2 > |
Represents a triangle in the skeleton of a 3-manifold triangulation. More... | |
class | Face< 3, 3 > |
Represents a tetrahedron within a 3-manifold triangulation. More... | |
class | Face< 4, 0 > |
Represents a vertex in the skeleton of a 4-manifold triangulation. More... | |
class | Face< 4, 1 > |
Represents an edge in the skeleton of a 4-manifold triangulation. More... | |
class | Face< 4, 2 > |
Represents a triangle in the skeleton of a 4-manifold triangulation. More... | |
class | Face< 4, 3 > |
Represents a tetrahedron in the skeleton of a 4-manifold triangulation. More... | |
class | Face< 4, 4 > |
Represents a pentachoron (a 4-dimensional simplex) within a 4-manifold triangulation. More... | |
class | Face< dim, dim > |
Represents a top-dimensional simplex in a dim-manifold triangulation. More... | |
class | FaceEmbedding |
Details how a subdim-face of a dim-dimensional triangulation appears within each top-dimensional simplex. More... | |
class | FaceNumbering |
Specifies how subdim-faces are numbered within a dim-dimensional simplex. More... | |
class | FacePair |
Represents a pair of tetrahedron face numbers. More... | |
class | FacetPairing |
Represents the dual graph of a dim-manifold triangulation; that is, the pairwise matching of facets of dim-dimensional simplices. More... | |
class | FacetPairing< 3 > |
Represents the dual graph of a 3-manifold triangulation. More... | |
struct | FacetSpec |
A lightweight class used to refer to a particular facet of a particular top-dimensional simplex in a dim-dimensional triangulation. More... | |
class | FailedPrecondition |
An exception thrown when a function detects that its preconditions have been violated. More... | |
struct | FaithfulAssignment |
Determines if an integer of type From can always be assigned to an integer of type To with no loss of information. More... | |
class | FileError |
An exception thrown when trying to access data from the filesystem. More... | |
class | FileInfo |
Stores information about a Regina data file, including file format and version. More... | |
class | Flags |
A class representing a bitwise combination of flags defined by an enumeration type. More... | |
class | GlobalDirs |
Provides global routines that return directories in which various components of Regina are installed on the system. More... | |
class | GluingPerms |
Represents a specific set of gluing permutations to complement a particular pairwise matching of simplex facets. More... | |
class | GluingPermSearcher |
A utility class used to build a census of triangulations, by searching through all possible sets of gluing permutations to match a given facet pairing. More... | |
class | GluingPermSearcher< 2 > |
A utility class for searching through all possible gluing permutation sets that correspond to a given triangle edge pairing. More... | |
class | GluingPermSearcher< 3 > |
A utility class for searching through all possible gluing permutation sets that correspond to a given tetrahedron face pairing. More... | |
class | GluingPermSearcher< 4 > |
A utility class for searching through all possible gluing permutation sets that correspond to a given pentachoron facet pairing. More... | |
class | GraphLoop |
Represents a closed graph manifold formed by joining a single bounded Seifert fibred space to itself along a torus. More... | |
class | GraphPair |
Represents a closed graph manifold formed by joining two bounded Seifert fibred spaces along a common torus. More... | |
class | GraphTriple |
Represents a closed graph manifold formed by joining three bounded Seifert fibred spaces along their torus boundaries. More... | |
class | GroupExpression |
Represents an expression involving generators from a group presentation or a free group. More... | |
struct | GroupExpressionTerm |
Represents a power of a generator in a group presentation. More... | |
class | GroupPresentation |
Represents a finite presentation of a group. More... | |
class | Handlebody |
Represents an orientable handlebody. More... | |
class | HilbertCD |
Implements a modified Contejean-Devie algorithm for enumerating Hilbert bases. More... | |
class | HilbertDual |
Implements a modified dual algorithm for enumerating Hilbert bases. More... | |
class | HilbertPrimal |
Implements a modified primal algorithm for enumerating Hilbert bases. More... | |
class | HomGroupPresentation |
Represents a homomorphism between groups which are described via finite presentations. More... | |
class | HomMarkedAbelianGroup |
Represents a homomorphism of finitely generated abelian groups. More... | |
class | HomologicalData |
A specialised class that computes a large amount of detailed homological information for a 3-manifold triangulation. More... | |
class | HyperbolicMinSearcher |
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 | HyperEncoding |
Indicates precisely how a normal hypersurface within a 4-manifold triangulation is encoded by an integer vector. More... | |
class | HyperInfo |
A class used to query general information about different normal hypersurface coordinate systems. More... | |
struct | InfinityBase |
Internal base classes for use with IntegerBase, templated on whether we should support infinity as an allowed value. More... | |
class | IntegerBase |
Represents an arbitrary precision integer. More... | |
class | IntersectionForm |
Represents a symmetric bilinear integral form, which for Regina is typically the intersection form of a 4-manifold. More... | |
struct | IntOfMinSize |
Gives access to native integer types that hold at least k bytes, where k may be any compile-time constant. More... | |
struct | IntOfSize |
Gives access to native integer types that hold exactly k bytes, where k may be any compile-time constant. More... | |
class | InvalidArgument |
An exception thrown when invalid or unsupported arguments are passed into a function. More... | |
class | InvalidInput |
An exception thrown when a function reads unexpected or incomplete data from an input stream. More... | |
class | Isomorphism |
Represents a combinatorial isomorphism from one dim-manifold triangulation into another. More... | |
class | IsoSigClassic |
The default signature type to use for isomorphism signatures. More... | |
class | IsoSigDegrees |
Defines an alternate type of isomorphism signature based on degree sequences of subdim-faces. More... | |
class | IsoSigPrintable |
The default encoding to use for isomorphism signatures. More... | |
struct | IsReginaArbitraryPrecisionInteger |
Determines if the type T is one of Regina's arbitrary precision integer types. More... | |
struct | IsReginaInteger |
Determines if the type T is one of Regina's own integer types (either arbitrary precision or fixed size). More... | |
class | Laurent |
Represents a single-variable Laurent polynomial with coefficients of type T. More... | |
class | Laurent2 |
Represents a Laurent polynomial in the two variables x, y with coefficients of type T. More... | |
class | LayeredChain |
Represents a layered chain in a triangulation. More... | |
class | LayeredChainPair |
Represents a layered chain pair component of a triangulation. More... | |
class | LayeredLensSpace |
Represents a layered lens space component of a triangulation. More... | |
class | LayeredLoop |
Represents a layered loop component of a triangulation. More... | |
class | LayeredSolidTorus |
Represents a layered solid torus in a triangulation. More... | |
class | LayeredTorusBundle |
Describes a layered torus bundle. More... | |
class | Layering |
Represents a layering of zero or more tetrahedra upon a torus boundary. More... | |
class | LensSpace |
Represents a general lens space. More... | |
class | LightweightSequence |
A lightweight class for storing a random-access sequence of objects. More... | |
class | Link |
Represents a directed knot or link in the 3-sphere. More... | |
class | ListView |
A lightweight object that can be used for iteration and random access to all elements of a given list. More... | |
class | ListView< Element * > |
A specialisation of ListView for working with lists stored in a C-style array whose size is not known at compile-time. More... | |
class | ListView< Element[n]> |
A specialisation of ListView for working with lists stored in a C-style array whose size is fixed at compile-time. More... | |
struct | LPCol |
Used by LPInitialTableaux<LPConstraint> to store a single column of the adjusted matching equation matrix in sparse form. 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 | LPConstraintEulerPositive |
A class that constraints the tableaux of normal surface matching equations to ensure that Euler characteristic is strictly positive. More... | |
class | LPConstraintEulerZero |
A class that constraints the tableaux of normal surface matching equations to ensure that Euler characteristic is zero. 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 | LPSystem |
Indicates which broad class of vector encodings a particular tableaux is designed to work with. More... | |
class | Manifold |
Represents a particular 3-manifold, independent of how it might be triangulated. More... | |
class | MarkedAbelianGroup |
Represents a finitely generated abelian group given by a chain complex. More... | |
class | MarkedElement |
A base class for elements of MarkedVector. More... | |
class | MarkedVector |
A vector of objects with fast, space-efficient reverse lookup of array indices. More... | |
class | Matrix |
Represents a matrix of elements of the given type T. More... | |
class | Matrix2 |
Represents a 2-by-2 integer matrix. More... | |
class | MaxAdmissible |
Used to enumerate all maximal admissible faces of a polyhedral cone under a given set of admissibility constraints. More... | |
class | mem_istream |
An input stream that reads an array of characters in memory. More... | |
class | mem_streambuf |
A stream buffer that provides the implementation details for mem_istream. More... | |
class | ModelLinkGraph |
Represents an undirected 4-valent planar graph with a specific planar embedding. More... | |
class | ModelLinkGraphArc |
A reference to an outgoing edge from a node of a model graph for a knot or link. More... | |
class | ModelLinkGraphCells |
Describes the cellular decomposition of the sphere that is induced by a given planar 4-valent graph. More... | |
class | ModelLinkGraphNode |
Represents a single node in a model graph for a knot or link. More... | |
class | NativeInteger |
A wrapper class for a native, fixed-precision integer type of the given size. More... | |
class | NormalEncoding |
Indicates precisely how a normal surface is encoded by an integer vector. More... | |
class | NormalHypersurface |
Represents a single normal hypersurface in a 4-manifold triangulation. More... | |
class | NormalHypersurfaces |
A collection of normal hypersurfaces in a 4-manifold triangulation. More... | |
class | NormalInfo |
A class used to query general information about different normal coordinate systems. More... | |
class | NormalSurface |
Represents a single normal surface in a 3-manifold triangulation. More... | |
class | NormalSurfaces |
A collection of normal surfaces in a 3-manifold triangulation. More... | |
class | NoSolution |
An exception thrown when Regina has certified that a mathematical problem has no solution. More... | |
class | NotImplemented |
An exception thrown when some functionality is not yet implemented. More... | |
struct | Output |
A common base class for objects that write human-readable text output. More... | |
struct | OutputBase |
Provides a type alias to help identify where in the class hierarchy the output functions T::str() and T::detail() are implemented. More... | |
class | Packet |
Represents a packet of information that may be individually edited or operated upon. More... | |
class | PacketChildren |
A lightweight object that gives access to all immediate children of a given packet. More... | |
class | PacketData |
A lightweight helper class that allows an object of type Held to connect with the wrapped packet class that contains it. More... | |
class | PacketDescendants |
A lightweight object that gives access to all strict descendants of a given packet. More... | |
class | PacketInfo |
A class used to query general information about different packet types. More... | |
class | PacketListener |
An object that can be registered to listen for packet events. More... | |
class | PacketOf |
A packet that stores a mathematical object of type Held. More... | |
class | PacketShell |
Gives access to the final remains of a packet that is in the process of being destroyed. More... | |
class | Perm |
Represents a permutation of {0,1,...,n-1}. More... | |
class | Perm< 2 > |
Represents a permutation of {0,1}. More... | |
class | Perm< 3 > |
Represents a permutation of {0,1,2}. More... | |
class | Perm< 4 > |
Represents a permutation of {0,1,2,3}. More... | |
class | Perm< 5 > |
Represents a permutation of {0,1,2,3,4}. More... | |
class | Perm< 6 > |
Represents a permutation of {0,1,2,3,4,5}. More... | |
class | Perm< 7 > |
Represents a permutation of {0,1,2,3,4,5,6}. More... | |
class | PermClass |
Represents a conjugacy class of permutations on n elements. More... | |
class | PermGroup |
Represents a group of permutations on n elements. More... | |
class | PillowTwoSphere |
Represents a 2-sphere made from two triangles glued together along their three edges. More... | |
class | PluggedTorusBundle |
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 | PlugTriSolidTorus |
Represents a plugged triangular solid torus component of a triangulation. More... | |
class | Polynomial |
Represents a single-variable polynomial with coefficients of type T. More... | |
class | PosOrder |
A comparison object that sorts hyperplanes by position vectors. More... | |
class | Primes |
A helper class for finding primes and factorising integers. More... | |
struct | PrismSpec |
Specifies a single triangular prism in a tetrahedron. More... | |
class | ProgressTracker |
Manages percentage-based progress tracking and cancellation polling for long operations. More... | |
class | ProgressTrackerBase |
The base class for Regina's progress tracking classes. More... | |
class | ProgressTrackerOpen |
Manages percentage-based progress tracking and cancellation polling for open-ended operations. More... | |
class | Qitmask1 |
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 | Qitmask2 |
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 | RandomEngine |
Offers threadsafe access to Regina's global uniform random bit generator. More... | |
class | Rational |
Represents an arbitrary precision rational number. More... | |
class | ReginaException |
A base class for all of the exceptions that are thrown by Regina's native mathematical code. More... | |
struct | SatAnnulus |
Represents an annulus formed from a pair of triangles in a Seifert fibred space. More... | |
class | SatBlock |
Represents a saturated block in a Seifert fibred space. More... | |
class | SatBlockModel |
Contains an explicit triangulation of a saturated block along with the accompanying saturated block description. More... | |
class | SatBlockSpec |
Describes how a single saturated block forms a part of a larger saturated region. More... | |
class | SatCube |
A saturated block that is a six-tetrahedron cube. More... | |
class | SatLayering |
A degenerate saturated block that is a single tetrahedron wrapped around so that two opposite edges touch. More... | |
class | SatLST |
A saturated block that is a layered solid torus. More... | |
class | SatMobius |
A degenerate zero-tetrahedron saturated block that corresponds to attaching a Mobius band to a single annulus boundary. More... | |
class | SatReflectorStrip |
A saturated block that is a reflector strip. More... | |
class | SatRegion |
A large saturated region in a Seifert fibred space formed by joining together saturated blocks. More... | |
class | SatTriPrism |
A saturated block that is a three-tetrahedron triangular prism. More... | |
class | Script |
A packet representing a Python script that can be run. More... | |
class | SFSAlt |
Provides an alternative representation of a single bounded Seifert fibred space. More... | |
struct | SFSFibre |
Represents an exceptional (alpha, beta) fibre in a Seifert fibred space. More... | |
class | SFSpace |
Represents a general Seifert fibred space, which may be orientable or non-orientable. More... | |
class | ShortArray |
A short stack-based array of bounded size. More... | |
struct | ShortOutput |
A common base class for objects that provide short text output only. More... | |
class | SigCensus |
A class responsible for building censuses of splitting surface signatures. More... | |
class | Signature |
Represents a signature of a splitting surface in a closed 3-manifold triangulation. More... | |
class | SigPartialIsomorphism |
Represents a partial isomorphism between two splitting surface signatures. More... | |
class | SimpleSurfaceBundle |
Represents a particularly simple closed surface bundle over the circle. More... | |
class | SnapPeaCensusManifold |
Represents a 3-manifold from the SnapPea cusped census. More... | |
class | SnapPeaCensusTri |
Represents a 3-manifold triangulation from the SnapPea cusped census. More... | |
class | SnapPeaFatalError |
An exception that is thrown when the SnapPea kernel encounters a fatal error. More... | |
class | SnapPeaIsNull |
An exception thrown when the SnapPea kernel is asked to work with a null SnapPea triangulation. More... | |
class | SnapPeaMemoryFull |
An exception that is thrown when the SnapPea kernel finds that all available memory has been exhausted. More... | |
class | SnapPeaTriangulation |
Offers direct access to the SnapPea kernel from within Regina. More... | |
class | SnapPeaUnsolvedCase |
An exception thrown when the SnapPea kernel is not able to perform some computation. More... | |
class | SnappedBall |
Represents a snapped 3-ball in a triangulation. More... | |
class | SnappedTwoSphere |
Represents a 2-sphere made from two snapped 3-balls in a triangulation. More... | |
class | Snapshot |
Keeps a snapshot of an object of type T as it was at a particular moment in time. More... | |
class | SnapshotRef |
A reference to an image of type T that has been snapshotted at a particular moment in time. More... | |
class | Snapshottable |
A base class for images of type T that can be snapshotted at a particular moment in time. More... | |
class | SnapshotWriteError |
An exception thrown when someone tries to modify the read-only deep copy taken by a snapshot. More... | |
class | SpiralSolidTorus |
Represents a spiralled solid torus in a triangulation. More... | |
class | StandardTriangulation |
Describes a triangulation or subcomplex of a triangulation whose structure is well-understood. More... | |
class | StrandRef |
A reference to one of the two strands of a link that pass each other at a crossing. More... | |
class | SubtreeIterator |
A forward iterator for iterating through the entire packet subtree rooted at a given packet. More... | |
class | SurfaceFilter |
A packet that accepts or rejects normal surfaces. More... | |
class | SurfaceFilterCombination |
A normal surface filter that simply combines other filters. More... | |
class | SurfaceFilterProperties |
A normal surface filter that filters by basic properties of the normal surface. More... | |
class | TableView |
A lightweight object that can be used for random access to all elements of a given multi-dimensional table. More... | |
class | Tangle |
Represents a 2-tangle in the 3-ball. More... | |
class | TautEnumeration |
The main entry point for the tree traversal algorithm to enumerate all taut angle structures in a 3-manifold triangulation. More... | |
class | Text |
A packet representing a text string. More... | |
struct | TightEncodable |
A base class that assists with support for tight encodings and corresponding decodings. More... | |
class | TorusBundle |
Represents a torus bundle over the circle. More... | |
class | TreeBag |
Represents a single bag in a tree decomposition. More... | |
class | TreeDecomposition |
Represents a tree decomposition of a graph. More... | |
class | TreeEnumeration |
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 | TreeSingleSoln |
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 | TreeTraversal |
A base class for searches that employ the tree traversal algorithm for enumerating and locating vertex normal surfaces and taut angle structures. More... | |
class | Triangulation |
A dim-dimensional triangulation, built by gluing together dim-dimensional simplices along their (dim-1)-dimensional facets. More... | |
class | Triangulation< 2 > |
Represents a 2-manifold triangulation. More... | |
class | Triangulation< 3 > |
Represents a 3-dimensional triangulation, typically of a 3-manifold. More... | |
class | Triangulation< 4 > |
Represents a 4-dimensional triangulation, typically of a 4-manifold. More... | |
class | TrieSet |
A trie-like data structure for storing and retriving sets. More... | |
class | TriSolidTorus |
Represents a three-tetrahedron triangular solid torus in a triangulation. More... | |
class | TrivialTri |
Represents one of a few particular hard-coded trivial triangulations that do not belong to any of the other larger families. More... | |
class | TxICore |
Provides a triangulation of the product T x I (the product of the torus and the interval). More... | |
class | TxIDiagonalCore |
One of a family of thin T x I triangulations that typically appear at the centres of layered torus bundles. More... | |
class | TxIParallelCore |
A specific six-tetrahedron TxICore triangulation that does not fit neatly into other families. More... | |
class | TypeTrie |
A trie that stores a set of type vectors of a fixed length. More... | |
class | UnsolvedCase |
An exception thrown when a mathematical function is not able to solve a particular instance of a problem. More... | |
class | ValidityConstraints |
Represents a set of combinatorial validity constraints for use with polytope vertex enumeration. More... | |
class | Vector |
An optimised vector class of elements from a given ring T. More... | |
class | XMLTriangulationReader |
class | XMLWriter |
Typedefs | |
using | MatrixInt = Matrix< Integer, true > |
A matrix of arbitrary-precision integers. More... | |
using | AngleAlg = regina::Flags< AngleAlgFlags > |
A combination of flags for angle structure enumeration algorithms. More... | |
using | CensusPurge = regina::Flags< CensusPurgeFlags > |
A combination of flags for census generation. More... | |
using | HyperList = regina::Flags< HyperListFlags > |
A combination of flags for types of normal hypersurface lists. More... | |
using | HyperAlg = regina::Flags< HyperAlgFlags > |
A combination of flags for normal hypersurface enumeration algorithms. More... | |
using | LargeInteger = IntegerBase< true > |
LargeInteger is a type alias for IntegerBase<true>, which offers arbitrary precision integers with support for infinity. More... | |
using | Integer = IntegerBase< false > |
Integer is a type alias for IntegerBase<false>, which offers arbitrary precision integers without support for infinity. More... | |
using | NativeLong = NativeInteger< sizeof(long)> |
NativeLong is a type alias for the NativeInteger template class whose underlying integer type is a native long. More... | |
using | MatrixBool = Matrix< bool > |
A matrix of booleans. More... | |
using | VectorInt = Vector< Integer > |
A vector of arbitrary-precision integers. More... | |
using | VectorLarge = Vector< LargeInteger > |
A vector of arbitrary-precision integers that allows infinite elements. More... | |
template<typename T > | |
using | DiscSetSurfaceData = DiscSetSurfaceDataImpl< DiscSetTetData< T > > |
A structure that stores data of type T alongside every normal disc within a particular normal surface. More... | |
using | DiscSetSurface = DiscSetSurfaceDataImpl< DiscSetTet > |
A structure that builds all of the normal discs within a particular normal surface, but does not store any additional data alongside them. More... | |
using | NormalList = regina::Flags< NormalListFlags > |
A combination of flags for types of normal surface lists. More... | |
using | NormalAlg = regina::Flags< NormalAlgFlags > |
A combination of flags for normal surface enumeration algorithms. More... | |
using | SurfaceExport = regina::Flags< SurfaceExportFields > |
A set of fields to export alongside a normal surface list. More... | |
template<int dim> | |
using | Vertex = Face< dim, 0 > |
Refers to a vertex of a dim-dimensional triangulation. More... | |
template<int dim> | |
using | Edge = Face< dim, 1 > |
Refers to an edge of a dim-dimensional triangulation. More... | |
template<int dim> | |
using | Triangle = Face< dim, 2 > |
Refers to a triangular face of a dim-dimensional triangulation. More... | |
template<int dim> | |
using | Tetrahedron = Face< dim, 3 > |
Refers to a tetrahedral face of a dim-dimensional triangulation. More... | |
template<int dim> | |
using | Pentachoron = Face< dim, 4 > |
Refers to a pentachoron face of a dim-dimensional triangulation. More... | |
template<int dim> | |
using | Simplex = Face< dim, dim > |
Refers to a top-dimensional simplex in a dim-dimensional triangulation. More... | |
template<int dim> | |
using | VertexEmbedding = FaceEmbedding< dim, 0 > |
Details how a vertex of a dim-dimensional triangulation appears within each top-dimensional simplex. More... | |
template<int dim> | |
using | EdgeEmbedding = FaceEmbedding< dim, 1 > |
Details how a edge of a dim-dimensional triangulation appears within each top-dimensional simplex. More... | |
template<int dim> | |
using | TriangleEmbedding = FaceEmbedding< dim, 2 > |
Details how a triangular face of a dim-dimensional triangulation appears within each top-dimensional simplex. More... | |
template<int dim> | |
using | TetrahedronEmbedding = FaceEmbedding< dim, 3 > |
Details how a tetrahedral face of a dim-dimensional triangulation appears within each top-dimensional simplex. More... | |
template<int dim> | |
using | PentachoronEmbedding = FaceEmbedding< dim, 4 > |
Details how a pentachoron face of a dim-dimensional triangulation appears within each top-dimensional simplex. More... | |
template<int dim> | |
using | IsoSigEdgeDegrees = IsoSigDegrees< dim, 1 > |
Defines an alternate type of isomorphism signature based on edge degree sequences. More... | |
template<int dim> | |
using | IsoSigRidgeDegrees = IsoSigDegrees< dim, dim - 2 > |
Defines an alternate type of isomorphism signature based on degree sequences of (dim-2)-faces. More... | |
template<int pos, typename tuple , typename out_of_range = void> | |
using | safe_tuple_element = typename regina::detail::safe_tuple_element_impl< pos, tuple, out_of_range >::type |
An alternative to std::tuple_element that gracefully handles an out-of-range index. More... | |
Enumerations | |
enum | AngleAlgFlags { AS_ALG_DEFAULT = 0x0000 , AS_ALG_TREE = 0x0010 , AS_ALG_DD = 0x0020 , AS_ALG_LEGACY = 0x4000 , AS_ALG_CUSTOM = 0x8000 } |
Represents options and variants of algorithms for enumerating various types of angle structures on 3-manifold triangulations. More... | |
enum | CensusPurgeFlags { PURGE_NONE = 0x00 , PURGE_NON_MINIMAL = 0x01 , PURGE_NON_PRIME = 0x02 , PURGE_NON_MINIMAL_PRIME = 0x03 , PURGE_NON_MINIMAL_HYP = 0x09 , PURGE_P2_REDUCIBLE = 0x04 } |
Represents different classes of triangulations that may be ignored by census generation algorithms. More... | |
enum | FileFormat { REGINA_BINARY_GEN_1 = 1 , REGINA_XML_GEN_2 = 2 , REGINA_XML_GEN_3 = 3 , REGINA_CURRENT_FILE_FORMAT = REGINA_XML_GEN_3 } |
Represents each generation of Regina's file formats. More... | |
enum | HyperCoords { HS_STANDARD = 0 , HS_PRISM = 1 , HS_EDGE_WEIGHT = 200 } |
Represents different coordinate systems that can be used for enumerating and/or displaying normal hypersurfaces within 4-manifold triangulations. More... | |
enum | HyperListFlags { HS_LIST_DEFAULT = 0x0000 , HS_EMBEDDED_ONLY = 0x0001 , HS_IMMERSED_SINGULAR = 0x0002 , HS_VERTEX = 0x0004 , HS_FUNDAMENTAL = 0x0008 , HS_LEGACY = 0x4000 , HS_CUSTOM = 0x8000 } |
Represents different lists of normal hypersurfaces that might be constructed for a given 4-manifold triangulation. More... | |
enum | HyperAlgFlags { HS_ALG_DEFAULT = 0x0000 , HS_VERTEX_DD = 0x0020 , HS_HILBERT_PRIMAL = 0x0100 , HS_HILBERT_DUAL = 0x0200 , HS_ALG_LEGACY = 0x4000 , HS_ALG_CUSTOM = 0x8000 } |
Represents options and variants of algorithms for enumerating various types of normal hypersurfaces in 4-manifold triangulations. More... | |
enum | Framing { FRAMING_SEIFERT = 1 , FRAMING_BLACKBOARD = 2 } |
Indicates one of the standard framings of a knot or link. More... | |
enum | PermCodeType { PERM_CODE_IMAGES = 1 , PERM_CODE_INDEX = 2 } |
Represents the different kinds of internal permutation codes that are used in Regina's various Perm<n> template classes. More... | |
enum | NamedPermGroup { PERM_GROUP_TRIVIAL = 0 , PERM_GROUP_SYMMETRIC = 1 , PERM_GROUP_ALTERNATING = 2 } |
Constants that represent particular well-known classes of permutation groups. More... | |
enum | PacketHeldBy { HELD_BY_NONE = 0 , HELD_BY_PACKET = 1 , HELD_BY_SNAPPEA = 2 } |
Internal constants that support wrapped packets. More... | |
enum | PacketType { PACKET_NONE = 0 , PACKET_CONTAINER = 1 , PACKET_TEXT = 2 , PACKET_NORMALSURFACES = 6 , PACKET_SCRIPT = 7 , PACKET_SURFACEFILTER = 8 , PACKET_ANGLESTRUCTURES = 9 , PACKET_ATTACHMENT = 10 , PACKET_NORMALHYPERSURFACES = 13 , PACKET_SNAPPEATRIANGULATION = 16 , PACKET_LINK = 17 , PACKET_TRIANGULATION2 = 15 , PACKET_TRIANGULATION3 = 3 , PACKET_TRIANGULATION4 = 11 , PACKET_TRIANGULATION5 = 105 , PACKET_TRIANGULATION6 = 106 , PACKET_TRIANGULATION7 = 107 , PACKET_TRIANGULATION8 = 108 } |
Represents the different types of packet that are available in Regina. More... | |
enum | Algorithm { ALG_DEFAULT = 0 , ALG_BACKTRACK = 1 , ALG_TREEWIDTH = 2 , ALG_NAIVE = 3 } |
Represents various classes of algorithms that Regina can use for computations. More... | |
enum | NormalCoords { NS_STANDARD = 0 , NS_QUAD = 1 , NS_QUAD_CLOSED = 10 , NS_AN_LEGACY = 100 , NS_AN_QUAD_OCT = 101 , NS_AN_STANDARD = 102 , NS_AN_QUAD_OCT_CLOSED = 110 , NS_EDGE_WEIGHT = 200 , NS_TRIANGLE_ARCS = 201 , NS_ANGLE = 400 } |
Represents different coordinate systems that can be used for enumerating and/or 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 3-manifold 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 in 3-manifold triangulations. More... | |
enum | NormalTransform { NS_CONV_REDUCED_TO_STD = 0x01 , NS_CONV_STD_TO_REDUCED = 0x02 , NS_FILTER_COMPATIBLE = 0x10 , NS_FILTER_DISJOINT = 0x20 , NS_FILTER_INCOMPRESSIBLE = 0x30 } |
Represents different ways in which Regina can transform one normal surface list into another. 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 | SurfaceFilterType { NS_FILTER_LEGACY_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... | |
enum | TreeDecompositionAlg { TD_UPPER = 0x0001 , TD_UPPER_GREEDY_FILL_IN = 0x0001 } |
Indicates which algorithm should be used to compute a tree decomposition of a graph. More... | |
enum | BagComparison { BAG_EQUAL = 0 , BAG_SUBSET = -1 , BAG_SUPERSET = 1 , BAG_UNRELATED = 2 } |
Indicates the relationship between two bags in a tree decomposition. More... | |
enum | NiceType { NICE_INTRODUCE = 1 , NICE_FORGET = 2 , NICE_JOIN = 3 } |
Used to indicate the type of each bag in a nice tree decomposition. More... | |
Functions | |
void | swap (AbelianGroup &lhs, AbelianGroup &rhs) noexcept |
Swaps the contents of the two given abelian groups. More... | |
std::ostream & | operator<< (std::ostream &out, const GroupExpressionTerm &term) |
Writes the given term to the given output stream. More... | |
void | swap (GroupExpression &lhs, GroupExpression &rhs) noexcept |
Swaps the contents of the two given expressions. More... | |
void | swap (GroupPresentation &lhs, GroupPresentation &rhs) noexcept |
Swaps the contents of the two given group presentations. More... | |
void | swap (HomGroupPresentation &lhs, HomGroupPresentation &rhs) noexcept |
Swaps the contents of the two given homomorphisms. More... | |
void | swap (IntersectionForm &lhs, IntersectionForm &rhs) noexcept |
Swaps the contents of the two given intersection forms. More... | |
void | swap (MarkedAbelianGroup &lhs, MarkedAbelianGroup &rhs) noexcept |
Swaps the contents of the two given abelian groups. More... | |
void | swap (HomMarkedAbelianGroup &lhs, HomMarkedAbelianGroup &rhs) noexcept |
Swaps the contents of the two given homomorphisms. More... | |
AngleAlg | operator| (AngleAlgFlags lhs, AngleAlgFlags rhs) |
Returns the bitwise OR of the two given flags. More... | |
void | swap (AngleStructure &a, AngleStructure &b) noexcept |
Swaps the contents of the given angle structures. More... | |
void | swap (AngleStructures &lhs, AngleStructures &rhs) |
Swaps the contents of the two given lists. More... | |
MatrixInt | makeAngleEquations (const Triangulation< 3 > &tri) |
Generates the set of angle structure equations for the given triangulation. More... | |
void | swap (CensusDB &a, CensusDB &b) noexcept |
Swaps the contents of the given database references. More... | |
void | swap (CensusHit &a, CensusHit &b) noexcept |
Swaps the contents of the given census hits. More... | |
template<int dim> | |
void | swap (GluingPerms< dim > &a, GluingPerms< dim > &b) noexcept |
Swaps the contents of the given gluing permutation sets. More... | |
CensusPurge | operator| (CensusPurgeFlags lhs, CensusPurgeFlags rhs) |
Returns the bitwise OR of the two given flags. More... | |
const char * | versionString () |
Returns the full version number of this calculation engine. More... | |
int | versionMajor () |
Returns the major version number of this calculation engine. More... | |
int | versionMinor () |
Returns the minor version number of this calculation engine. More... | |
const char * | buildInfo () |
Returns any additional information about this specific build of Regina. More... | |
bool | versionUsesUTF8 (const char *version) |
Did the given version of Regina consistently use UTF-8 in its data files? More... | |
const char * | versionSnapPy () |
Returns the version of SnapPy whose underlying SnapPea kernel is built into Regina. More... | |
const char * | versionSnapPea () |
An alias for versionSnapPy(), which returns the version of SnapPy whose underlying SnapPea kernel is built into Regina. More... | |
bool | hasInt128 () |
Does this particular build of Regina support native 128-bit arithmetic? More... | |
int | politeThreads () |
A suggestion for user interfaces as to how many threads should be used for parallel computations. More... | |
int | testEngine (int value) |
Tests to see if an interface can successfully communicate with the underlying C++ calculation engine. More... | |
template<class T , bool supportsUtf8> | |
std::ostream & | operator<< (std::ostream &out, const Output< T, supportsUtf8 > &object) |
Writes the short text representation of the given object to the given output stream. More... | |
template<typename IntType > | |
void | swap (LPMatrix< IntType > &a, LPMatrix< IntType > &b) noexcept |
Swaps the contents of the given matrices. More... | |
template<typename IntType > | |
void | swap (LPInitialTableaux< IntType > &a, LPInitialTableaux< IntType > &b) noexcept |
Swaps the contents of the given matrices. More... | |
template<class LPConstraint , typename IntType > | |
void | swap (LPData< LPConstraint, IntType > &a, LPData< LPConstraint, IntType > &b) noexcept |
Swaps the contents of the given tableaux. More... | |
template<int nTypes> | |
void | swap (TypeTrie< nTypes > &a, TypeTrie< nTypes > &b) noexcept |
Swaps the contents of the two given tries. More... | |
void | swap (ValidityConstraints &a, ValidityConstraints &b) noexcept |
Swaps the contents of the two given constraint sets. More... | |
void | swap (FileInfo &a, FileInfo &b) noexcept |
Swaps the contents of the two given file information objects. More... | |
std::shared_ptr< Container > | 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... | |
template<class ObjectType > | |
std::shared_ptr< Container > | readSigList (const char *filename, unsigned colSigs=0, int colLabels=-1, unsigned long ignoreLines=0) |
Reads a list of isomorphism signatures or knot signatures from the given text file. More... | |
std::shared_ptr< PacketOf< Triangulation< 3 > > > | readOrb (const char *filename) |
Reads a triangulation from the given Orb / Casson file. More... | |
HyperList | operator| (HyperListFlags lhs, HyperListFlags rhs) |
Returns the bitwise OR of the two given flags. More... | |
HyperAlg | operator| (HyperAlgFlags lhs, HyperAlgFlags rhs) |
Returns the bitwise OR of the two given flags. More... | |
void | swap (NormalHypersurface &a, NormalHypersurface &b) noexcept |
Swaps the contents of the given normal hypersurfaces. More... | |
void | swap (NormalHypersurfaces &lhs, NormalHypersurfaces &rhs) |
Swaps the contents of the two given lists. More... | |
MatrixInt | makeMatchingEquations (const Triangulation< 4 > &triangulation, HyperCoords coords) |
Generates the set of normal hypersurface matching equations for the given triangulation using the given coordinate system. More... | |
ValidityConstraints | makeEmbeddedConstraints (const Triangulation< 4 > &triangulation, HyperCoords coords) |
Generates the validity constraints representing the condition that normal hypersurfaces be embedded. More... | |
std::ostream & | operator<< (std::ostream &out, const StrandRef &s) |
Writes a depiction of the given strand reference to the given output stream. More... | |
void | swap (Link &lhs, Link &rhs) |
Swaps the contents of the two given links. More... | |
std::ostream & | operator<< (std::ostream &out, const ModelLinkGraphArc &a) |
Writes a depiction of the given arc reference to the given output stream. More... | |
void | swap (ModelLinkGraph &lhs, ModelLinkGraph &rhs) noexcept |
Swaps the contents of the two given graphs. More... | |
void | swap (Tangle &lhs, Tangle &rhs) noexcept |
Swaps the contents of the two given tangles. More... | |
void | swap (GraphLoop &a, GraphLoop &b) noexcept |
Swaps the contents of the two given graph manifolds. More... | |
void | swap (GraphPair &a, GraphPair &b) noexcept |
Swaps the contents of the two given graph manifolds. More... | |
void | swap (GraphTriple &a, GraphTriple &b) noexcept |
Swaps the contents of the two given graph manifolds. More... | |
void | swap (Handlebody &a, Handlebody &b) noexcept |
Swaps the contents of the two given handlebodies. More... | |
void | swap (LensSpace &a, LensSpace &b) noexcept |
Swaps the contents of the two given lens spaces. More... | |
std::ostream & | operator<< (std::ostream &out, const SFSFibre &f) |
Writes the given fibre in human-readable format to the given output stream. More... | |
void | swap (SFSpace &a, SFSpace &b) noexcept |
Swaps the contents of the two given Seifert fibred spaces. More... | |
void | swap (SFSAlt &a, SFSAlt &b) noexcept |
Swaps the contents of the two given alternative representations of Seifert fibred spaces. More... | |
void | swap (SimpleSurfaceBundle &a, SimpleSurfaceBundle &b) noexcept |
Swaps the contents of the two given surface bundles. More... | |
void | swap (SnapPeaCensusManifold &a, SnapPeaCensusManifold &b) noexcept |
Swaps the contents of the two given SnapPea census manifolds. More... | |
void | swap (TorusBundle &a, TorusBundle &b) noexcept |
Swaps the contents of the two given torus bundles. More... | |
constexpr int | binomSmall (int n, int k) |
Returns the binomial coefficient n choose k in constant time for small arguments (n ≤ 16). More... | |
constexpr long | binomMedium (int n, int k) |
Returns the binomial coefficient n choose k in linear time for medium-sized arguments (n ≤ 29). More... | |
void | swap (Cyclotomic &a, Cyclotomic &b) noexcept |
Swaps the contents of the given field elements. More... | |
Cyclotomic | operator* (Cyclotomic elt, const Rational &scalar) |
Multiplies the given field element by the given rational. More... | |
Cyclotomic | operator* (const Rational &scalar, Cyclotomic elt) |
Multiplies the given field element by the given rational. More... | |
Cyclotomic | operator/ (Cyclotomic elt, const Rational &scalar) |
Divides the given field element by the given rational. More... | |
Cyclotomic | operator+ (const Cyclotomic &lhs, const Cyclotomic &rhs) |
Adds the two given cyclotomic field elements. More... | |
Cyclotomic | operator+ (Cyclotomic &&lhs, const Cyclotomic &rhs) |
Adds the two given cyclotomic field elements. More... | |
Cyclotomic | operator+ (const Cyclotomic &lhs, Cyclotomic &&rhs) |
Adds the two given cyclotomic field elements. More... | |
Cyclotomic | operator+ (Cyclotomic &&lhs, Cyclotomic &&rhs) |
Adds the two given cyclotomic field elements. More... | |
Cyclotomic | operator- (Cyclotomic arg) |
Returns the negative of the given field element. More... | |
Cyclotomic | operator- (const Cyclotomic &lhs, const Cyclotomic &rhs) |
Subtracts the two given cyclotomic field elements. More... | |
Cyclotomic | operator- (Cyclotomic &&lhs, const Cyclotomic &rhs) |
Subtracts the two given cyclotomic field elements. More... | |
Cyclotomic | operator- (const Cyclotomic &lhs, Cyclotomic &&rhs) |
Subtracts the two given cyclotomic field elements. More... | |
Cyclotomic | operator- (Cyclotomic &&lhs, Cyclotomic &&rhs) |
Subtracts the two given cyclotomic field elements. More... | |
Cyclotomic | operator* (const Cyclotomic &lhs, const Cyclotomic &rhs) |
Multiplies the two given cyclotomic field elements. More... | |
Cyclotomic | operator/ (const Cyclotomic &lhs, const Cyclotomic &rhs) |
Divides the two given cyclotomic field elements. More... | |
template<bool supportInfinity> | |
void | swap (IntegerBase< supportInfinity > &a, IntegerBase< supportInfinity > &b) noexcept |
Swaps the contents of the given integers. More... | |
template<bool supportInfinity> | |
std::ostream & | operator<< (std::ostream &out, const IntegerBase< supportInfinity > &i) |
Writes the given integer to the given output stream. More... | |
template<bool supportInfinity> | |
IntegerBase< supportInfinity > | operator+ (long lhs, const IntegerBase< supportInfinity > &rhs) |
Adds the given native integer to the given large integer. More... | |
template<bool supportInfinity> | |
IntegerBase< supportInfinity > | operator* (long lhs, const IntegerBase< supportInfinity > &rhs) |
Multiplies the given native integer with the given large integer. More... | |
template<bool supportInfinity> | |
void | tightEncode (std::ostream &out, IntegerBase< supportInfinity > value) |
Writes the tight encoding of the given arbitrary precision integer to the given output stream. More... | |
template<bool supportInfinity> | |
std::string | tightEncoding (IntegerBase< supportInfinity > value) |
Returns the tight encoding of the given arbitrary precision integer. More... | |
template<int bytes> | |
void | swap (NativeInteger< bytes > &a, NativeInteger< bytes > &b) noexcept |
Swaps the contents of the given integers. More... | |
template<int bytes> | |
std::ostream & | operator<< (std::ostream &out, const NativeInteger< bytes > &i) |
Writes the given integer to the given output stream. More... | |
template<typename T > | |
void | swap (Laurent< T > &a, Laurent< T > &b) noexcept |
Swaps the contents of the given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator* (Laurent< T > poly, const typename Laurent< T >::Coefficient &scalar) |
Multiplies the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Laurent< T > | operator* (const typename Laurent< T >::Coefficient &scalar, Laurent< T > poly) |
Multiplies the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Laurent< T > | operator/ (Laurent< T > poly, const typename Laurent< T >::Coefficient &scalar) |
Divides the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Laurent< T > | operator+ (const Laurent< T > &lhs, const Laurent< T > &rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator+ (Laurent< T > &&lhs, const Laurent< T > &rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator+ (const Laurent< T > &lhs, Laurent< T > &&rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator+ (Laurent< T > &&lhs, Laurent< T > &&rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator- (Laurent< T > arg) |
Returns the negative of the given polynomial. More... | |
template<typename T > | |
Laurent< T > | operator- (const Laurent< T > &lhs, const Laurent< T > &rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator- (Laurent< T > &&lhs, const Laurent< T > &rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator- (const Laurent< T > &lhs, Laurent< T > &&rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator- (Laurent< T > &&lhs, Laurent< T > &&rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Laurent< T > | operator* (const Laurent< T > &lhs, const Laurent< T > &rhs) |
Multiplies the two given polynomials. More... | |
template<typename T > | |
void | swap (Laurent2< T > &a, Laurent2< T > &b) noexcept |
Swaps the contents of the given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator* (Laurent2< T > poly, const typename Laurent2< T >::Coefficient &scalar) |
Multiplies the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Laurent2< T > | operator* (const typename Laurent2< T >::Coefficient &scalar, Laurent2< T > poly) |
Multiplies the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Laurent2< T > | operator/ (Laurent2< T > poly, const typename Laurent2< T >::Coefficient &scalar) |
Divides the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Laurent2< T > | operator+ (const Laurent2< T > &lhs, const Laurent2< T > &rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator+ (Laurent2< T > &&lhs, const Laurent2< T > &rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator+ (const Laurent2< T > &lhs, Laurent2< T > &&rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator+ (Laurent2< T > &&lhs, Laurent2< T > &&rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator- (Laurent2< T > arg) |
Returns the negative of the given polynomial. More... | |
template<typename T > | |
Laurent2< T > | operator- (const Laurent2< T > &lhs, const Laurent2< T > &rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator- (Laurent2< T > &&lhs, const Laurent2< T > &rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator- (const Laurent2< T > &lhs, Laurent2< T > &&rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator- (Laurent2< T > &&lhs, Laurent2< T > &&rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Laurent2< T > | operator* (const Laurent2< T > &lhs, const Laurent2< T > &rhs) |
Multiplies the two given polynomials. More... | |
template<typename T > | |
void | swap (Matrix< T > &a, Matrix< T > &b) noexcept |
Swaps the contents of the given matrices. More... | |
void | swap (Matrix2 &a, Matrix2 &b) noexcept |
Swaps the contents of the two given matrices. More... | |
std::ostream & | operator<< (std::ostream &out, const Matrix2 &mat) |
Writes the given matrix to the given output stream. More... | |
bool | simpler (const Matrix2 &m1, const Matrix2 &m2) |
Determines whether the first given matrix is more aesthetically pleasing than the second. More... | |
bool | simpler (const Matrix2 &pair1first, const Matrix2 &pair1second, const Matrix2 &pair2first, const Matrix2 &pair2second) |
Determines whether the first given pair of matrices is more aesthetically pleasing than the second pair. More... | |
void | smithNormalForm (MatrixInt &matrix) |
Transforms the given integer matrix into Smith normal form. More... | |
void | smithNormalForm (MatrixInt &matrix, MatrixInt &rowSpaceBasis, MatrixInt &rowSpaceBasisInv, MatrixInt &colSpaceBasis, MatrixInt &colSpaceBasisInv) |
A Smith normal form algorithm that also returns change of basis matrices. More... | |
void | metricalSmithNormalForm (MatrixInt &matrix, MatrixInt &rowSpaceBasis, MatrixInt &rowSpaceBasisInv, MatrixInt &colSpaceBasis, MatrixInt &colSpaceBasisInv) |
An alternative Smith normal form algorithm that also returns change of basis matrices. More... | |
size_t | rowBasis (MatrixInt &matrix) |
Find a basis for the row space of the given matrix. More... | |
size_t | rowBasisAndOrthComp (MatrixInt &input, MatrixInt &complement) |
Finds a basis for the row space of the given matrix, as well as an "incremental" basis for its orthogonal complement. More... | |
void | columnEchelonForm (MatrixInt &M, MatrixInt &R, MatrixInt &Ri, const std::vector< size_t > &rowList) |
Transforms a given matrix into column echelon form with respect to a collection of rows. More... | |
MatrixInt | preImageOfLattice (const MatrixInt &hom, const std::vector< Integer > &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... | |
MatrixInt | torsionAutInverse (const MatrixInt &input, const std::vector< Integer > &invF) |
Given an automorphism of an abelian group, this procedure computes the inverse automorphism. More... | |
long | reducedMod (long k, long modBase) |
Reduces k modulo modBase to give the smallest possible absolute value. More... | |
long | gcd (long a, long b) |
Deprecated routine that calculates the greatest common divisor of two signed integers. More... | |
std::tuple< long, long, long > | gcdWithCoeffs (long a, long b) |
Calculates the greatest common divisor of two given integers and finds the smallest coefficients with which these integers combine to give their gcd. More... | |
long | lcm (long a, long b) |
Deprecated routine that calculates the lowest common multiple of two signed integers. More... | |
unsigned long | modularInverse (unsigned long n, unsigned long k) |
Calculates the multiplicative inverse of one integer modulo another. More... | |
constexpr char | digit (int i) |
Returns the character used to express the integer i in a permutation. More... | |
constexpr int64_t | factorial (int n) |
Returns the factorial of n. More... | |
template<int n> | |
std::ostream & | operator<< (std::ostream &out, const Perm< n > &p) |
Writes a string representation of the given permutation to the given output stream. More... | |
template<int n> | |
std::ostream & | operator<< (std::ostream &out, const PermClass< n > &c) |
Writes a string representation of the given conjugacy class of permutations to the given output stream. More... | |
template<typename T > | |
void | swap (Polynomial< T > &a, Polynomial< T > &b) noexcept |
Swaps the contents of the given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator* (Polynomial< T > poly, const typename Polynomial< T >::Coefficient &scalar) |
Multiplies the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Polynomial< T > | operator* (const typename Polynomial< T >::Coefficient &scalar, Polynomial< T > poly) |
Multiplies the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Polynomial< T > | operator/ (Polynomial< T > poly, const typename Polynomial< T >::Coefficient &scalar) |
Divides the given polynomial by the given scalar constant. More... | |
template<typename T > | |
Polynomial< T > | operator+ (const Polynomial< T > &lhs, const Polynomial< T > &rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator+ (Polynomial< T > &&lhs, const Polynomial< T > &rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator+ (const Polynomial< T > &lhs, Polynomial< T > &&rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator+ (Polynomial< T > &&lhs, Polynomial< T > &&rhs) |
Adds the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator- (Polynomial< T > arg) |
Returns the negative of the given polynomial. More... | |
template<typename T > | |
Polynomial< T > | operator- (const Polynomial< T > &lhs, const Polynomial< T > &rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator- (Polynomial< T > &&lhs, const Polynomial< T > &rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator- (const Polynomial< T > &lhs, Polynomial< T > &&rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator- (Polynomial< T > &&lhs, Polynomial< T > &&rhs) |
Subtracts the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator* (const Polynomial< T > &lhs, const Polynomial< T > &rhs) |
Multiplies the two given polynomials. More... | |
template<typename T > | |
Polynomial< T > | operator/ (Polynomial< T > lhs, const Polynomial< T > &rhs) |
Divides the two given polynomials. More... | |
void | swap (Rational &a, Rational &b) noexcept |
Swaps the contents of the given rationals. More... | |
std::ostream & | operator<< (std::ostream &out, const Rational &rat) |
Writes the given rational to the given output stream. More... | |
template<typename T > | |
void | swap (Vector< T > &a, Vector< T > &b) noexcept |
Swaps the contents of the given vectors. More... | |
template<class T > | |
std::ostream & | operator<< (std::ostream &out, const Vector< T > &vector) |
Writes the given vector to the given output stream. More... | |
void | swap (Attachment &a, Attachment &b) |
Swaps the contents of the given attachment packets. More... | |
void | swap (Container &, Container &) |
Swap function for container packets that does nothing. More... | |
template<typename Held > | |
std::shared_ptr< PacketOf< Held > > | make_packet (Held &&src) |
Converts a temporary Held object into a new wrapped packet, without making a deep copy. More... | |
template<typename Held > | |
std::shared_ptr< PacketOf< Held > > | make_packet (Held &&src, const std::string &label) |
Converts a temporary Held object into a new wrapped packet, without making a deep copy. More... | |
template<typename Held , typename... Args> | |
std::shared_ptr< PacketOf< Held > > | make_packet (std::in_place_t, Args &&... args) |
Creates a new packet that wraps a Held object, passing the given arguments to the Held constructor. More... | |
template<typename Held > | |
std::shared_ptr< PacketOf< Held > > | make_packet () |
Creates a new packet that wraps a default-constructed Held object. More... | |
template<typename Held > | |
Held & | static_packet_cast (Packet &p) |
Casts a reference from Packet to Held, assuming that the given packet is actually a PacketOf<Held>. More... | |
template<typename Held > | |
const Held & | static_packet_cast (const Packet &p) |
Casts a const reference from Packet to Held, assuming that the given packet is actually a PacketOf<Held>. More... | |
std::shared_ptr< Packet > | open (const char *filename) |
Reads a Regina data file, and returns the corresponding packet tree. More... | |
std::shared_ptr< Packet > | open (std::istream &in) |
Reads a Regina data file from the given input stream, and returns the corresponding packet tree. More... | |
bool | operator== (const Packet *packet, PacketShell shell) |
Identifies if the given shell refers to the given packet. More... | |
bool | operator!= (const Packet *packet, PacketShell shell) |
Identifies if the given shell does not refer to the given packet. More... | |
void | swap (Script &a, Script &b) |
Swaps the contents of the given script packets. More... | |
void | swap (Text &a, Text &b) |
Swaps the contents of the given text packets. More... | |
constexpr bool | standardDim (int dim) |
Indicates whether the given dimension is one of Regina's standard dimensions. More... | |
constexpr int | maxDim () |
Indicates that largest dimension of triangulation that Regina can work with. More... | |
void | swap (SnapPeaTriangulation &lhs, SnapPeaTriangulation &rhs) |
Swaps the contents of the two given SnapPea triangulations. More... | |
void | swap (SigPartialIsomorphism &a, SigPartialIsomorphism &b) noexcept |
Swaps the contents of the given partial isomorphisms. More... | |
void | swap (Signature &a, Signature &b) noexcept |
Swaps the contents of the given signatures. More... | |
void | swap (AugTriSolidTorus &a, AugTriSolidTorus &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (BlockedSFS &a, BlockedSFS &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (BlockedSFSLoop &a, BlockedSFSLoop &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (BlockedSFSPair &a, BlockedSFSPair &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (BlockedSFSTriple &a, BlockedSFSTriple &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (LayeredChain &a, LayeredChain &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (LayeredChainPair &a, LayeredChainPair &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (LayeredLensSpace &a, LayeredLensSpace &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (LayeredLoop &a, LayeredLoop &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (LayeredSolidTorus &a, LayeredSolidTorus &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (LayeredTorusBundle &a, LayeredTorusBundle &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (PluggedTorusBundle &a, PluggedTorusBundle &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (PlugTriSolidTorus &a, PlugTriSolidTorus &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (SatBlockModel &a, SatBlockModel &b) noexcept |
Swaps the contents of the two given models. More... | |
void | swap (SatBlockSpec &a, SatBlockSpec &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (SatRegion &a, SatRegion &b) noexcept |
Swaps the contents of the two given regions. More... | |
void | swap (SnapPeaCensusTri &a, SnapPeaCensusTri &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (SnappedBall &a, SnappedBall &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (SpiralSolidTorus &a, SpiralSolidTorus &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (TriSolidTorus &a, TriSolidTorus &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (TrivialTri &a, TrivialTri &b) noexcept |
Swaps the contents of the two given structures. More... | |
void | swap (TxIDiagonalCore &lhs, TxIDiagonalCore &rhs) |
Swaps the contents of the two given T x I triangulations. More... | |
void | swap (TxIParallelCore &lhs, TxIParallelCore &rhs) |
Swaps the contents of the two given T x I triangulations. More... | |
std::ostream & | operator<< (std::ostream &out, const DiscSpec &spec) |
Writes the given disc specifier to the given output stream. More... | |
bool | numberDiscsAwayFromVertex (int discType, int vertex) |
Determines whether or not normal discs of the given type are numbered away from the given vertex. More... | |
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... | |
template<class T > | |
void | swap (DiscSetTetData< T > &a, DiscSetTetData< T > &b) noexcept |
Swaps the contents of the two given disc sets. More... | |
template<class T > | |
void | swap (DiscSetSurfaceDataImpl< T > &a, DiscSetSurfaceDataImpl< T > &b) noexcept |
Swaps the contents of the two given disc sets. More... | |
std::ostream & | operator<< (std::ostream &out, const DiscType &type) |
Writes the given disc type to the given output stream. 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... | |
void | swap (NormalSurface &a, NormalSurface &b) noexcept |
Swaps the contents of the given normal surfaces. More... | |
SurfaceExport | operator| (SurfaceExportFields lhs, SurfaceExportFields rhs) |
Returns the bitwise OR of the two given flags. More... | |
void | swap (NormalSurfaces &lhs, NormalSurfaces &rhs) |
Swaps the contents of the two given lists. More... | |
MatrixInt | makeMatchingEquations (const Triangulation< 3 > &triangulation, NormalCoords coords) |
Generates the set of normal surface matching equations for the given triangulation using the given coordinate system. More... | |
ValidityConstraints | makeEmbeddedConstraints (const Triangulation< 3 > &triangulation, NormalCoords coords) |
Generates the validity constraints representing the condition that normal surfaces be embedded. More... | |
std::ostream & | operator<< (std::ostream &out, const PrismSpec &spec) |
Writes the given prism specifier to the given output stream. More... | |
void | swap (SurfaceFilterCombination &a, SurfaceFilterCombination &b) |
Swaps the contents of the given combination filters. More... | |
void | swap (SurfaceFilterProperties &a, SurfaceFilterProperties &b) |
Swaps the contents of the given property-based filters. More... | |
void | swap (TreeDecomposition &a, TreeDecomposition &b) noexcept |
Swaps the contents of the two given tree decompositions. More... | |
void | swap (Cut &a, Cut &b) noexcept |
Swaps the contents of the given cuts. More... | |
template<int dim> | |
void | swap (FacetPairing< dim > &a, FacetPairing< dim > &b) noexcept |
Swaps the contents of the given facet pairings. More... | |
template<int dim> | |
void | swap (Triangulation< dim > &lhs, Triangulation< dim > &rhs) |
Swaps the contents of the two given triangulations. More... | |
void | swap (HomologicalData &a, HomologicalData &b) noexcept |
Swaps the contents of the two given HomologicalData objects. More... | |
Triangulation< 3 > & | static_triangulation3_cast (Packet &p) |
Casts a reference from Packet to Triangulation<3>, allowing for the packet to hold either a Triangulation<3> or a SnapPeaTriangulation. More... | |
const Triangulation< 3 > & | static_triangulation3_cast (const Packet &p) |
Casts a const reference from Packet to Triangulation<3>, allowing for the packet to hold either a Triangulation<3> or a SnapPeaTriangulation. More... | |
template<int dim> | |
constexpr int | faceOppositeEdge (int i, int j) |
Returns the (dim-2)-face number that is opposite the edge joining vertices i and j in a dim-dimensional simplex. More... | |
std::ostream & | operator<< (std::ostream &out, const FacePair &pair) |
Writes the given face pair to the given output stream. More... | |
template<int dim> | |
std::ostream & | operator<< (std::ostream &out, const FacetSpec< dim > &spec) |
Writes the given facet specifier to the given output stream. More... | |
template<int dim> | |
void | swap (Isomorphism< dim > &a, Isomorphism< dim > &b) noexcept |
Swaps the contents of the given isomorphisms. More... | |
size_t | base64Length (size_t bytes) |
Returns the number of base64 characters required to encode the given number of bytes. More... | |
bool | isBase64 (char ch) |
Determines whether the given character is a base64 printable character as used by the base64 routines in Regina. More... | |
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... | |
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... | |
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... | |
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... | |
void | swap (Bitmask &a, Bitmask &b) noexcept |
Swaps the contents of the two given bitmasks. More... | |
std::ostream & | operator<< (std::ostream &out, const Bitmask &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 Bitmask1< 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 Bitmask2< T, U > &mask) |
Writes the given bitmask to the given output stream as a sequence of zeroes and ones. More... | |
std::ostream & | operator<< (std::ostream &out, BoolSet set) |
Writes the given boolean set to the given output stream. More... | |
template<typename IntType > | |
constexpr int | bitsRequired (IntType n) |
Returns the number of bits required to store integers in the range 0,...,n-1. More... | |
template<typename IntType > | |
constexpr IntType | nextPowerOfTwo (IntType n) |
Returns the smallest integer power of two that is greater than or equal to the given argument n. More... | |
template<typename T > | |
void | swap (MarkedVector< T > &a, MarkedVector< T > &b) noexcept |
Swaps the contents of the given vectors. More... | |
std::tuple< unsigned long, unsigned long, unsigned long > | resUsage () |
Returns time and memory usage for the current process, for use on Linux systems. More... | |
void | writeResUsage (std::ostream &out) |
Writes time and memory usage for the current process to the given output stream, for use on Linux systems. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &out, const Qitmask1< 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 Qitmask2< 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 LightweightSequence< T > &s) |
Writes the given sequence to the given output stream. More... | |
template<typename T > | |
void | swap (LightweightSequence< T > &a, LightweightSequence< T > &b) noexcept |
Swaps the contents of the given sequences. More... | |
template<class T > | |
void | swap (SnapshotRef< T > &a, SnapshotRef< T > &b) noexcept |
Swaps the given references so that they refer to each others' snapshots. More... | |
bool | startsWith (const std::string &str, const std::string &prefix) |
Determines whether the given C++ string begins with the given prefix. More... | |
std::string | stripWhitespace (const std::string &str) |
Strips all whitespace from the beginning and end of the given C++ string. More... | |
bool | valueOf (const std::string &str, int8_t &dest) |
Converts the entire given string to an 8-bit integer and reports whether this conversion was successful. More... | |
bool | valueOf (const std::string &str, uint8_t &dest) |
Converts the entire given string to an unsigned 8-bit integer and reports whether this conversion was successful. More... | |
bool | valueOf (const std::string &str, short &dest) |
Converts the entire given string to a short integer and reports whether this conversion was successful. More... | |
bool | valueOf (const std::string &str, unsigned short &dest) |
Converts the entire given string to an unsigned short integer and reports whether this conversion was successful. More... | |
bool | valueOf (const std::string &str, int &dest) |
Converts the entire given string to an integer and reports whether this conversion was successful. More... | |
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... | |
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... | |
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... | |
bool | valueOf (const std::string &str, long long &dest) |
Converts the entire given string to a long long integer and reports whether this conversion was successful. More... | |
bool | valueOf (const std::string &str, unsigned long long &dest) |
Converts the entire given string to an unsigned long long integer and reports whether this conversion was successful. More... | |
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... | |
bool | valueOf (const std::string &str, bool &dest) |
Converts the entire given string to a boolean and reports whether this conversion was successful. More... | |
bool | valueOf (const std::string &str, BoolSet &dest) |
Converts the entire given string to a set of booleans and reports whether this conversion was successful. More... | |
std::vector< std::string > | basicTokenise (const std::string &str) |
Decomposes the given string into tokens. More... | |
std::string | stringToToken (std::string str) |
Returns a token derived from the given string. More... | |
template<typename T > | |
std::string | superscript (T value) |
Converts the given C++ integer into a unicode superscript string. More... | |
template<typename T > | |
std::string | subscript (T value) |
Converts the given C++ integer into a unicode subscript string. More... | |
void | tightEncode (std::ostream &out, int value) |
Writes the tight encoding of the given signed integer to the given output stream. More... | |
std::string | tightEncoding (int value) |
Returns the tight encoding of the given signed integer. More... | |
void | tightEncode (std::ostream &out, long value) |
Writes the tight encoding of the given signed long integer to the given output stream. More... | |
std::string | tightEncoding (long value) |
Returns the tight encoding of the given signed long integer. More... | |
void | tightEncode (std::ostream &out, long long value) |
Writes the tight encoding of the given signed long long integer to the given output stream. More... | |
std::string | tightEncoding (long long value) |
Returns the tight encoding of the given signed long long integer. More... | |
void | tightEncode (std::ostream &out, unsigned value) |
Writes the tight encoding of the given unsigned integer to the given output stream. More... | |
std::string | tightEncoding (unsigned value) |
Returns the tight encoding of the given unsigned integer. More... | |
void | tightEncode (std::ostream &out, unsigned long value) |
Writes the tight encoding of the given unsigned long integer to the given output stream. More... | |
std::string | tightEncoding (unsigned long value) |
Returns the tight encoding of the given unsigned long integer. More... | |
void | tightEncode (std::ostream &out, unsigned long long value) |
Writes the tight encoding of the given unsigned long long integer to the given output stream. More... | |
std::string | tightEncoding (unsigned long long value) |
Returns the tight encoding of the given unsigned long long integer. More... | |
void | tightEncode (std::ostream &out, bool value) |
Writes the tight encoding of the given boolean to the given output stream. More... | |
std::string | tightEncoding (bool value) |
Returns the tight encoding of the given boolean. More... | |
template<typename Int > | |
Int | tightDecoding (const std::string &enc) |
Reconstructs an integer or boolean from its given tight encoding. More... | |
template<typename Int > | |
Int | tightDecode (std::istream &input) |
Reconstructs an integer or boolean from its given tight encoding. More... | |
void | swap (TrieSet &a, TrieSet &b) noexcept |
Swaps the contents of the two given collections. More... | |
template<int from, int to, class Action > | |
constexpr void | for_constexpr (Action &&action) |
Implements a compile-time for loop over a range of integers. More... | |
template<int from, int to, typename Return , class Action > | |
constexpr Return | select_constexpr (int value, Action &&action) |
Implements a compile-time selection, where the runtime argument must belong to a compile-time range of integers, and the value of the argument determines what is returned. More... | |
template<int from, int to, class Action > | |
constexpr auto | select_constexpr_as_variant (int value, Action &&action) |
A variant of select_constexpr() where the return type is a variant, built from the return types for all integers in the given compile-time range. More... | |
const char * | pythonTypename (const std::type_info *t) |
Returns the preferred Python display name for the given C++ type. More... | |
Variables | |
template<typename Held > | |
static constexpr PacketType | packetTypeHolds = PACKET_NONE |
The packet type constant for a packet wrapping an object of type Held. More... | |
constexpr int | quadSeparating [4][4] |
Lists which quadrilateral types separate which pairs of vertices in a tetrahedron. More... | |
constexpr int | quadMeeting [4][4][2] |
Lists which quadrilateral types meet which edges in a tetrahedron. More... | |
constexpr int | quadDefn [3][4] |
Lists which vertices each quadrilateral type separates in a tetrahedron. More... | |
constexpr int | quadPartner [3][4] |
Lists the second vertex with which each vertex is paired under each quadrilateral type in a tetrahedron. More... | |
constexpr char | quadString [3][6] = { "01/23", "02/13", "03/12" } |
Contains strings that can be used to represent each quadrilateral type in a tetrahedron. More... | |
constexpr Perm< 4 > | triDiscArcs [4][3] |
Lists in consecutive order the directed normal arcs that form the boundary of each type of triangular normal disc. More... | |
constexpr Perm< 4 > | quadDiscArcs [3][4] |
Lists in consecutive order the directed normal arcs that form the boundary of each type of quadrilateral normal disc. More... | |
constexpr Perm< 4 > | octDiscArcs [3][8] |
Lists in consecutive order the directed normal arcs that form the boundary of each type of octagonal normal disc. More... | |
constexpr char | base64Table [] |
The table of all base64 printable characters, as used by the base64 routines in Regina. More... | |
constexpr char | base64Spare [] = "_-." |
A table of printable characters that are not amongst the base64 printable characters used by Regina. More... | |
template<typename IntType , IntType coeff> | |
constexpr IntType | maxSafeFactor |
The largest integer of the given type that can be multiplied by coeff without overflowing. More... | |
template<typename IntType , IntType coeff> | |
constexpr IntType | minSafeFactor |
The largest integer of the given type that can be multiplied by coeff without overflowing. More... | |
Contains the entire Regina calculation engine.
Define REGINA_VERIFY_LPDATA to check invariants as the algorithm runs.
This checking is slow and can increase the running time significantly.
using regina::safe_tuple_element = typedef typename regina::detail::safe_tuple_element_impl< pos, tuple, out_of_range>::type |
An alternative to std::tuple_element that gracefully handles an out-of-range index.
If pos is a valid index into the tuple type tuple, then this type alias is identical to std::tuple_element<pos, tuple>::type. Otherwise this type alias is identical to the argument out_of_range.
Note that you should not append ::type
when using safe_tuple_element (i.e., this is really a drop-in replacement for the C++17 type alias std::tuple_element_t, and not the C++11 structure std::tuple_element).
pos | an index, which may take any integer value. |
tuple | a std::tuple type (which is allowed to include const and/or volatile modifiers). |
out_of_range | the type to use if pos is not a valid index into tuple. |
Constants that represent particular well-known classes of permutation groups.
These constants are intended to be used with permutation groups on n elements for arbitrary n. (In particular, you can pass them to the PermGroup<n> constructor.)
enum regina::PacketHeldBy |
Internal constants that support wrapped packets.
These constants indicate whether an object of type Held is in fact part of the inherited interface for a derived class of Held, which is typically the wrapped packet type PacketOf<Held>. These constants are used as a lightweight (and significantly less rich) replacement for polymorphism, virtual functions and dynamic casts.
These constants only know about two types of relationships:
Of course, a Triangulation<3> could belong to a SnapPeaTriangulation which is then held by a PacketOf<SnapPeaTriangulation>. In this case the inherited PacketData<Triangulation<3>> will store HELD_BY_SNAPPEA, and the inherited PacketData<SnapPeaTriangulation> will store HELD_BY_PACKET.
Enumerator | |
---|---|
HELD_BY_NONE | Indicates that the object is not held within either a wrapped packet or a SnapPea triangulation. |
HELD_BY_PACKET | Indicates that an object of type Held is in fact the inherited data for a PacketOf<Held>. |
HELD_BY_SNAPPEA | Indicates that a Triangulation<3> is in fact the inherited native Regina data for a SnapPeaTriangulation. |
const char * regina::pythonTypename | ( | const std::type_info * | t | ) |
Returns the preferred Python display name for the given C++ type.
The Python bindings have an internal mechanism for converting any C++ type into a suitable display name. However, for some of Regina's classes the results are not ideal.
For example, the 3-D triangulation class may be displayed as regina::Triangulation<3>
instead of its "real" Python name regina.Triangulation3
. (This kind of problem most commonly appears in docstrings, where function signatures are generated as each function is bound, which may happen before all of the types in the argument/return list have been bound.)
The purpose of this function is to override this default typename conversion mechanism. If the C++ type referred to by t has a known Python name that should always be used, this function will return it. Otherwise this function returns nullptr
, indicating that the default conversion mechanism should be used.
t | an object that references the C++ type whose display name we wish to obtain. |
nullptr
if the default C++-to-Python name conversion mechanism should be used.
|
inline |
Reconstructs an integer or boolean from its given tight encoding.
See the page on tight encodings for details.
The tight encoding will be read from the given input stream. If the input stream contains leading whitespace then it will be treated as an invalid encoding (i.e., this routine will throw an exception). The input routine may contain further data: if this routine is successful then the input stream will be left positioned immediately after the encoding, without skipping any trailing whitespace.
This routine does recognise infinity in the case where Int is the type regina::LargeInteger.
If Int is one of Regina's arbitrary precision integer types, then this routine is identical to calling Int::tightDecode().
bool
; signed and unsigned int
, long
, and long
long
; and regina::Integer and regina::LargeInteger).InvalidInput | The given input stream does not begin with a tight encoding of an integer/boolean of type Int. This includes the case where the encoding is a valid integer encoding but the integer itself is outside the allowed range for the Int type. |
Int | The type of integer/boolean to reconstruct; this must be either (i) a native C++ integer type or bool , or (ii) one of Regina's arbitrary precision integer types (i.e., regina::Integer or regina::LargeInteger). |
input | an input stream that begins with the tight encoding for an integer or boolean. |
|
inline |
Reconstructs an integer or boolean from its given tight encoding.
See the page on tight encodings for details.
The tight encoding should be given as a string. If this string contains leading whitespace or any trailing characters at all (including trailing whitespace), then it will be treated as an invalid encoding (i.e., this routine will throw an exception).
This routine does recognise infinity in the case where Int is the type regina::LargeInteger.
If Int is one of Regina's arbitrary precision integer types, then this routine is identical to calling Int::tightDecoding().
bool
; signed and unsigned int
, long
, and long
long
; and regina::Integer and regina::LargeInteger).InvalidArgument | The given string is not a tight encoding of an integer/boolean of type Int. This includes the case where the encoding is a valid integer encoding but the integer itself is outside the allowed range for the Int type. |
true
or false
respectively. If you are trying to reconstruct one of Regina's arbitrary precision integer types, you should instead call Integer::tightDecoding() or LargeInteger::tightDecoding(), which will return a Regina integer instead of a Python integer.Int | The type of integer/boolean to reconstruct; this must be either (i) a native C++ integer type or bool , or (ii) one of Regina's arbitrary precision integer types (i.e., regina::Integer or regina::LargeInteger). |
enc | the tight encoding for an integer or boolean. |
void regina::writeResUsage | ( | std::ostream & | out | ) |
Writes time and memory usage for the current process to the given output stream, for use on Linux systems.
This simply writes the information gathered from resUsage() to the given output stream in a human-readable format. See resUsage() for full details on what this information means and on what systems it can be accessed.
The output will be written in the following format, with no final newline, and without flushing the output stream:
Unline resUsage(), if an error occurs then this routine will not throw an exception. Instead it will write an appropriate message to the output stream.
out | the output stream to which to write. |
|
staticconstexpr |
The packet type constant for a packet wrapping an object of type Held.
This variable is only meaningful when Held is not itself a packet type, but instead is a standalone type that can (if desired) be wrapped in a packet of type PacketOf<Held>. Examples of such types include Link and Triangulation<dim>.
In all other cases, this variable will be PACKET_NONE.
In particular, if Held is a full packet type itself (such as Container, Script, or PacketOf<...>), then this template variable will be PACKET_NONE.