#include <nsigisomorphism.h>
Public Member Functions | |
NSigPartialIsomorphism (int newDir) | |
Creates a new partial isomorphism that maps no cycles or symbols. | |
NSigPartialIsomorphism (const NSigPartialIsomorphism &iso) | |
Creates a new partial isomorphism that is a clone of the given partial isomorphism. | |
~NSigPartialIsomorphism () | |
Destroys this partial isomorphism. | |
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. | |
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. | |
Friends | |
class | regina::NSigCensus |
A comparison function for use with the Standard Template Library. |
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.
|
Creates a new partial isomorphism that maps no cycles or symbols. This empty isomorphism is designed to be extended at some later point.
|
|
Creates a new partial isomorphism that is a clone of the given partial isomorphism.
|
|
Destroys this partial isomorphism.
|
|
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.
|
|
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).
|
|
A comparison function for use with the Standard Template Library. This function determines whether the image of one cycle is less than the image of another under the given fixed isomorphism when applied to the given fixed signature. Cycle comparison is done using NSignature::cycleCmp(). It is irrelevant which cycle is mapped to appear before the other in the sequence of cycles belonging to the image signature. |