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