Regina Calculation Engine
Classes | Typedefs | Functions | Variables | Friends
Triangulations

Triangulations of manifolds in all supported dimensions. More...

Classes

class  regina::Example< dim >
 This class offers static routines for constructing a variety of sample dim-dimensional triangulations. More...
 
class  regina::Example< 2 >
 Offers routines for constructing a variety of sample 2-dimensional triangulations. More...
 
class  regina::Example< 3 >
 Offers routines for constructing a variety of sample 3-dimensional triangulations. More...
 
class  regina::Example< 4 >
 Offers routines for constructing a variety of sample 4-dimensional triangulations. More...
 
class  regina::FaceNumbering< dim, subdim >
 Specifies how subdim-faces are numbered within a dim-dimensional simplex. More...
 
class  regina::FacePair
 Represents a pair of tetrahedron face numbers. More...
 
class  regina::FacetPairing< 3 >
 Represents the dual graph of a 3-manifold triangulation. More...
 
struct  regina::FacetSpec< dim >
 A lightweight class used to refer to a particular facet of a particular top-dimensional simplex in a dim-dimensional triangulation. More...
 
class  regina::BoundaryComponent< dim >
 A component of the boundary of a dim-manifold triangulation. More...
 
class  regina::Component< dim >
 A connected component of a dim-manifold triangulation. More...
 
class  regina::Face< dim, subdim >
 Represents a subdim-face in the skeleton of a dim-dimensional triangulation. More...
 
class  regina::FaceEmbedding< dim, subdim >
 Details how a subdim-face of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
 
class  regina::FacetPairing< dim >
 Represents the dual graph of a dim-manifold triangulation; that is, the pairwise matching of facets of dim-dimensional simplices. More...
 
class  regina::Isomorphism< dim >
 Represents a combinatorial isomorphism from one dim-manifold triangulation into another. More...
 
class  regina::Triangulation< dim >
 A dim-dimensional triangulation, built by gluing together dim-dimensional simplices along their (dim-1)-dimensional facets. More...
 
class  regina::HomologicalData
 Data type that deals with all the detailed homological information in a manifold. More...
 
class  regina::XMLTriangulationReader< dim >
 An XML packet reader that reads a single dim-dimensional triangulation. More...
 
class  regina::XMLTriangulationReader< 2 >
 An XML packet reader that reads a single 2-dimensional triangulation. More...
 
class  regina::XMLTriangulationReader< 3 >
 An XML packet reader that reads a single 3-dimensional triangulation. More...
 
class  regina::XMLTriangulationReader< 4 >
 An XML packet reader that reads a single 4-dimensional triangulation. More...
 

Typedefs

typedef Example< 2 > regina::Dim2ExampleTriangulation
 Deprecated typedef for backward compatibility. More...
 
typedef Example< 3 > regina::NExampleTriangulation
 Deprecated typedef for backward compatibility. More...
 
typedef Example< 4 > regina::Dim4ExampleTriangulation
 Deprecated typedef for backward compatibility. More...
 
typedef FacePair regina::NFacePair
 Deprecated typedef for backward compatibility. More...
 
typedef FacetPairing< 3 > regina::NFacePairing
 Deprecated typedef for backward compatibility. More...
 
typedef FacetSpec< 2 > regina::Dim2TriangleEdge
 Deprecated typedef for backward compatibility. More...
 
typedef FacetSpec< 3 > regina::NTetFace
 Deprecated typedef for backward compatibility. More...
 
typedef FacetSpec< 4 > regina::Dim4PentFacet
 Deprecated typedef for backward compatibility. More...
 
typedef HomologicalData regina::NHomologicalData
 Deprecated typedef for backward compatibility. More...
 

Functions

static Triangulation< 2 > * regina::Example< 2 >::orientable (unsigned genus, unsigned punctures)
 Returns a triangulation of the given orientable surface. More...
 
static Triangulation< 2 > * regina::Example< 2 >::nonOrientable (unsigned genus, unsigned punctures)
 Returns a triangulation of the given non-orientable surface. More...
 
static Triangulation< 2 > * regina::Example< 2 >::sphereTetrahedron ()
 Returns the four-triangle 2-sphere formed from the boundary of a tetrahedron. More...
 
static Triangulation< 2 > * regina::Example< 2 >::sphereOctahedron ()
 Returns the eight-triangle 2-sphere formed from the boundary of an octahedron. More...
 
static Triangulation< 2 > * regina::Example< 2 >::disc ()
 Returns a one-triangle disc. More...
 
static Triangulation< 2 > * regina::Example< 2 >::annulus ()
 Returns a two-triangle annulus. More...
 
static Triangulation< 2 > * regina::Example< 2 >::mobius ()
 Returns a one-triangle Mobius band. More...
 
static Triangulation< 2 > * regina::Example< 2 >::torus ()
 Returns a two-triangle torus. More...
 
static Triangulation< 2 > * regina::Example< 2 >::rp2 ()
 Returns a two-triangle projective plane. More...
 
static Triangulation< 2 > * regina::Example< 2 >::kb ()
 Returns a two-triangle Klein bottle. More...
 
template<int dim>
int regina::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...
 
 regina::FacePair::FacePair ()
 Creates a new face pair (0,1). More...
 
 regina::FacePair::FacePair (int newFirst, int newSecond)
 Creates a new face pair from the two given face numbers. More...
 
 regina::FacePair::FacePair (const FacePair &cloneMe)=default
 Creates a new face pair that is a clone of the given pair. More...
 
unsigned regina::FacePair::lower () const
 Returns the smaller of the two face numbers in this pair. More...
 
unsigned regina::FacePair::upper () const
 Returns the larger of the two face numbers in this pair. More...
 
bool regina::FacePair::isBeforeStart () const
 Determines if this face pair represents a before-the-start value. More...
 
bool regina::FacePair::isPastEnd () const
 Determines if this face pair represents a past-the-end value. More...
 
FacePair regina::FacePair::complement () const
 Returns the complement of this face pair. More...
 
FacePairregina::FacePair::operator= (const FacePair &cloneMe)=default
 Sets this face pair to be a copy of the given pair. More...
 
bool regina::FacePair::operator== (const FacePair &other) const
 Determines if this and the given face pair are equal. More...
 
bool regina::FacePair::operator!= (const FacePair &other) const
 Determines if this and the given face pair are not equal. More...
 
bool regina::FacePair::operator< (const FacePair &other) const
 Determines if this is less than the given face pair. More...
 
bool regina::FacePair::operator> (const FacePair &other) const
 Determines if this is greater than the given face pair. More...
 
bool regina::FacePair::operator<= (const FacePair &other) const
 Determines if this is less than or equal to the given face pair. More...
 
bool regina::FacePair::operator>= (const FacePair &other) const
 Determines if this is greater than or equal to the given face pair. More...
 
FacePairregina::FacePair::operator++ ()
 Increments this face pair. More...
 
FacePair regina::FacePair::operator++ (int)
 Increments this face pair. More...
 
FacePairregina::FacePair::operator-- ()
 Decrements this face pair. More...
 
FacePair regina::FacePair::operator-- (int)
 Decrements this face pair. More...
 
std::ostream & regina::operator<< (std::ostream &out, const FacePair &pair)
 Writes the given face pair to the given output stream. More...
 
 regina::FacetPairing< 3 >::FacetPairing (const FacetPairing &cloneMe)
 Creates a new face pairing that is a clone of the given face pairing. More...
 
 regina::FacetPairing< 3 >::FacetPairing (const Triangulation< 3 > &tri)
 Creates the face pairing of the given 3-manifold triangulation. More...
 
void regina::FacetPairing< 3 >::followChain (size_t &tet, FacePair &faces) const
 Follows a chain as far as possible from the given point. More...
 
bool regina::FacetPairing< 3 >::hasTripleEdge () const
 Determines whether this face pairing contains a triple edge. More...
 
bool regina::FacetPairing< 3 >::hasBrokenDoubleEndedChain () const
 Determines whether this face pairing contains a broken double-ended chain. More...
 
bool regina::FacetPairing< 3 >::hasOneEndedChainWithDoubleHandle () const
 Determines whether this face pairing contains a one-ended chain with a double handle. More...
 
bool regina::FacetPairing< 3 >::hasWedgedDoubleEndedChain () const
 Determines whether this face pairing contains a wedged double-ended chain. More...
 
bool regina::FacetPairing< 3 >::hasOneEndedChainWithStrayBigon () const
 Determines whether this face pairing contains a one-ended chain with a stray bigon. More...
 
bool regina::FacetPairing< 3 >::hasTripleOneEndedChain () const
 Determines whether this face pairing contains a triple one-ended chain. More...
 
bool regina::FacetPairing< 3 >::hasSingleStar () const
 Determines whether this face pairing contains a single-edged star. More...
 
bool regina::FacetPairing< 3 >::hasDoubleStar () const
 Determines whether this face pairing contains a double-edged star. More...
 
bool regina::FacetPairing< 3 >::hasDoubleSquare () const
 Determines whether this face pairing contains a double-edged square. More...
 
 regina::FacetSpec< dim >::FacetSpec ()
 Creates a new specifier with no initialisation. More...
 
 regina::FacetSpec< dim >::FacetSpec (int newSimp, int newFacet)
 Creates a new specifier referring to the given facet of the given simplex. More...
 
 regina::FacetSpec< dim >::FacetSpec (const FacetSpec< dim > &cloneMe)=default
 Creates a new specifier referring to the same simplex facet as the given specifier. More...
 
