Regina Calculation Engine
Public Member Functions | Public Attributes | List of all members
regina::GluingPermSearcher< 4 >::PentEdgeState Struct Reference

A structure used to track equivalence classes of pentachoron edges as the gluing permutation set is constructed. More...

#include <census/gluingpermsearcher4.h>

Public Member Functions

 PentEdgeState ()
 Constructor for a standalone pentachoron edge in an equivalence class all of its own. More...
 
void dumpData (std::ostream &out) const
 Dumps all internal data in a plain text format to the given output stream. More...
 
bool readData (std::istream &in, unsigned long nStates)
 Fills this state with data read from the given input stream. More...
 

Public Attributes

int parent
 The index of the parent object in the current tree, or -1 if this object is the root of the tree. More...
 
unsigned rank
 The depth of the subtree beneath this object (where a leaf node has depth zero). More...
 
unsigned bdry
 The number of boundary triangle edges in the link for this equivalence class of pentachoron edges. More...
 
char twistUpEdge
 Each pentachoron edge can be assigned an orientation pointing from the lower numbered pentachoron vertex to the higher. More...
 
char twistUpTriangle
 The identification of this object and its parent in the tree corresponds to a gluing of two triangles in the edge link. More...
 
bool hadEqualRank
 Did this tree have rank equal to its parent immediately before it was grafted beneath its parent? This information is used to maintain the ranks correctly when grafting operations are undone. More...
 
unsigned char bdryEdges
 The number of edges of the triangular piece of 4-manifold edge link that are in fact boundary edges of this link. More...
 
int bdryNext [2]
 If the corresponding triangular piece of 4-manifold edge link has any boundary edges, bdryNext stores the indices of the pentachoron edges that provide the boundary edges following on from either end of this boundary segment. More...
 
char bdryTwist [2]
 Describes whether the orientation of this boundary segment of the 4-manifold edge link is consistent with the orientation of the adjacent segments on either side. More...
 
int bdryNextOld [2]
 Stores a snapshot of the values in the bdryNext array from the last point in the search when bdryEdges was precisely two. More...
 
char bdryTwistOld [2]
 Stores a snapshot of the values in the bdryTwist array from the last point in the search when bdryEdges was precisely two. More...
 

Detailed Description

template<>
struct regina::GluingPermSearcher< 4 >::PentEdgeState

A structure used to track equivalence classes of pentachoron edges as the gluing permutation set is constructed.

Two edges are considered equivalent if they are identified within the triangulation.

Pentachoron edges are indexed linearly by pentachoron and then edge number. Specifically, edge e (0..9) of pentachoron p (0..nPents-1) has index 10p+e.

Each equivalence class of edges corresponds to a tree of PentEdgeState objects, arranged to form a modified union-find structure.

Note that a single pentachoron edge (as described by this structure) provides a single triangular piece of the overall edge link. This triangle piece is referred to in several of the data members below.


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

Copyright © 1999-2016, 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).