Regina 7.0 Calculation Engine
Public Member Functions | List of all members
regina::IsoSigClassic< dim > Class Template Reference

The default signature type to use for isomorphism signatures. More...

#include <triangulation/isosigtype.h>

Public Member Functions

 IsoSigClassic (const Component< dim > &comp)
 Initialises this object to iterate through candidate "starting simplices" s and "starting labellings" p for the given triangulation component. More...
 
size_t simplex () const
 Returns the current starting simplex s. More...
 
Perm< dim+1 > perm () const
 Returns the current starting labelling p of the vertices of the current starting simplex. More...
 
bool next ()
 Advances this object to the next candidate pair (s, p). More...
 
 IsoSigClassic (const IsoSigClassic &)=delete
 
IsoSigClassicoperator= (const IsoSigClassic &)=delete
 

Detailed Description

template<int dim>
class regina::IsoSigClassic< dim >

The default signature type to use for isomorphism signatures.

This signature type is consistent with the original isomorphism signatures that were implemented in Regina 4.90.

A signature type class such as this works with a single component c of a dim-dimenensional triangulation. The sole task of a type class is to iterate through a selection of combinations (s, p), each of which identifies a "starting simplex" and a "starting labelling" of its vertices. Here s is a top-dimensional simplex in c that will act as the "starting simplex", and p is a permutation that maps the vertices of s to the "starting labelling" 0,1,...,dim.

The properties that any signature type must satisfy are:

An instance of a type class is like an iterator: it holds a single candidate combination (s, p). The constructor must initialise the instance to store the first candidate combination; you can then query the current combination by calling simplex() and perm(), and you can advance to the next combination by calling next().

This classic signature type is trivial, in that it considers all possible simplices s and all (dim+1)! possible permutations p.

This class is designed to be used as a template parameter for Triangulation<dim>::isoSig() and Triangulation<dim>::isoSigDetail(). Typical users would have no need to create objects of this class or call any of its functions directly.

Python
Python does not support templates. Instead this class can be used by appending the dimension as a suffix (e.g., IsoSigClassic2 and IsoSigClassic3 for dimensions 2 and 3).

Constructor & Destructor Documentation

◆ IsoSigClassic()

template<int dim>
regina::IsoSigClassic< dim >::IsoSigClassic ( const Component< dim > &  comp)
inline

Initialises this object to iterate through candidate "starting simplices" s and "starting labellings" p for the given triangulation component.

See the class notes for details.

This object will initially be set to hold the first candidate pair (s, p).

Parameters
compthe triangulation component that we are examining.

Member Function Documentation

◆ next()

template<int dim>
bool regina::IsoSigClassic< dim >::next
inline

Advances this object to the next candidate pair (s, p).

See the class notes for further details.

Precondition
This object is holding a valid candidate pair (s, p); that is, next() has not yet returned false.
Returns
true if this was successful, or false if there is no next candidate pair (i.e., the current candidate pair is the last).

◆ perm()

template<int dim>
Perm< dim+1 > regina::IsoSigClassic< dim >::perm
inline

Returns the current starting labelling p of the vertices of the current starting simplex.

See the class notes for further details.

Precondition
This object is holding a valid candidate pair (s, p); that is, next() has not yet returned false.
Returns
the starting labelling, given as a permutation that maps the current vertex labels of the starting simplex s to the "canonical" labels 0,1,...,dim.

◆ simplex()

template<int dim>
size_t regina::IsoSigClassic< dim >::simplex
inline

Returns the current starting simplex s.

See the class notes for further details.

Precondition
This object is holding a valid candidate pair (s, p); that is, next() has not yet returned false.
Returns
the index of the current starting simplex with respect to the triangulation component under consideration. Note that, for a disconnected triangulation, this is not necessarily the same as Simplex::index() (which gives the index with respect to the overall triangulation).

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

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