Regina Calculation Engine
Static Public Member Functions | Static Public Attributes | List of all members
regina::detail::FaceNumberingImpl< 4, 2, false > Class Template Reference
Inheritance diagram for regina::detail::FaceNumberingImpl< 4, 2, false >:
regina::detail::FaceNumberingAPI< 4, 2 >

Static Public Member Functions

static Perm< dim+1 > ordering (unsigned face)
 Given a subdim-face number within a dim-dimensional simplex, returns the corresponding canonical ordering of the simplex vertices. More...
 
static unsigned faceNumber (Perm< dim+1 > vertices)
 Identifies which subdim-face in a dim-dimensional simplex is represented by the first (subdim + 1) elements of the given permutation. More...
 
static bool containsVertex (unsigned face, unsigned vertex)
 Tests whether the given subdim-face of a dim-dimensional simplex contains the given vertex of the simplex. More...
 

Static Public Attributes

static const int triangleNumber [5][5][5]
 A table that maps vertices of a pentachoron to triangle numbers. More...
 
static const int triangleVertex [10][3]
 A table that maps triangles of a pentachoron to vertex numbers. More...
 
static constexpr int nFaces = 10
 The total number of triangles in each pentachoron. More...
 

Member Function Documentation

◆ containsVertex()

static bool regina::detail::FaceNumberingAPI< dim, subdim >::containsVertex ( unsigned  face,
unsigned  vertex 
)
staticinherited

Tests whether the given subdim-face of a dim-dimensional simplex contains the given vertex of the simplex.

Parameters
facea subdim-face number in a dim-simplex; this must be between 0 and (dim+1 choose subdim+1)-1 inclusive.
vertexa vertex number in a dim-simplex; this must be between 0 and dim inclusive.
Returns
true if and only if the given subdim-face contains the given vertex.

◆ faceNumber()

static unsigned regina::detail::FaceNumberingAPI< dim, subdim >::faceNumber ( Perm< dim+1 >  vertices)
staticinherited

Identifies which subdim-face in a dim-dimensional simplex is represented by the first (subdim + 1) elements of the given permutation.

In other words, this routine identifies which subdim-face number within a dim-dimensional simplex spans vertices vertices[0, ..., subdim].

Parameters
verticesa permutation whose first (subdim + 1) elements represent some vertex numbers in a dim-simplex.
Returns
the corresponding subdim-face number in the dim-simplex. This will be between 0 and (dim+1 choose subdim+1)-1 inclusive.

◆ ordering()

static Perm<dim + 1> regina::detail::FaceNumberingAPI< dim, subdim >::ordering ( unsigned  face)
staticinherited

Given a subdim-face number within a dim-dimensional simplex, returns the corresponding canonical ordering of the simplex vertices.

If this canonical ordering is c, then c[0,...,subdim] will be the vertices of the given face in increasing numerical order. That is, c[0] < ... < c[subdim]. The remaining images c[(subdim + 1),...,dim] will be ordered arbitrarily.

Note that this is not the same permutation as returned by Simplex<dim>::faceMapping<subdim>():

  • ordering() is a static function, which returns the same permutation for the same face number, regardless of which dim-simplex we are looking at. The images of 0,...,subdim will always appear in increasing order, and the images of (subdim + 1),...,dim will be arbitrary.
  • faceMapping() examines the underlying face F of the triangulation and, across all appearances of F in different dim-simplices: (i) chooses the images of 0,...,subdim to map to the same respective vertices of F; and (ii) chooses the images of (subdim + 1),...,dim to maintain a "consistent orientation" constraint.
Parameters
faceidentifies which subdim-face of a dim-dimensional simplex to query. This must be between 0 and (dim+1 choose subdim+1)-1 inclusive.
Returns
the corresponding canonical ordering of the simplex vertices.

Member Data Documentation

◆ nFaces

constexpr int regina::detail::FaceNumberingImpl< 4, 2, false >::nFaces = 10
static

The total number of triangles in each pentachoron.

◆ triangleNumber

const int regina::detail::FaceNumberingImpl< 4, 2, false >::triangleNumber[5][5][5]
static

A table that maps vertices of a pentachoron to triangle numbers.

Triangles in a pentachoron are numbered 0,...,9. This table converts vertices to triangle numbers; in particular, the triangle spanned by vertices i, j and k of a pentachoron is triangle number triangleNumber[i][j][k]. Here i, j and k must be distinct, must be between 0 and 4 inclusive, and may be given in any order. The resulting triangle number will be between 0 and 9 inclusive.

Note
Accessing triangleNumber[i][j][k] is equivalent to calling faceNumber(p), where p is a permutation that maps 0,1,2 to i,j,k in some order.

◆ triangleVertex

const int regina::detail::FaceNumberingImpl< 4, 2, false >::triangleVertex[10][3]
static

A table that maps triangles of a pentachoron to vertex numbers.

Triangles in a pentachoron are numbered 0,...,9. This table converts triangle numbers to vertices; in particular, triangle i in a pentachoron is spanned by vertices triangleVertex[i][0], triangleVertex[i][1] and triangleVertex[i][2]. Here i must be between 0 and 9 inclusive; the resulting vertex numbers will be between 0 and 4 inclusive.

It is guaranteed that triangleVertex[i][0] will always be smaller than triangleVertex[i][1], which in turn will always be smaller than triangleVertex[i][2].

Note
Accessing triangleVertex[i][j] is equivalent to calling ordering(i)[j].

The documentation for this class was generated from the following file:

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