Splitting Surfaces

Splitting surfaces in triangulations. More...

## Classes

class | regina::NSigCensus
| A utility class used by formSigCensus(). More...
class | regina::NSigPartialIsomorphism
| Represents a partial isomorphism between two splitting surface signatures. More...
class | regina::NSignature
| Represents a signature of a splitting surface in a closed 3-manifold triangulation. More...

## Typedefs

typedef std::list < NSigPartialIsomorphism * > | regina::NSigIsoList
| A list of partial isomorphisms on splitting surface signatures. More...
typedef void(* | regina::UseSignature )(const NSignature &, const NSigIsoList &, void *)
| A routine used to do arbitrary processing upon a splitting surface signature and its automorphisms. More...

## Functions

REGINA_API unsigned long | regina::formSigCensus (unsigned order, UseSignature use, void *useArgs=0)
| Forms a census of all splitting surface signatures of the given order. More...

## Detailed Description

Splitting surfaces in triangulations.

## Typedef Documentation

typedef std::list<NSigPartialIsomorphism*> regina::NSigIsoList

A list of partial isomorphisms on splitting surface signatures.

typedef void(* regina::UseSignature)(const NSignature &, const NSigIsoList &, void *)

A routine used to do arbitrary processing upon a splitting surface signature and its automorphisms.

Such routines are used to process signatures found when running a signature census.

The first parameter passed should be a splitting surface signature. The second parameter should be a list of all automorphisms of this signature. The third parameter may contain arbitrary data as passed to formSigCensus().

## Function Documentation

REGINA_API unsigned long regina::formSigCensus | ( | unsigned | order,
|  | UseSignature | use,
|  | void * | useArgs = `0`
| ) |  |

Forms a census of all splitting surface signatures of the given order.

The order of a signature is the number of quads in the corresponding splitting surface.

Each signature will be produced precisely once up to equivalence. Signatures are considered equivalent if they are related by some combination of:

- relabelling symbols;
- rotating an individual cycle;
- inverting an individual cycle (i.e., reversing the cycle and changing the case of each symbol in the cycle);
- reversing all cycles without changing the case of any symbols.

Each signature produced will have its cycles ordered by decreasing length. Each cycle will have at least half of its symbols lower-case.

For each signature that is generated, routine use (as passed to this function) will be called with that signature and its automorphisms as arguments.

Warning
  Currently upper-case symbols in signatures are not supported by this routine; only signatures whose symbols are all lower-case will be produced.

Todo:
  Feature: Add support for symbols of differing case.

Python:
  Not present.

Parameters

  order | the order of signatures to generate.
  use | the function to call upon each signature that is found. The first parameter passed to this function will be a splitting surface signature. The second parameter will be a list of all its automorphisms. The third parameter will be parameter useArgs as was passed to this routine.
  useArgs | the pointer to pass as the final parameter for the function use which will be called upon each signature found.

Returns
  the total number of non-equivalent signatures that were found.

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