Regina Calculation Engine
Classes | Namespaces | Macros | Typedefs
ngluingpermsearcher.h File Reference

Supports searching through all possible sets of tetrahedron gluing permutations for a given tetrahedron face pairing. More...

#include "regina-core.h"
#include "census/ngluingperms.h"
#include "utilities/nqitmask.h"

Classes

class  regina::NGluingPermSearcher
 A utility class for searching through all possible gluing permutation sets that correspond to a given tetrahedron face pairing. More...
 
class  regina::NEulerSearcher
 A gluing permutation search class that offers a specialised search algorithm for when all vertex links must all have a given fixed Euler characteristic. More...
 
struct  regina::NEulerSearcher::TetVertexState
 A structure used to track equivalence classes of tetrahedron vertices as the gluing permutation set is constructed. More...
 
struct  regina::NEulerSearcher::TetEdgeState
 A structure used to track equivalence classes of tetrahedron edges as the gluing permutation set is constructed. More...
 
class  regina::NCompactSearcher
 A gluing permutation search class that offers a specialised search algorithm for when only compact (finite) 3-manifold triangulations are required. More...
 
struct  regina::NCompactSearcher::TetVertexState
 A structure used to track equivalence classes of tetrahedron vertices as the gluing permutation set is constructed. More...
 
struct  regina::NCompactSearcher::TetEdgeState
 A structure used to track equivalence classes of tetrahedron edges as the gluing permutation set is constructed. More...
 
class  regina::NClosedPrimeMinSearcher
 A gluing permutation search class that offers a specialised search algorithm for when (i) only closed prime minimal P2-irreducible triangulations are required, and (ii) the given face pairing has order at least three. More...
 
class  regina::NHyperbolicMinSearcher
 A gluing permutation search class that offers a specialised search algorithm for when only minimal ideal triangulations of cusped finite-volume hyperbolic 3-manifolds are required. More...
 

Namespaces

 regina
 Contains the entire Regina calculation engine.
 

Macros

#define PRUNE_HIGH_DEG_EDGE_SET   1
 Specifies whether the NClosedPrimeMinSearcher census generation code should prune on high-degree edges. More...
 

Typedefs

typedef void(* regina::UseGluingPerms )(const NGluingPermSearcher *, void *)
 A routine used to do arbitrary processing upon a particular set of tetrahedron gluing permutations. More...
 

Detailed Description

Supports searching through all possible sets of tetrahedron gluing permutations for a given tetrahedron face pairing.

Macro Definition Documentation

#define PRUNE_HIGH_DEG_EDGE_SET   1

Specifies whether the NClosedPrimeMinSearcher census generation code should prune on high-degree edges.

It is well known that a closed prime minimal P^2-irreducible triangulation formed from at least three tetrahedra can never have an edge of degree one or two. Combining this with the fact that such a triangulation must always have one vertex, a simple Euler characteristic calculation shows that there must be precisely n+1 edges, where n is the number of tetrahedra.

A little arithmetic then shows that, for any k edges, the sum of their edge degrees can be no more than 3(n+k-1); otherwise one of the remaining edges will be forced to have degree one or two. This observation is the basis behind the high-degree edge pruning that this option controls.

To enable pruning on high-degree edges, set this macro to 1 (the default for Regina's main source distribution); to disable it, set it to 0.


Copyright © 1999-2014, 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@debian.org).