Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Triangulations

Triangulations of 3-manifolds. More...

Classes

class  regina::NBoundaryComponent
 Represents a component of the boundary of a triangulation. More...
class  regina::NComponent
 Represents a component of a triangulation. More...
class  regina::NEdgeEmbedding
 Details how an edge in the skeleton forms part of an individual tetrahedron. More...
class  regina::NEdge
 Represents an edge in the skeleton of a triangulation. More...
class  regina::NFaceEmbedding
 Details how a face in the skeleton forms part of an individual tetrahedron. More...
class  regina::NFace
 Represents a face in the skeleton of a triangulation. More...
class  regina::NFacePair
 Represents a pair of tetrahedron face numbers. More...
class  regina::NIsomorphism
 Represents a combinatorial isomorphism from one triangulation into another. More...
class  regina::NIsomorphismDirect
 An isomorphism in which face permutations are stored directly. More...
class  regina::NIsomorphismIndexed
 An isomorphism in which face permutations are stored as indices into the allPermsS4 array. More...
class  regina::NPerm
 Represents a permutation of {0,1,2,3}. More...
class  regina::NPermItS4
 An iterator class that runs through all 24 permutations of four elements. More...
struct  regina::NTetFace
 A lightweight class used to refer to a particular face of a particular tetrahedron. More...
class  regina::NTetrahedron
 Represents a tetrahedron in a triangulation. More...
class  regina::NTriangulation
 Stores the triangulation of a 3-manifold along with its various cellular structures and other information. More...
class  regina::NVertexEmbedding
 Details how a vertex in the skeleton forms part of an individual tetrahedron. More...
class  regina::NVertex
 Represents a vertex in the skeleton of a triangulation. More...
class  regina::NXMLTriangulationReader
 An XML packet reader that reads a single triangulation. More...

Functions

std::ostream & regina::operator<< (std::ostream &out, const NPerm &p)
 Writes a string representation of the given permutation to the given output stream.
NPerm regina::faceOrdering (int face)
 Returns a permutation mapping (0,1,2) to the vertices of the given tetrahedron face in their canonical order.
NPerm regina::edgeOrdering (int edge)
 Returns a permutation mapping (0,1) to the vertices of the given tetrahedron edge in their canonical order.
std::string regina::faceDescription (int face)
 Returns a string representation of the permutation mapping (0,1,2) to the vertices of the given tetrahedron face in their canonical order, as described in faceOrdering().
std::string regina::faceDescription (const NPerm &facePerm)
 Returns a string representation of the given permutation with only the images of 0, 1 and 2 included.
std::string regina::edgeDescription (int edge)
 Returns a string representation of the permutation mapping (0,1) to the vertices of the given tetrahedron edge in their canonical order, as described in edgeOrdering().
std::string regina::edgeDescription (const NPerm &edgePerm)
 Returns a string representation of the given permutation with only the images of 0 and 1 included.

Variables

const int regina::edgeNumber [4][4]
 edgeNumber[i][j] is the number of the edge linking vertices i and j in a tetrahedron.
const int regina::edgeStart [6]
 edgeStart[k] is the vertex of a tetrahedron at which edge k of the tetrahedron begins.
const int regina::edgeEnd [6]
 edgeEnd[k] is the vertex of a tetrahedron at which edge k of the tetrahedron ends.
const NPerm regina::allPermsS4 [24]
 Contains all possible permutations of four elements.
const unsigned regina::allPermsS4Inv [24]
 Contains the inverses of the permutations in array allPermsS4.
const NPerm regina::orderedPermsS4 [24]
 Contains all possible permutations of four elements in lexicographical order.
const NPerm regina::allPermsS3 [6]
 Contains all possible permutations of three elements.
const unsigned regina::allPermsS3Inv [6]
 Contains the inverses of the permutations in array allPermsS3.
const NPerm regina::orderedPermsS3 [6]
 Contains all possible permutations of three elements in lexicographical order.
const NPerm regina::allPermsS2 [2]
 Contains all possible permutations of two elements.
const unsigned regina::allPermsS2Inv [2]
 Contains the inverses of the permutations in array allPermsS2.

Detailed Description

Triangulations of 3-manifolds.


Function Documentation

std::string edgeDescription const NPerm &  edgePerm  ) 
 

Returns a string representation of the given permutation with only the images of 0 and 1 included.

Parameters:
edgePerm the permutation to represent.
Returns:
a restricted string representation of the given permutation.

std::string edgeDescription int  edge  ) 
 

Returns a string representation of the permutation mapping (0,1) to the vertices of the given tetrahedron edge in their canonical order, as described in edgeOrdering().

Only the images of 0 and 1 will be put in the string.

Parameters:
edge an edge number in a tetrahedron. This should be between 0 and 5 inclusive. The constant arrays edgeNumber, edgeStart and edgeEnd describe which vertex numbers are joined by which edge numbers.
Returns:
a string representing the canonical ordering of vertices in the given edge.