bool regina::FacetSpec< dim >::isBoundary (size_t nSimplices) const
 Determines if this specifier represents the overall boundary. More...
 
bool regina::FacetSpec< dim >::isBeforeStart () const
 Determines if this specifier represents a before-the-start value. More...
 
bool regina::FacetSpec< dim >::isPastEnd (size_t nSimplices, bool boundaryAlso) const
 Determines if this specifier represents a past-the-end value. More...
 
void regina::FacetSpec< dim >::setFirst ()
 Sets this specifier to the first facet of the first simplex. More...
 
void regina::FacetSpec< dim >::setBoundary (size_t nSimplices)
 Sets this specifier to the overall boundary. More...
 
void regina::FacetSpec< dim >::setBeforeStart ()
 Sets this specifier to before-the-start. More...
 
void regina::FacetSpec< dim >::setPastEnd (size_t nSimplices)
 Sets this specifier to past-the-end. More...
 
FacetSpecregina::FacetSpec< dim >::operator= (const FacetSpec< dim > &other)=default
 Sets this specifier to the value of the given specifier. More...
 
FacetSpecregina::FacetSpec< dim >::operator++ ()
 Increments this specifier. More...
 
FacetSpec regina::FacetSpec< dim >::operator++ (int)
 Increments this specifier. More...
 
FacetSpecregina::FacetSpec< dim >::operator-- ()
 Decrements this specifier. More...
 
FacetSpec regina::FacetSpec< dim >::operator-- (int)
 Decrements this specifier. More...
 
bool regina::FacetSpec< dim >::operator== (const FacetSpec< dim > &other) const
 Determines if this and the given specifier are identical. More...
 
bool regina::FacetSpec< dim >::operator!= (const FacetSpec< dim > &other) const
 Determines if this and the given specifier are not identical. More...
 
bool regina::FacetSpec< dim >::operator< (const FacetSpec< dim > &other) const
 Determines if this is less than the given specifier. More...
 
bool regina::FacetSpec< dim >::operator<= (const FacetSpec< dim > &other) const
 Determines if this is less than or equal to the given specifier. More...
 
template<int dim>
std::ostream & regina::operator<< (std::ostream &out, const FacetSpec< dim > &spec)
 Writes the given facet specifier to the given output stream. More...
 
 regina::HomologicalData::SortedArray::SortedArray ()
 Construct an empty array. More...
 
 regina::HomologicalData::SortedArray::SortedArray (const SortedArray &)=default
 Construct a clone of the given array. More...
 
SortedArray & regina::HomologicalData::SortedArray::operator= (const SortedArray &)=default
 Set this to a clone of the given array. More...
 
size_t regina::HomologicalData::SortedArray::size () const
 Return the number of elements in this array. More...
 
unsigned long regina::HomologicalData::SortedArray::operator[] (size_t index) const
 Return the integer at the given index in this array. More...
 
ptrdiff_t regina::HomologicalData::SortedArray::index (unsigned long value) const
 Finds the index of the given integer in this array. More...
 
void regina::HomologicalData::SortedArray::push_back (unsigned long value)
 Pushes the given integer onto the end of this array. More...
 
 regina::HomologicalData::HomologicalData (const Triangulation< 3 > &input)
 Takes as input a triangulation. More...
 
 regina::HomologicalData::HomologicalData (const HomologicalData &h)
 Copy constructor. More...
 
 regina::HomologicalData::~HomologicalData ()
 Destructor. More...
 
void regina::HomologicalData::writeTextShort (std::ostream &out) const
 Writes a short text representation of this object to the given output stream. More...
 
const MarkedAbelianGroupregina::HomologicalData::homology (unsigned q)
 This routine gives access to the manifold's homology computed with the regular CW-decomposition. More...
 
const MarkedAbelianGroupregina::HomologicalData::bdryHomology (unsigned q)
 This routine gives access to the homology of the boundary of the manifold, computed with the regular CW-decomposition. More...
 
const HomMarkedAbelianGroupregina::HomologicalData::bdryHomologyMap (unsigned q)
 This routine gives access to the homomorphism from the homology of the boundary to the homology of the manifold. More...
 
const MarkedAbelianGroupregina::HomologicalData::dualHomology (unsigned q)
 This routine gives access to the manifold's homology computed with the dual CW-decomposition. More...
 
const HomMarkedAbelianGroupregina::HomologicalData::h1CellAp ()
 Returns the isomorphism from dualHomology(1) to homology(1) given by a cellular approximation to the identity map on the manifold. More...
 
unsigned long regina::HomologicalData::countStandardCells (unsigned dimension)
 Returns the number of cells of the given dimension in the standard genuine CW-decomposition of the manifold. More...
 
unsigned long regina::HomologicalData::countDualCells (unsigned dimension)
 Returns the number of cells of the given dimension in the dual CW-decomposition of the manifold. More...
 
unsigned long regina::HomologicalData::countBdryCells (unsigned dimension)
 Returns the number of cells of the given dimension in the standard CW-decomposition of the boundary of the manifold. More...
 
long regina::HomologicalData::eulerChar ()
 The proper Euler characteristic of the manifold, computed from the dual CW-decomposition. More...
 
const std::vector< std::pair< Integer, std::vector< unsigned long > > > & regina::HomologicalData::torsionRankVector ()
 Returns the torsion form rank vector. More...
 
const std::string & regina::HomologicalData::torsionRankVectorString ()
 Same as torsionRankVector() but returns as a human-readable string. More...
 
const std::vector< LargeInteger > & regina::HomologicalData::torsionSigmaVector ()
 Returns the 2-torsion sigma vector. More...
 
const std::string & regina::HomologicalData::torsionSigmaVectorString ()
 Same as torsionSigmaVector() but returns as a human-readable string. More...
 
const std::vector< std::pair< Integer, std::vector< int > > > & regina::HomologicalData::torsionLegendreSymbolVector ()
 Returns the odd p-torsion Legendre symbol vector. More...
 
const std::string & regina::HomologicalData::torsionLegendreSymbolVectorString ()
 Same as torsionLegendreSymbolVector() but returns as a human-readable string. More...
 
bool regina::HomologicalData::formIsHyperbolic ()
 Returns true iff torsion linking form is ‘hyperbolic’ in the linking-form sense of the word. More...
 
bool regina::HomologicalData::formIsSplit ()
 Returns true iff the torsion linking form is split. More...
 
bool regina::HomologicalData::formSatKK ()
 Returns true iff the torsion linking form satisfies the Kawauchi-Kojima 2-torsion condition. More...
 
const std::string & regina::HomologicalData::embeddabilityComment ()
 Returns a comment on whether the manifold might embed in a homology 3-sphere or 4-sphere. More...
 
HomologicalDataregina::HomologicalData::operator= (const HomologicalData &)=delete
 
 regina::XMLTriangulationReader< dim >::XMLTriangulationReader (XMLTreeResolver &resolver)
 Creates a new triangulation reader. More...
 
XMLElementReaderregina::XMLTriangulationReader< dim >::startPropertySubElement (const std::string &subTagName, const regina::xml::XMLPropertyDict &subTagProps)
 Returns an XML element reader for the given optional property of a dim-dimensional triangulation. More...
 
 regina::XMLTriangulationReader< 2 >::XMLTriangulationReader (XMLTreeResolver &resolver)
 Creates a new triangulation reader. More...
 
XMLElementReaderregina::XMLTriangulationReader< 2 >::startPropertySubElement (const std::string &subTagName, const regina::xml::XMLPropertyDict &subTagProps)
 Returns an XML element reader for the given optional property of a dim-dimensional triangulation. More...
 
 regina::XMLTriangulationReader< 3 >::XMLTriangulationReader (XMLTreeResolver &resolver)
 Creates a new triangulation reader. More...
 
XMLElementReaderregina::XMLTriangulationReader< 3 >::startPropertySubElement (const std::string &subTagName, const regina::xml::XMLPropertyDict &subTagProps)
 Returns an XML element reader for the given optional property of a dim-dimensional triangulation. More...
 
 regina::XMLTriangulationReader< 4 >::XMLTriangulationReader (XMLTreeResolver &resolver)
 Creates a new triangulation reader. More...
 
XMLElementReaderregina::XMLTriangulationReader< 4 >::startPropertySubElement (const std::string &subTagName, const regina::xml::XMLPropertyDict &subTagProps)
 Returns an XML element reader for the given optional property of a dim-dimensional triangulation. More...
 

Variables

int regina::FacetSpec< dim >::simp
 The simplex referred to. More...
 
int regina::FacetSpec< dim >::facet
 The facet of the simplex referred to. More...
 

Friends

class regina::FacetPairing< 3 >::detail::FacetPairingBase< 3 >
 

Closed Triangulations

static Triangulation< 3 > * regina::Example< 3 >::threeSphere ()
 Returns a one-tetrahedron triangulation of the 3-sphere. More...
 
static Triangulation< 3 > * regina::Example< 3 >::bingsHouse ()
 Returns the two-tetrahedron triangulation of the 3-sphere that is dual to Bing's house with two rooms. More...
 
static Triangulation< 3 > * regina::Example< 3 >::s2xs1 ()
 Returns a two-tetrahedron triangulation of the product space S^2 x S^1. More...
 
static Triangulation< 3 > * regina::Example< 3 >::rp2xs1 ()
 Returns a three-tetrahedron triangulation of the non-orientable product space RP^2 x S^1. More...
 
static Triangulation< 3 > * regina::Example< 3 >::rp3rp3 ()
 Returns a triangulation of the connected sum RP^3 # RP^3. More...
 
