Regina 7.3 Calculation Engine
Classes | Typedefs | Functions
Triangulations

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

Classes

class  regina::Cut
 A cut that separates a triangulation or facet pairing into two pieces. More...
 
class  regina::HomologicalData
 A specialised class that computes a large amount of detailed homological information for a 3-manifold triangulation. More...
 
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::IsoSigPrintable< dim >
 The default encoding to use for isomorphism signatures. More...
 
class  regina::IsoSigClassic< dim >
 The default signature type to use for isomorphism signatures. More...
 
class  regina::IsoSigDegrees< dim, subdim >
 Defines an alternate type of isomorphism signature based on degree sequences of subdim-faces. More...
 

Typedefs

template<int dim>
using regina::IsoSigEdgeDegrees = IsoSigDegrees< dim, 1 >
 Defines an alternate type of isomorphism signature based on edge degree sequences. More...
 
template<int dim>
using regina::IsoSigRidgeDegrees = IsoSigDegrees< dim, dim - 2 >
 Defines an alternate type of isomorphism signature based on degree sequences of (dim-2)-faces. More...
 

Functions

void regina::swap (Cut &a, Cut &b) noexcept
 Swaps the contents of the given cuts. More...
 
void regina::swap (HomologicalData &a, HomologicalData &b) noexcept
 Swaps the contents of the two given HomologicalData objects. More...
 
template<int dim>
constexpr 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...
 
std::ostream & regina::operator<< (std::ostream &out, const FacePair &pair)
 Writes the given face pair to the given output stream. 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...
 

Detailed Description

Triangulations of manifolds in all supported dimensions.

Typedef Documentation

◆ IsoSigEdgeDegrees

template<int dim>
using regina::IsoSigEdgeDegrees = typedef IsoSigDegrees<dim, 1>

Defines an alternate type of isomorphism signature based on edge degree sequences.

Python
Python does not support templates. You can access these classes by appending the appending the dimension as a suffix (e.g., use IsoSigEdgeDegrees3 to use edge degrees in 3-manifold triangulations).

◆ IsoSigRidgeDegrees

template<int dim>
using regina::IsoSigRidgeDegrees = typedef IsoSigDegrees<dim, dim - 2>

Defines an alternate type of isomorphism signature based on degree sequences of (dim-2)-faces.

Python
Python does not support templates. You can access these classes by appending the appending the dimension as a suffix (e.g., use IsoSigRidgeDegrees4 to use triangle degrees in 4-manifold triangulations).

Function Documentation

◆ faceOppositeEdge()

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

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.

Python
Python does not support templates. Instead, Python users should call this function in the form faceOppositeEdge(dim, i, j); that is, the template parameter dim becomes the first argument of the function.
Template Parameters
dimthe dimension of simplex that we are working with. This must be between 2 and 15 inclusive.
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.

◆ 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.

◆ swap() [1/2]

void regina::swap ( Cut a,
Cut b 
)
inlinenoexcept

Swaps the contents of the given cuts.

This global routine simply calls Cut::swap(); it is provided so that Cut meets the C++ Swappable requirements.

Parameters
athe first cut whose contents should be swapped.
bthe second cut whose contents should be swapped.

◆ swap() [2/2]

void regina::swap ( HomologicalData a,
HomologicalData b 
)
inlinenoexcept

Swaps the contents of the two given HomologicalData objects.

This global routine simply calls HomologicalData::swap(); it is provided so that HomologicalData meets the C++ Swappable requirements.

Warning
Although this operation is constant time, the HomologicalData class contains an enormous amount of data spread across many different member variables, and so this should really be considered "expensive constant time". You should still work to avoid swapping (or moving, and certainly copying) HomologicalData objects where possible.
Parameters
athe first object whose contents should be swapped.
bthe second object whose contents should be swapped.

Copyright © 1999-2023, 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).