NPerm edgeOrdering int  edge  ) 
 

Returns a permutation mapping (0,1) to the vertices of the given tetrahedron edge in their canonical order.

The images of (0,1) will be the vertex numbers of the vertices that make up the given edge of a generic tetrahedron.

The images of 2 and 3 in the returned permutation will be chosen so that the permutation will be even.

Parameters:
edge an edge number in a tetrahedron. This should be between 0 and 5 inclusive. The constant arrays edgeNumber, edgeStart and edgeEnd describe which vertex numbers are joined by which edge numbers.
Returns:
the permutation representing the canonical ordering of vertices in the given edge.

std::string faceDescription const NPerm &  facePerm  ) 
 

Returns a string representation of the given permutation with only the images of 0, 1 and 2 included.

Parameters:
facePerm the permutation to represent.
Returns:
a restricted string representation of the given permutation.

std::string faceDescription int  face  ) 
 

Returns a string representation of the permutation mapping (0,1,2) to the vertices of the given tetrahedron face in their canonical order, as described in faceOrdering().

Only the images of 0, 1 and 2 will be put in the string.

Parameters:
face a face number in a tetrahedron. This should be between 0 and 3 inclusive. Note that face i is opposite vertex i.
Returns:
a string representing the canonical ordering of vertices in the given face.

NPerm faceOrdering int  face  ) 
 

Returns a permutation mapping (0,1,2) to the vertices of the given tetrahedron face in their canonical order.

The images of (0,1,2) will be the vertex numbers of the vertices that make up the given face of a generic tetrahedron.

Parameters:
face a face number in a tetrahedron. This should be between 0 and 3 inclusive. Note that face i is opposite vertex i.
Returns:
the permutation representing the canonical ordering of vertices in the given face.

std::ostream& operator<< std::ostream &  out,
const NPerm &  p
[inline]
 

Writes a string representation of the given permutation to the given output stream.

The format will be the same as is used by NPerm::toString().

Parameters:
out the output stream to which to write.
p the permutation to write.
Returns:
a reference to out.


Variable Documentation

const NPerm regina::allPermsS2[2]
 

Contains all possible permutations of two elements.

In each permutation, 2 maps to 2 and 3 maps to 3. The permutations with even indices in the array are the even permutations, and those with odd indices in the array are the odd permutations.

Note that the permutations are also in lexicographical order.

const unsigned regina::allPermsS2Inv[2]
 

Contains the inverses of the permutations in array allPermsS2.

Specifically, the inverse of permutation allPermsS2[i] is permutation allPermsS2[ allPermsS2Inv[i] ].

const NPerm regina::allPermsS3[6]
 

Contains all possible permutations of three elements.

In each permutation, 3 maps to 3. The permutations with even indices in the array are the even permutations, and those with odd indices in the array are the odd permutations.

Note that the permutations are not necessarily in lexicographical order.

const unsigned regina::allPermsS3Inv[6]
 

Contains the inverses of the permutations in array allPermsS3.

Specifically, the inverse of permutation allPermsS3[i] is permutation allPermsS3[ allPermsS3Inv[i] ].

const NPerm regina::allPermsS4[24]
 

Contains all possible permutations of four elements.

The permutations with even indices in the array are the even permutations, and those with odd indices in the array are the odd permutations.

Note that the permutations are not necessarily in lexicographical order.

const unsigned regina::allPermsS4Inv[24]
 

Contains the inverses of the permutations in array allPermsS4.

Specifically, the inverse of permutation allPermsS4[i] is permutation allPermsS4[ allPermsS4Inv[i] ].

const int regina::edgeEnd[6]
 

edgeEnd[k] is the vertex of a tetrahedron at which edge k of the tetrahedron ends.

k must be between 0 and 5 inclusive. The resulting vertex number will be between 0 and 3 inclusive.

Note that edge numbers of opposite edges will always add to 5. You are guaranteed that edgeStart[e] will always be smaller than edgeEnd[e].

const int regina::edgeNumber[4][4]
 

edgeNumber[i][j] is the number of the edge linking vertices i and j in a tetrahedron.

i and j must be between 0 and 3 inclusive and may be given in any order. The resulting edge number will be between 0 and 5 inclusive.

Note that edge numbers of opposite edges will always add to 5.

const int regina::edgeStart[6]
 

edgeStart[k] is the vertex of a tetrahedron at which edge k of the tetrahedron begins.

k must be between 0 and 5 inclusive. The resulting vertex number will be between 0 and 3 inclusive.

Note that edge numbers of opposite edges will always add to 5. You are guaranteed that edgeStart[e] will always be smaller than edgeEnd[e].

const NPerm regina::orderedPermsS3[6]
 

Contains all possible permutations of three elements in lexicographical order.

In each permutation, 3 maps to 3.

const NPerm regina::orderedPermsS4[24]
 

Contains all possible permutations of four elements in lexicographical order.


Copyright © 1999-2004, Ben Burton
This software is released under the GNU General Public License.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).