static Triangulation< 3 > * regina::Example< 3 >::lens (size_t p, size_t q)
 Returns a triangulation of the lens space L(p,q). More...
 
static Triangulation< 3 > * regina::Example< 3 >::poincareHomologySphere ()
 Returns the five-tetrahedron triangulation of the Poincare homology sphere. More...
 
static Triangulation< 3 > * regina::Example< 3 >::weeks ()
 Returns a nine-tetrahedron minimal triangulation of the Weeks manifold. More...
 
static Triangulation< 3 > * regina::Example< 3 >::weberSeifert ()
 Returns a one-vertex triangulation of the Weber-Seifert dodecahedral space. More...
 
static Triangulation< 3 > * regina::Example< 3 >::smallClosedOrblHyperbolic ()
 Returns the nine-tetrahedron closed orientable hyperbolic 3-manifold with volume 0.94270736. More...
 
static Triangulation< 3 > * regina::Example< 3 >::smallClosedNonOrblHyperbolic ()
 Returns the eleven-tetrahedron closed non-orientable hyperbolic 3-manifold with volume 2.02988321. More...
 
static Triangulation< 3 > * regina::Example< 3 >::sphere600 ()
 Returns the boundary 3-sphere of the regular 600-cell. More...
 

Finite Bounded Triangulations

static Triangulation< 3 > * regina::Example< 3 >::lst (size_t a, size_t b)
 Returns the layered solid torus LST(a,b,c). More...
 
static Triangulation< 3 > * regina::Example< 3 >::solidKleinBottle ()
 Returns a triangulation of the solid Klein bottle. More...
 

Ideal Triangulations

static Triangulation< 3 > * regina::Example< 3 >::figureEight ()
 Returns a two-tetrahedron ideal triangulation of the figure eight knot complement. More...
 
static Triangulation< 3 > * regina::Example< 3 >::trefoil ()
 Returns a two-tetrahedron ideal triangulation of the trefoil knot complement. More...
 
static Triangulation< 3 > * regina::Example< 3 >::whiteheadLink ()
 Returns a four-tetrahedron ideal triangulation of the Whitehead link complement. More...
 
static Triangulation< 3 > * regina::Example< 3 >::gieseking ()
 Returns the one-tetrahedron ideal triangulation of the non-orientable Gieseking manifold. More...
 
static Triangulation< 3 > * regina::Example< 3 >::cuspedGenusTwoTorus ()
 Returns a triangulation of a solid genus two torus with a cusped boundary. More...
 

Closed Triangulations

static Triangulation< 4 > * regina::Example< 4 >::fourSphere ()
 Returns a two-pentachoron triangulation of the 4-sphere. More...
 
static Triangulation< 4 > * regina::Example< 4 >::simplicialFourSphere ()
 Returns the standard six-pentachoron triangulation of the 4-sphere as the boundary of a 5-simplex. More...
 
static Triangulation< 4 > * regina::Example< 4 >::rp4 ()
 Returns a four-pentachoron triangulation of real projective 4-space. More...
 
static Triangulation< 4 > * regina::Example< 4 >::s3xs1 ()
 Returns a two-pentachoron triangulation of the product space S^3 x S^1. More...
 
static Triangulation< 4 > * regina::Example< 4 >::s3xs1Twisted ()
 Returns a two-pentachoron triangulation of the twisted product space S^3 x~ S^1. More...
 

Ideal Triangulations

(end: Closed Triangulations)

static Triangulation< 4 > * regina::Example< 4 >::cappellShaneson ()
 Returns a two-pentachoron triangulation of a Cappell-Shaneson 2-knot complement in the 4-sphere. More...
 

Constructions from 3-Manifold Triangulations

(end: Ideal Triangulations)

static Triangulation< 4 > * regina::Example< 4 >::iBundle (const Triangulation< 3 > &base)
 Returns a triangulation of the product M x I, where M is the given 3-manifold triangulation. More...
 
static Triangulation< 4 > * regina::Example< 4 >::s1Bundle (const Triangulation< 3 > &base)
 Returns a triangulation of the product M x S1, where M is the given 3-manifold triangulation. More...
 
static Triangulation< 4 > * regina::Example< 4 >::bundleWithMonodromy (const Triangulation< 3 > &base, const Isomorphism< 3 > &monodromy)
 Returns a bundle formed from a given 3-manifold and a given monodromy. More...
 

Detailed Description

Triangulations of manifolds in all supported dimensions.

Typedef Documentation

◆ Dim2ExampleTriangulation

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
Instead of the old typedef Dim2ExampleTriangulation, you should use the full class name Example<2>.

◆ Dim2TriangleEdge

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
Instead of the old typedef Dim2TriangleEdge, you should use the real class name FacetSpec<2>.

◆ Dim4ExampleTriangulation

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
Instead of the old typedef Dim4ExampleTriangulation, you should use the full class name Example<4>.

◆ Dim4PentFacet

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
Instead of the old typedef Dim4PentFacet, you should use the real class name FacetSpec<4>.

◆ NExampleTriangulation

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
Instead of the old typedef NExampleTriangulation, you should use the full class name Example<3>.

◆ NFacePair

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NFacePair has now been renamed to FacePair.

◆ NFacePairing

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
Instead of the old typedef NFacePairing, you should use the full class name FacetPairing<3>.

◆ NHomologicalData

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NHomologicalData has now been renamed to HomologicalData.

◆ NTetFace

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
Instead of the old typedef NTetFace, you should use the real class name FacetSpec<3>.

Function Documentation

◆ annulus()

static Triangulation<2>* regina::Example< 2 >::annulus ( )
static

Returns a two-triangle annulus.

This is isomorphic to the triangulation returned by the generic routine ballBundle(), though it will have a different packet label.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ bdryHomology()

const MarkedAbelianGroup& regina::HomologicalData::bdryHomology ( unsigned  q)

This routine gives access to the homology of the boundary of the manifold, computed with the regular CW-decomposition.

Parameters
qthe dimension of the homology group: can be 0, 1 or 2.
Returns
the q-th boundary homology group, in standard cellular homology coordinates

◆ bdryHomologyMap()

const HomMarkedAbelianGroup& regina::HomologicalData::bdryHomologyMap ( unsigned  q)

This routine gives access to the homomorphism from the homology of the boundary to the homology of the manifold.

Parameters
qthe dimension of the map: can be 0, 1 or 2.
Returns
the map from H_q of the boundary to H_q of the manifold, computed in standard coordinates.

◆ bingsHouse()

static Triangulation<3>* regina::Example< 3 >::bingsHouse ( )
static

Returns the two-tetrahedron triangulation of the 3-sphere that is dual to Bing's house with two rooms.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ bundleWithMonodromy()

static Triangulation<4>* regina::Example< 4 >::bundleWithMonodromy ( const Triangulation< 3 > &  base,
const Isomorphism< 3 > &  monodromy 
)
static

Returns a bundle formed from a given 3-manifold and a given monodromy.

Specifically, let M be the given 3-manifold triangulation. This routine builds the bundle M x I, and then identifies the two copies of M on the boundary according to the given homeomorphism from M to itself. The homeomorphism must be expressed as a combinatorial automorphism, which means that for a non-trivial monodromy you may need to do some work to find a sufficiently symmetric 3-manifold triangulation to begin with.

The resulting manifold will contain 82 pentachora for each original tetrahedron of M, and will contain many internal vertices. It is highly recommended that you call Triangulation<4>::intelligentSimplify() afterwards if you do not need to preserve the combinatorial structure.

Precondition
The given monodromy must be an isomorphism from M to itself; that is, a combinatorial automorphism.
Warning
If the given 3-manifold triangulation has ideal boundary, then you will obtain an invalid 4-manifold triangulation as a result.
Parameters
basethe 3-manifold triangulation M, as described above.
monodromythe homeomorphism from M to itself, as described above.
Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ cappellShaneson()

static Triangulation<4>* regina::Example< 4 >::cappellShaneson ( )
static

Returns a two-pentachoron triangulation of a Cappell-Shaneson 2-knot complement in the 4-sphere.

This triangulation is described and analysed in "Triangulating a Cappell-Shaneson knot complement", Budney, Burton and Hillman, Mathematical Research Letters 19 (2012), no. 5, 1117-1126.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ complement()

FacePair regina::FacePair::complement ( ) const

Returns the complement of this face pair.

The complement is the pair containing the two faces not included in this face pair.

Precondition
This face pair is neither before-the-start nor past-the-end.
Returns
the complement of this face pair.

◆ countBdryCells()

unsigned long regina::HomologicalData::countBdryCells ( unsigned  dimension)
inline

Returns the number of cells of the given dimension in the standard CW-decomposition of the boundary of the manifold.

This is a subcomplex of the complex used in countStandardCells().

Parameters
dimensionthe dimension of the cells in question; this must be 0, 1 or 2.
Returns
the number of cells of the given dimension in the standard CW-decomposition of the boundary.

◆ countDualCells()

unsigned long regina::HomologicalData::countDualCells ( unsigned  dimension)
inline

Returns the number of cells of the given dimension in the dual CW-decomposition of the manifold.

This is typically much smaller than countStandardCells().

Parameters
dimensionthe dimension of the cells in question; this must be 0, 1, 2 or 3.
Returns
the number of cells of the given dimension in the dual CW-decomposition to the triangulation.

◆ countStandardCells()

unsigned long regina::HomologicalData::countStandardCells ( unsigned  dimension)
inline

Returns the number of cells of the given dimension in the standard genuine CW-decomposition of the manifold.

In the case that the triangulation is a proper triangulation of a manifold (or delta-complex decomposition) it simply returns the same information as in the Triangulation<3> vertex, edge, face and tetrahedron lists.

