Regina 7.3 Calculation Engine
Classes | Public Member Functions | List of all members
regina::IsoSigDegrees< dim, subdim > Class Template Reference

Defines an alternate type of isomorphism signature based on degree sequences of subdim-faces. More...

#include <triangulation/isosigtype.h>

Public Member Functions

 IsoSigDegrees (const Component< dim > &comp)
 Initialises this object to iterate through candidate "starting simplices" s and "starting labellings" p for the given triangulation component. More...
 
 ~IsoSigDegrees ()
 Destroys this object and all of its internal data. 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...
 
 IsoSigDegrees (const IsoSigDegrees &)=delete
 
IsoSigDegreesoperator= (const IsoSigDegrees &)=delete
 

Detailed Description

template<int dim, int subdim>
class regina::IsoSigDegrees< dim, subdim >

Defines an alternate type of isomorphism signature based on degree sequences of subdim-faces.

See the IsoSigClassic documentation for details on what a signature type class is required to provide.

This is an alternate "proof of concept" type that shows how you might speed up isomorphism signature computations. It requires that the starting simplex must be one whose set of subdim-face degrees is lexicographically minimal amongst all top-dimensional simplices.

The hope is that this eliminates a large number of potential starting simplices without adding an enormous amount of computational overhead.

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, and there are far too many of these classes to wrap. Currently Python supports only the cases where subdim is 1 or dim-2, using the type aliases IsoSigEdgeDegrees and IsoSigRidgeDegrees respectively (these cover all the variants that Regina currently uses internally). You can access the corresponding classes by appending the appending the dimension as a suffix to the type alias (e.g., you can use IsoSigEdgeDegrees3 to work with edge degrees in 3-manifold triangulations).

Constructor & Destructor Documentation

◆ IsoSigDegrees()

template<int dim, int subdim>
regina::IsoSigDegrees< dim, subdim >::IsoSigDegrees ( const Component< dim > &  comp)

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

See the IsoSigClassic class documentation notes for further details.

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

Parameters
compthe triangulation component that we are examining.

◆ ~IsoSigDegrees()

template<int dim, int subdim>
regina::IsoSigDegrees< dim, subdim >::~IsoSigDegrees
inline

Destroys this object and all of its internal data.

Member Function Documentation

◆ next()

template<int dim, int subdim>
bool regina::IsoSigDegrees< dim, subdim >::next

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

See the IsoSigClassic class documentation 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, int subdim>
Perm< dim+1 > regina::IsoSigDegrees< dim, subdim >::perm
inline

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

See the IsoSigClassic class documentation 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, int subdim>
size_t regina::IsoSigDegrees< dim, subdim >::simplex
inline

Returns the current starting simplex s.

See the IsoSigClassic class documentation 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 file:

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