Regina 7.4 Calculation Engine
|
The default encoding to use for isomorphism signatures. More...
#include <triangulation/isosigencoding.h>
Public Types | |
using | Signature = std::string |
The data type used to store an isomorphism signature. | |
Static Public Member Functions | |
static Signature | emptySig () |
Returns the isomorphism signature of an empty dim-dimensional triangulation. | |
static Signature | encode (size_t size, size_t nFacetActions, const uint8_t *facetAction, size_t nJoins, const size_t *joinDest, const typename Perm< dim+1 >::Index *joinGluing, const typename Simplex< dim >::LockMask *lockMasks) |
Encodes data for a single connected component of a dim-dimensional triangulation. | |
Static Public Attributes | |
static constexpr int | charsPerPerm |
The number of characters that we use in our encoding to represent a single gluing permutation. | |
The default encoding to use for isomorphism signatures.
This printable encoding is consistent with the original isomorphism signatures that were implemented in Regina 4.90. It represents an isomorphism signature as a std::string, using only printable characters from the 7-bit ASCII range.
As of Regina 7.4, if supportLocks is true
(the default), then this encoding will also encode any simplex and/or facet locks into the isomorphism signature. If supportLocks is false
, and/or if the triangulation in question does not actually have any simplex and/or facet locks, then the resulting signature will be the same as produced by earlier versions of Regina, before locks were implemented.
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.
using regina::IsoSigPrintable< dim, supportLocks >::Signature = std::string |
The data type used to store an isomorphism signature.
|
inlinestatic |
Returns the isomorphism signature of an empty dim-dimensional triangulation.
|
inlinestatic |
Encodes data for a single connected component of a dim-dimensional triangulation.
The description consists of several arrays, describing facets of the top-dimensional simplices, as well as the ways that these facets are glued together and any simplex and/or facet locks. Which array elements represent which facets/gluings is an implementation detail; the purpose of this routine is simply to encode the given information. See the isoSig() implementation for further details.
None
. The arguments nFacetActions and nJoins are not present, since Python lists already know their own sizes.size | the number of top-dimensional simplices in the component. |
nFacetActions | the size of the array facetAction. |
facetAction | an array of size nFacetActions, where each element is either 0, 1 or 2, respectively representing a boundary facet, a facet joined to a new simplex, or a facet joined to a simplex that has already been seen. |
nJoins | the size of the arrays joinDest and joinGluing. |
joinDest | an array whose elements are indices of top-dimensional simplices to which gluings are being made. |
joinGluing | an array of gluing permutations. |
lockMasks | an array that holds the lock masks for all top-dimensional simplices in the component, as returned by Simplex<dim>::lockMask() . This array should have length size. If no simplices have any locks at all, then this argument must be null . |
|
staticconstexpr |
The number of characters that we use in our encoding to represent a single gluing permutation.
This must be large enough to encode an index into Perm<dim+1>Sn.