In the case that this is an ideal triangulation, this algorithm returns the details of the corresponding compact manifold with boundary a union of closed surfaces.

Parameters
dimensionthe dimension of the cells in question; this must be 0, 1, 2 or 3.
Returns
the number of cells of the given dimension in the standard CW-decomposition of the closed manifold.

◆ cuspedGenusTwoTorus()

static Triangulation<3>* regina::Example< 3 >::cuspedGenusTwoTorus ( )
static

Returns a triangulation of a solid genus two torus with a cusped boundary.

This triangulation has one internal finite vertex and one genus two ideal vertex.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ disc()

static Triangulation<2>* regina::Example< 2 >::disc ( )
static

Returns a one-triangle disc.

This is isomorphic to the triangulation returned by the generic routine ball(), though it will have a different packet label.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ dualHomology()

const MarkedAbelianGroup& regina::HomologicalData::dualHomology ( unsigned  q)

This routine gives access to the manifold's homology computed with the dual CW-decomposition.

This routine is typically faster than homology() since the dual CW-decomposition generally has far fewer cells.

Note that the groups returned by homology() and dualHomology() are isomorphic, though they are generally described by different presentations.

Parameters
qthe dimension of the homology group: can be 0, 1, 2 or 3.
Returns
the q-th homology group, computed in the dual CW-decomposition.

◆ embeddabilityComment()

const std::string & regina::HomologicalData::embeddabilityComment ( )
inline

Returns a comment on whether the manifold might embed in a homology 3-sphere or 4-sphere.

Basically, this routine runs through all the Kawauchi-Kojima conditions, plus a few other ‘elementary’ conditions.

Each comment will be formatted as one or more English sentences (i.e., with capitalisation and punctuation). The comments themselves are subject to change between releases of Regina, since later releases may have more detailed tests at their disposal.

This routine is available for both orientable and non-orientable triangulations. In the non-orientable case it may return additional information regarding the orientable double cover.

Precondition
The triangulation is of a connected 3-manifold.
Returns
a string giving a one-line description of what is known about where this manifold embeds, based solely on the manifold's homological data.

◆ eulerChar()

long int regina::HomologicalData::eulerChar ( )
inline

The proper Euler characteristic of the manifold, computed from the dual CW-decomposition.

This routine calculates the Euler characteristic of the corresponding compact triangulated 3-manifold, with each ideal vertex treated as a surface boundary component.

This routine returns the same value as Triangulation<3>::eulerCharManifold(), though it computes it in a different way.

On the other hand, this routine differs from Triangulation<3>::eulerCharTri(), which handles ideal triangulations in a non-standard way (treating each ideal vertex as just a single vertex).

Returns
the Euler characteristic of the corresponding compact triangulated 3-manifold.

◆ faceOppositeEdge()

template<int dim>
int regina::faceOppositeEdge ( int  i,
int  j 
)
inline

Returns the (dim-2)-face number that is opposite the edge joining vertices i and j in a dim-dimensional simplex.

This function is offered because its implementation is faster than working through the FaceNumbering class.

The arguments i and j do not need to appear in ascending order.

Parameters
ithe first vertex of an edge in a dim-dimensional simplex. This must be between 0 and dim inclusive.
jthe second vertex of an edge in a dim-dimensional simplex. This must be between 0 and dim inclusive, and must be different from i.
Returns
the number of the (dim-2)-face opposite the given edge.

◆ FacePair() [1/3]

regina::FacePair::FacePair ( )
inline

Creates a new face pair (0,1).

◆ FacePair() [2/3]

regina::FacePair::FacePair ( const FacePair cloneMe)
default

Creates a new face pair that is a clone of the given pair.

Parameters
cloneMethe face pair to clone.

◆ FacePair() [3/3]

regina::FacePair::FacePair ( int  newFirst,
int  newSecond 
)

Creates a new face pair from the two given face numbers.

The two given numbers need not be in any particular order.

Precondition
The two given face numbers must be distinct integers between 0 and 3 inclusive.
Parameters
newFirstthe first face number in the new pair.
newSecondthe second face number in the new pair.

◆ FacetPairing() [1/2]

regina::FacetPairing< 3 >::FacetPairing ( const FacetPairing< 3 > &  cloneMe)
inline

Creates a new face pairing that is a clone of the given face pairing.

Parameters
cloneMethe face pairing to clone.

◆ FacetPairing() [2/2]

regina::FacetPairing< 3 >::FacetPairing ( const Triangulation< 3 > &  tri)
inline

Creates the face pairing of the given 3-manifold triangulation.

This describes how the tetrahedron faces of the given triangulation are joined together in pairs.

Precondition
The given triangulation is not empty.
Parameters
trithe triangulation whose face pairing should be constructed.

◆ FacetSpec() [1/3]

template<int dim>
regina::FacetSpec< dim >::FacetSpec
inline

Creates a new specifier with no initialisation.

This specifier must be initialised before it is used.

◆ FacetSpec() [2/3]

template<int dim>
regina::FacetSpec< dim >::FacetSpec ( const FacetSpec< dim > &  cloneMe)
default

Creates a new specifier referring to the same simplex facet as the given specifier.

Parameters
cloneMethe specifier to clone.

◆ FacetSpec() [3/3]

template<int dim>
regina::FacetSpec< dim >::FacetSpec ( int  newSimp,
int  newFacet 
)
inline

Creates a new specifier referring to the given facet of the given simplex.

Parameters
newSimpthe given simplex; see the class notes for allowable values of this parameter.
newFacetthe given facet; this should be between 0 and dim inclusive.

◆ figureEight()

static Triangulation<3>* regina::Example< 3 >::figureEight ( )
static

Returns a two-tetrahedron ideal triangulation of the figure eight knot complement.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ followChain()

void regina::FacetPairing< 3 >::followChain ( size_t &  tet,
FacePair faces 
) const

Follows a chain as far as possible from the given point.

A chain is the underlying face pairing for a layered chain; specifically it involves one tetrahedron joined to a second along two faces, the remaining two faces of the second tetrahedron joined to a third and so on. A chain can involve as few as one tetrahedron or as many as we like. Note that the remaining two faces of the first tetrahedron and the remaining two faces of the final tetrahedron remain unaccounted for by this structure.

This routine begins with two faces of a given tetrahedron, described by parameters tet and faces. If these two faces are both joined to some different tetrahedron, parameter tet will be changed to this new tetrahedron and parameter faces will be changed to the remaining faces of this new tetrahedron (i.e., the two faces that were not joined to the original faces of the original tetrahedron).

This procedure is repeated as far as possible until either the two faces in question join to two different tetrahedra, the two faces join to each other, or at least one of the two faces is unmatched.

Thus, given one end of a chain, this procedure can be used to follow the face pairings through to the other end of the chain.

Warning
You must be sure when calling this routine that you are not inside a chain that loops back onto itself! If the face pairing forms a large loop with each tetrahedron joined by two faces to the next, this routine will cycle around the loop forever and never return.
Parameters
tetthe index in the underlying triangulation of the tetrahedron to begin at. This parameter will be modified directly by this routine as a way of returning the results.
facesthe pair of face numbers in the given tetrahedron at which we begin. This parameter will also be modified directly by this routine as a way of returning results.

◆ formIsHyperbolic()

bool regina::HomologicalData::formIsHyperbolic ( )

Returns true iff torsion linking form is ‘hyperbolic’ in the linking-form sense of the word.

To be a little more precise, Poincare-duality in a compact orientable boundaryless manifold gives an isomorphism between the torsion subgroup of H_1(M) denoted tH_1(M) and Hom(tH_1(M),Q/Z), where Q is the rationals and Z the integers. The associated bilinear form (with values in Q/Z) is said to be ‘hyperbolic’ if tH_1(M) splits as a direct sum A+B such that Poincare duality sends A to Hom(B,Q/Z) and B to Hom(A,Q/Z).

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
true iff the torsion linking form is hyperbolic.

◆ formIsSplit()

bool regina::HomologicalData::formIsSplit ( )
inline

Returns true iff the torsion linking form is split.

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
true iff the linking form is split.

◆ formSatKK()

bool regina::HomologicalData::formSatKK ( )
inline

Returns true iff the torsion linking form satisfies the Kawauchi-Kojima 2-torsion condition.

This condition states that on all elements x of order 2^k, 2^{k-1}form(x,x) = 0.

This is a neccessary condition for an orientable 3-manifold perhaps with boundary to embed in a homology 4-sphere.

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
true iff the form satisfies the 2-torsion condition of Kawauchi-Kojima.

◆ fourSphere()

Triangulation< 4 > * regina::Example< 4 >::fourSphere ( )
inlinestatic

Returns a two-pentachoron triangulation of the 4-sphere.

This is identical to calling the generic routine sphere().

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ gieseking()

static Triangulation<3>* regina::Example< 3 >::gieseking ( )
static

Returns the one-tetrahedron ideal triangulation of the non-orientable Gieseking manifold.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ h1CellAp()

const HomMarkedAbelianGroup& regina::HomologicalData::h1CellAp ( )

Returns the isomorphism from dualHomology(1) to homology(1) given by a cellular approximation to the identity map on the manifold.

Returns
The isomorphism from dualHomology(1) to homology(1) computed via a cellular approximation of the identity map from the first 1-skeleton to the second.

◆ hasBrokenDoubleEndedChain()

bool regina::FacetPairing< 3 >::hasBrokenDoubleEndedChain ( ) const

Determines whether this face pairing contains a broken double-ended chain.

