regina::NSigPartialIsomorphism Class Reference
Splitting Surfaces

Represents a partial isomorphism between two splitting surface signatures. More...

`#include <split/nsigisomorphism.h>`

## Public Member Functions

| NSigPartialIsomorphism (int newDir)
| Creates a new partial isomorphism that maps no cycles or symbols. More...
| NSigPartialIsomorphism (const NSigPartialIsomorphism &iso)
| Creates a new partial isomorphism that is a clone of the given partial isomorphism. More...
| ~NSigPartialIsomorphism ()
| Destroys this partial isomorphism. More...
void | makeCanonical (const NSignature &sig, unsigned fromCycleGroup=0)
| Rearranges the cycle images so that this isomorphism when applied to the given signature produces a new signature that is in canonical form. More...
int | compareWith (const NSignature &sig, const NSigPartialIsomorphism *other, unsigned fromCycleGroup=0) const
| Lexicographically compares the results of applying this and the given isomorphism to the given signature. More...

## Friends

struct | NSigPartialIsomorphism::ShorterCycle
class | regina::NSigCensus

## Detailed Description

Represents a partial isomorphism between two splitting surface signatures.

See class NSignature for details on splitting surface signatures.

The two signatures related by this partial isomorphism must have the same cycle structure, i.e., the same number of cycle groups and the same cycle length and number of cycles within each cycle group.

The partial isomorphism maps symbols to symbols and cycles to cycles, with the option of rotating some cycles and/or reversing all cycles in the process. Cycles within the kth cycle group of the source signature must map to cycles within the kth cycle group of the destination signature.

A partial isomorphism is only required to map the cycles and symbols found in the first g cycle groups of the source isomorphism (for some g). If only a subset of symbols are mapped, that subset must be symbols 0,1,...,k for some k.

Python:
  Not present.

## Constructor & Destructor Documentation

regina::NSigPartialIsomorphism::NSigPartialIsomorphism | ( | int | newDir | ) |

inline

Creates a new partial isomorphism that maps no cycles or symbols.

This empty isomorphism is designed to be extended at some later point.

Parameters

  newDir | positive if this isomorphism specifies that all cycles are reversed, or negative if this isomorphism specifies that all cycles keep their original direction.

regina::NSigPartialIsomorphism::NSigPartialIsomorphism | ( | const NSigPartialIsomorphism & | iso | ) |

Creates a new partial isomorphism that is a clone of the given partial isomorphism.

Parameters

  iso | the partial isomorphism to clone.

regina::NSigPartialIsomorphism::~NSigPartialIsomorphism | ( |  | ) |

inline

Destroys this partial isomorphism.

## Member Function Documentation

int regina::NSigPartialIsomorphism::compareWith | ( | const NSignature & | sig,
|  | const NSigPartialIsomorphism * | other,
|  | unsigned | fromCycleGroup = `0`
| ) |  | const

Lexicographically compares the results of applying this and the given isomorphism to the given signature.

Comparisons are done on a cycle-by-cycle basis; comparisons within a cycle are done as described by NSignature::cycleCmp(). Comparison will not proceed beyond the cycles mapped by this partial isomorphism.

Precondition
  the given partial isomorphism maps at least as many cycles and symbols as this partial isomorphism.

Parameters

  sig | the signature to which both this and the given isomorphism will be applied.
  other | the isomorphism to compare with this isomorphism.
  fromCycleGroup | the first cycle group whose images should be examined. If it is already known that the cycle images for the first k cycle groups are identical under both isomorphisms, k should be passed in this parameter. This parameter should not exceed the number of cycle groups whose cycles are mapped by this partial isomorphism.

Returns
  -1, 1 or 0 if the image of the given signature under this isomorphism is lexicographically less than, greater than or equal to its image under the given isomorphism respectively.

void regina::NSigPartialIsomorphism::makeCanonical | ( | const NSignature & | sig,
|  | unsigned | fromCycleGroup = `0`
| ) |  |

Rearranges the cycle images so that this isomorphism when applied to the given signature produces a new signature that is in canonical form.

The result of this routine is dependent upon the symbol map defined by this isomorphism (this symbol map will not be changed).

Parameters

  sig | the signature to which this isomorphism will be applied.
  fromCycleGroup | the first cycle group whose images may be rearranged. If it is already known that the cycle images for the first k cycle groups are correct, k should be passed in this parameter. This parameter should not exceed the number of cycle groups whose cycles are mapped by this partial isomorphism.

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

- split/nsigisomorphism.h

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