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