A chain involves a sequence of tetrahedra, each joined to the next along two faces, and is described in detail in the documentation for followChain().

A one-ended chain is a chain in which the first tetrahedron is also joined to itself along one face (i.e., the underlying face pairing for a layered solid torus). A double-ended chain is a chain in which the first tetrahedron is joined to itself along one face and the final tetrahedron is also joined to itself along one face (i.e., the underlying face pairing for a layered lens space).

A broken double-ended chain consists of two one-ended chains (using distinct sets of tetrahedra) joined together along one face. The remaining two faces (one from each chain) that were unaccounted for by the individual one-ended chains remain unaccounted for by this broken double-ended chain.

In this routine we are interested specifically in finding a broken double-ended chain that is not a part of a complete double-ended chain, i.e., the final two unaccounted faces are not joined together.

A face pairing containing a broken double-ended chain cannot model a closed minimal irreducible P^2-irreducible 3-manifold triangulation on more than two tetrahedra. See "Face pairing graphs and 3-manifold enumeration", Benjamin A. Burton, J. Knot Theory Ramifications 13 (2004), 1057–1101.

Returns
true if and only if this face pairing contains a broken double-ended chain that is not part of a complete double-ended chain.

◆ hasDoubleSquare()

bool regina::FacetPairing< 3 >::hasDoubleSquare ( ) const

Determines whether this face pairing contains a double-edged square.

A double-edged square involves four distinct tetrahedra that meet each other as follows. Two pairs of tetrahedra are joined along two pairs of faces each. Then each tetrahedron is joined along a single face to one tetrahedron of the other pair. The four tetrahedron faces not yet joined to anything (one from each tetrahedron) remain unaccounted for by this structure.

Returns
true if and only if this face pairing contains a double-edged square.

◆ hasDoubleStar()

bool regina::FacetPairing< 3 >::hasDoubleStar ( ) const

Determines whether this face pairing contains a double-edged star.

A double-edged star involves two tetrahedra that are adjacent along two separate pairs of faces, where the four remaining faces of these tetrahedra are joined to four entirely new tetrahedra (so that none of the six tetrahedra described in this structure are the same).

Returns
true if and only if this face pairing contains a double-edged star.

◆ hasOneEndedChainWithDoubleHandle()

bool regina::FacetPairing< 3 >::hasOneEndedChainWithDoubleHandle ( ) const

Determines whether this face pairing contains a one-ended chain with a double handle.

A chain involves a sequence of tetrahedra, each joined to the next along two faces, and is described in detail in the documentation for followChain().

A one-ended chain is a chain in which the first tetrahedron is also joined to itself along one face (i.e., the underlying face pairing for a layered solid torus).

A one-ended chain with a double handle begins with a one-ended chain. The two faces that are unaccounted for by this one-ended chain must be joined to two different tetrahedra, and these two tetrahedra must be joined to each other along two faces. The remaining two faces of these two tetrahedra remain unaccounted for by this structure.

A face pairing containing a one-ended chain with a double handle cannot model a closed minimal irreducible P^2-irreducible 3-manifold triangulation on more than two tetrahedra. See "Face pairing graphs and 3-manifold enumeration", Benjamin A. Burton, J. Knot Theory Ramifications 13 (2004), 1057–1101.

Returns
true if and only if this face pairing contains a one-ended chain with a double handle.

◆ hasOneEndedChainWithStrayBigon()

bool regina::FacetPairing< 3 >::hasOneEndedChainWithStrayBigon ( ) const

Determines whether this face pairing contains a one-ended chain with a stray bigon.

A chain involves a sequence of tetrahedra, each joined to the next along two faces, and is described in detail in the documentation for followChain().

A one-ended chain is a chain in which the first tetrahedron is also joined to itself along one face (i.e., the underlying face pairing for a layered solid torus).

A one-ended chain with a stray bigon describes the following structure. We begin with a one-ended chain. Two new tetrahedra are added; these are joined to each other along two pairs of faces, and one of the new tetrahedra is joined to the end of the one-ended chain. We then ensure that:

  • This configuration is not part of a longer one-ended chain that encompasses all of the aforementioned tetrahedra;
  • There is no extra tetrahedron that is joined to both the two new tetrahedra and the end of the chain;
  • There is no extra tetrahedron that is joined to the end of the chain along one face and the far new tetrahedron along two additional faces (where by "the far new tetrahedron" we mean the new tetrahedron that was not originally joined to the chain).

Aside from these constraints, the remaining four tetrahedron faces (two faces of the far new tetrahedron, one face of the other new tetrahedron, and one face at the end of the chain) remain unaccounted for by this structure.

A face pairing containing a structure of this type cannot model a closed minimal irreducible P^2-irreducible 3-manifold triangulation on more than two tetrahedra. See "Enumeration of non-orientable 3-manifolds using face-pairing graphs and union-find", Benjamin A. Burton, Discrete Comput. Geom. 38 (2007), no. 3, 527–571.

Returns
true if and only if this face pairing contains a one-ended chain with a stray bigon.

◆ hasSingleStar()

bool regina::FacetPairing< 3 >::hasSingleStar ( ) const

Determines whether this face pairing contains a single-edged star.

A single-edged star involves two tetrahedra that are adjacent along a single face, where the six remaining faces of these tetrahedra are joined to six entirely new tetrahedra (so that none of the eight tetrahedra described in this structure are the same).

Returns
true if and only if this face pairing contains a single-edged star.

◆ hasTripleEdge()

bool regina::FacetPairing< 3 >::hasTripleEdge ( ) const

Determines whether this face pairing contains a triple edge.

A triple edge is where two different tetrahedra are joined along three of their faces.

A face pairing containing a triple edge cannot model a closed minimal irreducible P^2-irreducible 3-manifold triangulation on more than two tetrahedra. See "Face pairing graphs and 3-manifold enumeration", Benjamin A. Burton, J. Knot Theory Ramifications 13 (2004), 1057–1101.

Returns
true if and only if this face pairing contains a triple edge.

◆ hasTripleOneEndedChain()

bool regina::FacetPairing< 3 >::hasTripleOneEndedChain ( ) const

Determines whether this face pairing contains a triple one-ended chain.

A chain involves a sequence of tetrahedra, each joined to the next along two faces, and is described in detail in the documentation for followChain().

A one-ended chain is a chain in which the first tetrahedron is also joined to itself along one face (i.e., the underlying face pairing for a layered solid torus).

A triple one-ended chain is created from three one-ended chains as follows. Two new tetrahedra are added, and each one-ended chain is joined to each of the new tetrahedra along a single face. The remaining two faces (one from each of the new tetrahedra) remain unaccounted for by this structure.

A face pairing containing a triple one-ended chain cannot model a closed minimal irreducible P^2-irreducible 3-manifold triangulation on more than two tetrahedra. See "Enumeration of non-orientable 3-manifolds using face-pairing graphs and union-find", Benjamin A. Burton, Discrete Comput. Geom. 38 (2007), no. 3, 527–571.

Returns
true if and only if this face pairing contains a triple one-ended chain.

◆ hasWedgedDoubleEndedChain()

bool regina::FacetPairing< 3 >::hasWedgedDoubleEndedChain ( ) const

Determines whether this face pairing contains a wedged double-ended chain.

A chain involves a sequence of tetrahedra, each joined to the next along two faces, and is described in detail in the documentation for followChain().

A one-ended chain is a chain in which the first tetrahedron is also joined to itself along one face (i.e., the underlying face pairing for a layered solid torus). A double-ended chain is a chain in which the first tetrahedron is joined to itself along one face and the final tetrahedron is also joined to itself along one face (i.e., the underlying face pairing for a layered lens space).

A wedged double-ended chain is created from two one-ended chains as follows. Two new tetrahedra are added, and each one-ended chain is joined to each of the new tetrahedra along a single face. In addition, the two new tetrahedra are joined to each other along a single face. The remaining two faces (one from each of the new tetrahedra) remain unaccounted for by this structure.

An alternative way of viewing a wedged double-ended chain is as an ordinary double-ended chain, where one of the internal tetrahedra is removed and replaced with a pair of tetrahedra joined to each other. Whereas the original tetrahedron met its two neighbouring tetrahedra along two faces each (giving a total of four face identifications), the two new tetrahedra now meet each of the two neighbouring tetrahedra along a single face each (again giving four face identifications).

Note that if this alternate construction is used to replace one of the end tetrahedra of the double-ended chain (not an internal tetrahedron), the resulting structure will either be a triple edge or a one-ended chain with a double handle (according to whether the original chain has zero or positive length). See hasTripleEdge() and hasOneEndedChainWithDoubleHandle() for further details.

A face pairing containing a wedged double-ended chain cannot model a closed minimal irreducible P^2-irreducible 3-manifold triangulation on more than two tetrahedra. See "Enumeration of non-orientable 3-manifolds using face-pairing graphs and union-find", Benjamin A. Burton, Discrete Comput. Geom. 38 (2007), no. 3, 527–571.

Returns
true if and only if this face pairing contains a wedged double-ended chain.

◆ HomologicalData() [1/2]

regina::HomologicalData::HomologicalData ( const HomologicalData h)
inline

Copy constructor.

Parameters
hthe homological data to clone.

◆ HomologicalData() [2/2]

regina::HomologicalData::HomologicalData ( const Triangulation< 3 > &  input)
inline

Takes as input a triangulation.

This class takes its own copy of the input triangulation. This means that the input triangulation can change or even be destroyed, and this homological data will happily continue to work with the original triangulation as it was first passed to the constructor.

Parameters
inputthe triangulation to use.

◆ homology()

const MarkedAbelianGroup& regina::HomologicalData::homology ( unsigned  q)

This routine gives access to the manifold's homology computed with the regular CW-decomposition.

This routine is typically slower than dualHomology(), since dualHomology() uses the dual CW-decomposition which typically has an order of magnitude fewer cells.

Note that the groups returned by homology() and dualHomology() are isomorphic, though they are generally described by different presentations.

Parameters
qthe dimension of the homology group: can be 0, 1, 2 or 3.
Returns
the q-th homology group, computed in the standard CW-decomposition.

◆ iBundle()

static Triangulation<4>* regina::Example< 4 >::iBundle ( const Triangulation< 3 > &  base)
static

Returns a triangulation of the product M x I, where M is the given 3-manifold triangulation.

The boundary of this product will consist of two copies of M, both combinatorially isomorphic to the original triangulation. If n is the number of tetrahedra in M, then the first copy of M on the boundary is obtained by mapping vertices 0,1,2,3 of tetrahedron i of M to vertices 0,1,2,3 of pentachoron i, and the second copy is obtained by mapping vertices 0,1,2,3 of tetrahedron i of M to vertices 0,1,2,3 of pentachoron n+i.

The product itself will contain 82 pentachora for each original tetrahedron of M, and will contain many internal vertices. It is highly recommended that you call Triangulation<4>::intelligentSimplify() afterwards if you do not need to preserve the combinatorial structure.

Warning
If the given 3-manifold triangulation has ideal boundary, then you will obtain an invalid 4-manifold triangulation as a result.
Parameters
basethe 3-manifold triangulation M, as described above.
Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ index()

ptrdiff_t regina::HomologicalData::SortedArray::index ( unsigned long  value) const
inline

Finds the index of the given integer in this array.

This routine runs in logarithmic time (it uses a binary search).

Parameters
valuethe integer to search for.
Returns
the array index that holds the given integer, or -1 if the given integer is not stored in this array.

◆ isBeforeStart() [1/2]

bool regina::FacePair::isBeforeStart ( ) const
inline

Determines if this face pair represents a before-the-start value.

Returns
true if and only if this face pair is before-the-start.

◆ isBeforeStart() [2/2]

template<int dim>
bool regina::FacetSpec< dim >::isBeforeStart
inline

Determines if this specifier represents a before-the-start value.

Returns
true if and only if this specifier is before-the-start.

◆ isBoundary()

template<int dim>
bool regina::FacetSpec< dim >::isBoundary ( size_t  nSimplices) const
inline

Determines if this specifier represents the overall boundary.

Parameters
nSimplicesthe number of simplices under consideration. Note that the boundary is represented in this specifier as simplex nSimplices, facet 0.
Returns
true if and only if this specifier represents the overall boundary.

◆ isPastEnd() [1/2]

bool regina::FacePair::isPastEnd ( ) const
inline

Determines if this face pair represents a past-the-end value.

Returns
true if and only if this face pair is past-the-end.

◆ isPastEnd() [2/2]

template<int dim>
bool regina::FacetSpec< dim >::isPastEnd ( size_t  nSimplices,
bool  boundaryAlso 
) const
inline

Determines if this specifier represents a past-the-end value.

You can optionally declare the overall boundary to be past-the-end as well as the already predefined past-the-end value.

Parameters
nSimplicesthe number of simplices under consideration. Note that past-the-end is represented in this specifier as simplex nSimplices, facet 1.
boundaryAlsotrue if the overall boundary should be considered past-the-end in addition to the predefined past-the-end value.
Returns
true if and only if this specifier is past-the-end.

◆ kb()

static Triangulation<2>* regina::Example< 2 >::kb ( )
static

Returns a two-triangle Klein bottle.

This is isomorphic to the triangulation returned by the generic routine twistedSphereBundle(), though it will have a different packet label.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ lens()

static Triangulation<3>* regina::Example< 3 >::lens ( size_t  p,
size_t  q 
)
static

Returns a triangulation of the lens space L(p,q).

The triangulation uses a layered lens space, which is conjectured (but not proven in all cases) to be the triangulation requiring the fewest tetrahedra.

Precondition
p > q >= 0 unless (p,q) = (0,1).
gcd(p, q) = 1.
Parameters
pa parameter of the desired lens space.
qa parameter of the desired lens space.
Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ lower()

unsigned regina::FacePair::lower ( ) const
inline

Returns the smaller of the two face numbers in this pair.

Precondition
This face pair is neither before-the-start or past-the-end.
Returns
the lower face number.

◆ lst()

static Triangulation<3>* regina::Example< 3 >::lst ( size_t  a,
size_t  b 
)
static

Returns the layered solid torus LST(a,b,c).

This is a parameterised triangulation of the solid torus. It has two boundary triangles and three boundary edges, and the meridional disc of the solid torus cuts these boundary edges a, b and c times respectively.

Only the parameters a and b are passed as arguments to this routine. The third parameter c will be deduced automatically as c = (a + b).

Precondition
gcd(a, b) = 1.
Parameters
athe first parameter of the layered solid torus.
bthe second parameter of the layered solid torus.
Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ mobius()

static Triangulation<2>* regina::Example< 2 >::mobius ( )
static

Returns a one-triangle Mobius band.

This is isomorphic to the triangulation returned by the generic routine twistedBallBundle(), though it will have a different packet label.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ nonOrientable()

static Triangulation<2>* regina::Example< 2 >::nonOrientable ( unsigned  genus,
unsigned  punctures 
)
static

Returns a triangulation of the given non-orientable surface.

Parameters
genusthe non-orientable genus of the surface, i.e., the number of crosscaps that it contains; this must be greater than or equal to one.
puncturesthe number of punctures in the surface; this must be greater than or equal to zero.
Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ operator!=() [1/2]

bool regina::FacePair::operator!= ( const FacePair other) const
inline

Determines if this and the given face pair are not equal.

Parameters
otherthe pair to compare with this.
Returns
true if and only if this and the given pair are not equal.

◆ operator!=() [2/2]

template<int dim>
bool regina::FacetSpec< dim >::operator!= ( const FacetSpec< dim > &  other) const
inline

Determines if this and the given specifier are not identical.

Parameters
otherthe specifier to compare with this.
Returns
true if and only if this and the given specifier are not equal.

◆ operator++() [1/4]

FacePair& regina::FacePair::operator++ ( )

Increments this face pair.

It will be set to the following face pair in the lexicographical ordering, or to a past-the-end value if there are no more face pairs.

This is a preincrement operator: the object will be changed, and then a reference to it will be returned.

Python
This routine is not available; however, the postincrement operator is available under the name inc().
Returns
a reference to this object.

◆ operator++() [2/4]

template<int dim>
FacetSpec< dim > & regina::FacetSpec< dim >::operator++
inline

Increments this specifier.

It will be changed to point to the next simplex facet.

Facets are ordered first by simplex index and then by facet number. The overall boundary appears after all other facets.

Precondition
This specifier is not past-the-end.
Python
Not present, although the postincrement operator is present in python as the member function inc().
Returns
A reference to this specifier.

◆ operator++() [3/4]

FacePair regina::FacePair::operator++ ( int  )
inline

Increments this face pair.

It will be set to the following face pair in the lexicographical ordering, or to a past-the-end value if there are no more face pairs.

This is a postincrement operator: the object will be changed, but a copy of the original reference will be returned.

Python
This routine is available under the name inc().
Returns
a copy of this object before the change took place.

◆ operator++() [4/4]

template<int dim>
FacetSpec< dim > regina::FacetSpec< dim >::operator++ ( int  )
inline

Increments this specifier.

It will be changed to point to the next simplex facet.

Facets are ordered first by simplex index and then by facet number. The overall boundary appears after all other facets.

Precondition
This specifier is not past-the-end.
Python
This routine is named inc() since python does not support the increment operator.
Returns
A copy of this specifier before it was incremented.

◆ operator--() [1/4]

FacePair& regina::FacePair::operator-- ( )

Decrements this face pair.

It will be set to the previous face pair in the lexicographical ordering, or to a before-the-start value if there are no previous face pairs.

This is a predecrement operator: the object will be changed, and then a reference to it will be returned.

Python
This routine is not available; however, the postdecrement operator is available under the name dec().
Returns
a reference to this object.

◆ operator--() [2/4]

template<int dim>
FacetSpec< dim > & regina::FacetSpec< dim >::operator--
inline

Decrements this specifier.

It will be changed to point to the previous simplex facet.

Facets are ordered first by simplex index and then by facet number. The overall boundary appears after all other facets.

Precondition
This specifier is not before-the-start.
Python
Not present, although the postdecrement operator is present in python as the member function dec().
Returns
A reference to this specifier.

◆ operator--() [3/4]

FacePair regina::FacePair::operator-- ( int  )
inline

Decrements this face pair.

It will be set to the previous face pair in the lexicographical ordering, or to a before-the-start value if there are no previous face pairs.

This is a postdecrement operator: the object will be changed, but a copy of the original reference will be returned.

Python
This routine is available under the name dec().
Returns
a copy of this object before the change took place.

◆ operator--() [4/4]

template<int dim>
FacetSpec< dim > regina::FacetSpec< dim >::operator-- ( int  )
inline

Decrements this specifier.

It will be changed to point to the previous simplex facet.

Facets are ordered first by simplex index and then by facet number. The overall boundary appears after all other facets.

Precondition
This specifier is not before-the-start.
Python
This routine is named dec() since python does not support the decrement operator.
Returns
A copy of this specifier before it was decremented.

◆ operator<() [1/2]

bool regina::FacePair::operator< ( const FacePair other) const
inline

Determines if this is less than the given face pair.

Parameters
otherthe pair to compare with this.
Returns
true if and only if this is less than other.

◆ operator<() [2/2]

template<int dim>
bool regina::FacetSpec< dim >::operator< ( const FacetSpec< dim > &  other) const
inline

Determines if this is less than the given specifier.

Parameters
otherthe specifier to compare with this.
Returns
true if and only if this is less than the given specifier.

◆ operator<<() [1/2]

std::ostream & regina::operator<< ( std::ostream &  out,
const FacePair pair 
)
inline

Writes the given face pair to the given output stream.

Parameters
outthe output stream to which to write.
pairthe face pair to write.
Returns
a reference to out.

◆ operator<<() [2/2]

template<int dim>
std::ostream & regina::operator<< ( std::ostream &  out,
const FacetSpec< dim > &  spec 
)
inline

Writes the given facet specifier to the given output stream.

Parameters
outthe output stream to which to write.
specthe specifier to write.
Returns
a reference to out.

◆ operator<=() [1/2]

bool regina::FacePair::operator<= ( const FacePair other) const
inline

Determines if this is less than or equal to the given face pair.

Parameters
otherthe pair to compare with this.
Returns
true if and only if this is less than or equal to other.

◆ operator<=() [2/2]

template<int dim>
bool regina::FacetSpec< dim >::operator<= ( const FacetSpec< dim > &  other) const
inline

Determines if this is less than or equal to the given specifier.

Parameters
otherthe specifier to compare with this.
Returns
true if and only if this is less than or equal to the given specifier.

◆ operator=() [1/3]

FacePair& regina::FacePair::operator= ( const FacePair cloneMe)
default

Sets this face pair to be a copy of the given pair.

Parameters
cloneMethe face pair to clone.
Returns
a reference to this face pair.

◆ operator=() [2/3]

template<int dim>
FacetSpec& regina::FacetSpec< dim >::operator= ( const FacetSpec< dim > &  other)
default

Sets this specifier to the value of the given specifier.

Parameters
otherthe given specifier.
Returns
a reference to this specifier.

◆ operator=() [3/3]

SortedArray& regina::HomologicalData::SortedArray::operator= ( const SortedArray &  )
default

Set this to a clone of the given array.

◆ operator==() [1/2]

bool regina::FacePair::operator== ( const FacePair other) const
inline

Determines if this and the given face pair are equal.

Parameters
otherthe pair to compare with this.
Returns
true if and only if this and the given pair are equal.

◆ operator==() [2/2]

template<int dim>
bool regina::FacetSpec< dim >::operator== ( const FacetSpec< dim > &  other) const
inline

Determines if this and the given specifier are identical.

Parameters
otherthe specifier to compare with this.
Returns
true if and only if this and the given specifier are equal.

◆ operator>()

bool regina::FacePair::operator> ( const FacePair other) const
inline

Determines if this is greater than the given face pair.

Parameters
otherthe pair to compare with this.
Returns
true if and only if this is greater than other.

◆ operator>=()

bool regina::FacePair::operator>= ( const FacePair other) const
inline

Determines if this is greater than or equal to the given face pair.

Parameters
otherthe pair to compare with this.
Returns
true if and only if this is greater than or equal to other.

◆ operator[]()

unsigned long regina::HomologicalData::SortedArray::operator[] ( size_t  index) const
inline

Return the integer at the given index in this array.

Parameters
indexthe requested array index; this must be between 0 and size()-1 inclusive.
Returns
the corresponding element of this array.

◆ orientable()

static Triangulation<2>* regina::Example< 2 >::orientable ( unsigned  genus,
unsigned  punctures 
)
static

Returns a triangulation of the given orientable surface.

Parameters
genusthe genus of the surface; this must be greater than or equal to zero.
puncturesthe number of punctures in the surface; this must be greater than or equal to zero.
Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ poincareHomologySphere()

static Triangulation<3>* regina::Example< 3 >::poincareHomologySphere ( )
static

Returns the five-tetrahedron triangulation of the Poincare homology sphere.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ push_back()

void regina::HomologicalData::SortedArray::push_back ( unsigned long  value)
inline

Pushes the given integer onto the end of this array.

Precondition
The given integer is at least as large as every integer currently stored in the array.
Parameters
valuethe integer to insert into this array.

◆ rp2()

static Triangulation<2>* regina::Example< 2 >::rp2 ( )
static

Returns a two-triangle projective plane.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ rp2xs1()

static Triangulation<3>* regina::Example< 3 >::rp2xs1 ( )
static

Returns a three-tetrahedron triangulation of the non-orientable product space RP^2 x S^1.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ rp3rp3()

static Triangulation<3>* regina::Example< 3 >::rp3rp3 ( )
static

Returns a triangulation of the connected sum RP^3 # RP^3.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ rp4()

static Triangulation<4>* regina::Example< 4 >::rp4 ( )
static

Returns a four-pentachoron triangulation of real projective 4-space.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.
Author
Ryan Budney

◆ s1Bundle()

static Triangulation<4>* regina::Example< 4 >::s1Bundle ( const Triangulation< 3 > &  base)
static

Returns a triangulation of the product M x S1, where M is the given 3-manifold triangulation.

This simply calls iBundle() and then glues together the two copies of M on the boundary.

The product will contain 82 pentachora for each original tetrahedron of M, and will contain many internal vertices. It is highly recommended that you call Triangulation<4>::intelligentSimplify() afterwards if you do not need to preserve the combinatorial structure.

Warning
If the given 3-manifold triangulation has ideal boundary, then you will obtain an invalid 4-manifold triangulation as a result.
Parameters
basethe 3-manifold triangulation M, as described above.
Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ s2xs1()

Triangulation< 3 > * regina::Example< 3 >::s2xs1 ( )
inlinestatic

Returns a two-tetrahedron triangulation of the product space S^2 x S^1.

This is identical to calling the generic routine sphereBundle().

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ s3xs1()

Triangulation< 4 > * regina::Example< 4 >::s3xs1 ( )
inlinestatic

Returns a two-pentachoron triangulation of the product space S^3 x S^1.

This is identical to calling the generic routine sphereBundle().

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ s3xs1Twisted()

Triangulation< 4 > * regina::Example< 4 >::s3xs1Twisted ( )
inlinestatic

Returns a two-pentachoron triangulation of the twisted product space S^3 x~ S^1.

This is identical to calling the generic routine twistedSphereBundle().

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ setBeforeStart()

template<int dim>
void regina::FacetSpec< dim >::setBeforeStart
inline

Sets this specifier to before-the-start.

◆ setBoundary()

template<int dim>
void regina::FacetSpec< dim >::setBoundary ( size_t  nSimplices)
inline

Sets this specifier to the overall boundary.

Parameters
nSimplicesthe number of simplices under consideration. Note that the boundary is represented in this specifier as simplex nSimplices, facet 0.

◆ setFirst()

template<int dim>
void regina::FacetSpec< dim >::setFirst
inline

Sets this specifier to the first facet of the first simplex.

◆ setPastEnd()

template<int dim>
void regina::FacetSpec< dim >::setPastEnd ( size_t  nSimplices)
inline

Sets this specifier to past-the-end.

Parameters
nSimplicesthe number of simplices under consideration. Note that past-the-end is represented in this specifier as simplex nSimplices, facet 1.

◆ simplicialFourSphere()

Triangulation< 4 > * regina::Example< 4 >::simplicialFourSphere ( )
inlinestatic

Returns the standard six-pentachoron triangulation of the 4-sphere as the boundary of a 5-simplex.

This is identical to calling the generic routine simplicialSphere().

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ size()

size_t regina::HomologicalData::SortedArray::size ( ) const
inline

Return the number of elements in this array.

Returns
the number of elements.

◆ smallClosedNonOrblHyperbolic()

static Triangulation<3>* regina::Example< 3 >::smallClosedNonOrblHyperbolic ( )
static

Returns the eleven-tetrahedron closed non-orientable hyperbolic 3-manifold with volume 2.02988321.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ smallClosedOrblHyperbolic()

static Triangulation<3>* regina::Example< 3 >::smallClosedOrblHyperbolic ( )
static

Returns the nine-tetrahedron closed orientable hyperbolic 3-manifold with volume 0.94270736.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ solidKleinBottle()

static Triangulation<3>* regina::Example< 3 >::solidKleinBottle ( )
static

Returns a triangulation of the solid Klein bottle.

This is isomorphic to the triangulation returned by the generic routine twistedBallBundle(), though it will have a different packet label.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ SortedArray() [1/2]

regina::HomologicalData::SortedArray::SortedArray ( )
inline

Construct an empty array.

◆ SortedArray() [2/2]

regina::HomologicalData::SortedArray::SortedArray ( const SortedArray &  )
default

Construct a clone of the given array.

◆ sphere600()

static Triangulation<3>* regina::Example< 3 >::sphere600 ( )
static

Returns the boundary 3-sphere of the regular 600-cell.

This is a triangulation of the 3-sphere that is a simplicial complex, and in which every edge has degree five.

The triangulation was extracted from the Benedetti-Lutz library of triangulations. See: http://page.math.tu-berlin.de/~lutz/stellar/library_of_triangulations.html

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ sphereOctahedron()

static Triangulation<2>* regina::Example< 2 >::sphereOctahedron ( )
static

Returns the eight-triangle 2-sphere formed from the boundary of an octahedron.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ sphereTetrahedron()

static Triangulation<2>* regina::Example< 2 >::sphereTetrahedron ( )
static

Returns the four-triangle 2-sphere formed from the boundary of a tetrahedron.

This is isomorphic to the triangulation returned by the generic routine simplicialSphere(), though it will have a different packet label.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ startPropertySubElement() [1/4]

template<int dim>
XMLElementReader * regina::XMLTriangulationReader< dim >::startPropertySubElement ( const std::string &  subTagName,
const regina::xml::XMLPropertyDict subTagProps 
)
inline

Returns an XML element reader for the given optional property of a dim-dimensional triangulation.

If subTagName names an XML element that describes an optional property of a triangulation (such as H1 or fundgroup for 3-manifold triangulations), then this function should return a corresponding element reader.

Otherwise this function should return a new XMLElementReader, which will cause the XML element to be ignored.

Parameters
subTagNamethe name of the XML subelement opening tag.
subTagPropsthe properties associated with the subelement opening tag.
Returns
a newly created element reader that will be used to parse the subelement. This class should not take care of the new reader's destruction; that will be done by the parser.

◆ startPropertySubElement() [2/4]

XMLElementReader * regina::XMLTriangulationReader< 2 >::startPropertySubElement ( const std::string &  subTagName,
const regina::xml::XMLPropertyDict subTagProps 
)
inline

Returns an XML element reader for the given optional property of a dim-dimensional triangulation.

If subTagName names an XML element that describes an optional property of a triangulation (such as H1 or fundgroup for 3-manifold triangulations), then this function should return a corresponding element reader.

Otherwise this function should return a new XMLElementReader, which will cause the XML element to be ignored.

Parameters
subTagNamethe name of the XML subelement opening tag.
subTagPropsthe properties associated with the subelement opening tag.
Returns
a newly created element reader that will be used to parse the subelement. This class should not take care of the new reader's destruction; that will be done by the parser.

◆ startPropertySubElement() [3/4]

XMLElementReader* regina::XMLTriangulationReader< 3 >::startPropertySubElement ( const std::string &  subTagName,
const regina::xml::XMLPropertyDict subTagProps 
)

Returns an XML element reader for the given optional property of a dim-dimensional triangulation.

If subTagName names an XML element that describes an optional property of a triangulation (such as H1 or fundgroup for 3-manifold triangulations), then this function should return a corresponding element reader.

Otherwise this function should return a new XMLElementReader, which will cause the XML element to be ignored.

Parameters
subTagNamethe name of the XML subelement opening tag.
subTagPropsthe properties associated with the subelement opening tag.
Returns
a newly created element reader that will be used to parse the subelement. This class should not take care of the new reader's destruction; that will be done by the parser.

◆ startPropertySubElement() [4/4]

XMLElementReader* regina::XMLTriangulationReader< 4 >::startPropertySubElement ( const std::string &  subTagName,
const regina::xml::XMLPropertyDict subTagProps 
)

Returns an XML element reader for the given optional property of a dim-dimensional triangulation.

If subTagName names an XML element that describes an optional property of a triangulation (such as H1 or fundgroup for 3-manifold triangulations), then this function should return a corresponding element reader.

Otherwise this function should return a new XMLElementReader, which will cause the XML element to be ignored.

Parameters
subTagNamethe name of the XML subelement opening tag.
subTagPropsthe properties associated with the subelement opening tag.
Returns
a newly created element reader that will be used to parse the subelement. This class should not take care of the new reader's destruction; that will be done by the parser.

◆ threeSphere()

static Triangulation<3>* regina::Example< 3 >::threeSphere ( )
static

Returns a one-tetrahedron triangulation of the 3-sphere.

This is different from the generic routine sphere(), which uses two tetrahedra instead.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ torsionLegendreSymbolVector()

const std::vector< std::pair< Integer, std::vector< int > > > & regina::HomologicalData::torsionLegendreSymbolVector ( )
inline

Returns the odd p-torsion Legendre symbol vector.

This is the last of the three Kawauchi-Kojima invariants.

For details, see "Algebraic classification of linking pairings on 3-manifolds", Akio Kawauchi and Sadayoshi Kojima, Math. Ann. 253 (1980), 29–42.

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
the Legendre symbol vector associated to the torsion linking form.

◆ torsionLegendreSymbolVectorString()

const std::string & regina::HomologicalData::torsionLegendreSymbolVectorString ( )
inline

Same as torsionLegendreSymbolVector() but returns as a human-readable string.

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
the Legendre symbol vector in human-readable form.

◆ torsionRankVector()

const std::vector< std::pair< Integer, std::vector< unsigned long > > > & regina::HomologicalData::torsionRankVector ( )
inline

Returns the torsion form rank vector.

This is the first of the three Kawauchi-Kojima complete invariants of the torsion linking form.

This vector describes the rank of the torsion subgroup of H1, given in prime power form. It is a vector of pairs (p, x), where p is a prime and x is its exponent.

For details, see "Algebraic classification of linking pairings on 3-manifolds", Akio Kawauchi and Sadayoshi Kojima, Math. Ann. 253 (1980), 29–42.

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
the torsion form rank vector.

◆ torsionRankVectorString()

const std::string & regina::HomologicalData::torsionRankVectorString ( )
inline

Same as torsionRankVector() but returns as a human-readable string.

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
human-readable prime power factorization of the order of the torsion subgroup of H1.

◆ torsionSigmaVector()

const std::vector< LargeInteger > & regina::HomologicalData::torsionSigmaVector ( )
inline

Returns the 2-torsion sigma vector.

This is the second of the three Kawauchi-Kojima invariants. It is orientation-sensitive.

For details, see "Algebraic classification of linking pairings on 3-manifolds", Akio Kawauchi and Sadayoshi Kojima, Math. Ann. 253 (1980), 29–42.

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
the Kawauchi-Kojima sigma-vector.

◆ torsionSigmaVectorString()

const std::string & regina::HomologicalData::torsionSigmaVectorString ( )
inline

Same as torsionSigmaVector() but returns as a human-readable string.

This is an orientation-sensitive invariant.

Precondition
The triangulation is of a connected orientable 3-manifold.
Returns
the Kawauchi-Kojima sigma-vector in human readable form.

◆ torus()

static Triangulation<2>* regina::Example< 2 >::torus ( )
static

Returns a two-triangle torus.

This is isomorphic to the triangulation returned by the generic routine sphereBundle(), though it will have a different packet label.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ trefoil()

static Triangulation<3>* regina::Example< 3 >::trefoil ( )
static

Returns a two-tetrahedron ideal triangulation of the trefoil knot complement.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ upper()

unsigned regina::FacePair::upper ( ) const
inline

Returns the larger of the two face numbers in this pair.

Precondition
This face pair is neither before-the-start or past-the-end.
Returns
the upper face number.

◆ weberSeifert()

static Triangulation<3>* regina::Example< 3 >::weberSeifert ( )
static

Returns a one-vertex triangulation of the Weber-Seifert dodecahedral space.

This 3-manifold is described in "Die beiden Dodekaederraume", C. Weber and H. Seifert, Math. Z. 37 (1933), no. 1, 237-253. The triangulation returned by this routine (with 23 tetrahedra) is given in "The Weber-Seifert dodecahedral space is non-Haken", Benjamin A. Burton, J. Hyam Rubinstein and Stephan Tillmann, Trans. Amer. Math. Soc. 364:2 (2012), pp. 911-932.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ weeks()

static Triangulation<3>* regina::Example< 3 >::weeks ( )
static

Returns a nine-tetrahedron minimal triangulation of the Weeks manifold.

The Weeks manifold is the smallest-volume closed hyperbolic 3-manifold, with a volume of roughly 0.9427. Note that there are nine minimal triangulations of the Weeks manifold (of course this routine returns just one).

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ whiteheadLink()

static Triangulation<3>* regina::Example< 3 >::whiteheadLink ( )
static

Returns a four-tetrahedron ideal triangulation of the Whitehead link complement.

Returns
a newly constructed triangulation, which must be destroyed by the caller of this routine.

◆ writeTextShort()

void regina::HomologicalData::writeTextShort ( std::ostream &  out) const

Writes a short text representation of this object to the given output stream.

Note this only writes pre-computed data. Thus if you have not yet asked HomologicalData to compute anything about this triangulation, writeTextShort may be empty.

Python
Not present.
Parameters
outthe output stream to which to write.

◆ XMLTriangulationReader() [1/4]

template<int dim>
regina::XMLTriangulationReader< dim >::XMLTriangulationReader ( XMLTreeResolver resolver)
inline

Creates a new triangulation reader.

Parameters
resolverthe master resolver that will be used to fix dangling packet references after the entire XML file has been read.

◆ XMLTriangulationReader() [2/4]

Creates a new triangulation reader.

Parameters
resolverthe master resolver that will be used to fix dangling packet references after the entire XML file has been read.

◆ XMLTriangulationReader() [3/4]

Creates a new triangulation reader.

Parameters
resolverthe master resolver that will be used to fix dangling packet references after the entire XML file has been read.

◆ XMLTriangulationReader() [4/4]

Creates a new triangulation reader.

Parameters
resolverthe master resolver that will be used to fix dangling packet references after the entire XML file has been read.

◆ ~HomologicalData()

regina::HomologicalData::~HomologicalData ( )
inline

Destructor.

Variable Documentation

◆ facet

template<int dim>
int regina::FacetSpec< dim >::facet

The facet of the simplex referred to.

The facet number is between 0 and dim inclusive.

◆ simp

template<int dim>
int regina::FacetSpec< dim >::simp

The simplex referred to.

Simplex numbering begins at 0.


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