regina::Isomorphism< dim > Class Template Reference
Triangulations | Generic triangulations

Represents a combinatorial isomorphism from one dim-manifold triangulation into another. More...

`#include <triangulation/generic.h>`

Inheritance diagram for regina::Isomorphism< dim >:

## Public Member Functions

| Isomorphism (unsigned nSimplices)
| Creates a new isomorphism with no initialisation. More...
| Isomorphism (const Isomorphism &copy)
| Creates a copy of the given isomorphism. More...
unsigned | size () const
| Returns the number of simplices in the source triangulation associated with this isomorphism. More...
int & | simpImage (unsigned sourceSimp)
| Determines the image of the given source simplex under this isomorphism. More...
int | simpImage (unsigned sourceSimp) const
| Determines the image of the given source simplex under this isomorphism. More...
Perm< dim+1 > & | facetPerm (unsigned sourceSimp)
| Returns a read-write reference to the permutation that is applied to the (dim + 1) facets of the given source simplex under this isomorphism. More...
Perm< dim+1 > | facetPerm (unsigned sourceSimp) const
| Determines the permutation that is applied to the (dim + 1) facets of the given source simplex under this isomorphism. More...
FacetSpec< dim > | operator[] (const FacetSpec< dim > &source) const
| Determines the image of the given source simplex facet under this isomorphism. More...
bool | isIdentity () const
| Determines whether or not this is an identity isomorphism. More...
Triangulation< dim > * | apply (const Triangulation< dim > *original) const
| Applies this isomorphism to the given triangulation, and returns the result as a new triangulation. More...
void | applyInPlace (Triangulation< dim > *tri) const
| Applies this isomorphism to the given triangulation, modifying the given triangulation directly. More...
void | writeTextShort (std::ostream &out) const
| Writes a short text representation of this object to the given output stream. More...
void | writeTextLong (std::ostream &out) const
| Writes a detailed text representation of this object to the given output stream. More...
std::string | str () const
| Returns a short text representation of this object. More...
std::string | utf8 () const
| Returns a short text representation of this object using unicode characters. More...
std::string | detail () const
| Returns a detailed text representation of this object. More...

## Static Public Member Functions

static Isomorphism< dim > * | identity (unsigned nSimplices)
| Returns the identity isomorphism for the given number of simplices. More...
static Isomorphism< dim > * | random (unsigned nSimplices)
| Returns a random isomorphism for the given number of simplices. More...

## Protected Attributes

unsigned | nSimplices_
| The number of simplices in the source triangulation. More...
int * | simpImage_
| Stores the simplex of the destination triangulation that each simplex of the source triangulation maps to. More...
Perm< dim+1 > * | facetPerm_
| The permutation applied to the facets of each source simplex. More...

## Detailed Description

### template<int dim>
class regina::Isomorphism< dim >

Represents a combinatorial isomorphism from one dim-manifold triangulation into another.

In essence, a combinatorial isomorphism from triangulation T to triangulation U is a one-to-one map from the simplices of T to the simplices of U that allows relabelling of both the simplices and their facets (or equivalently, their vertices), and that preserves gluings across adjacent simplices.

More precisely: An isomorphism consists of (i) a one-to-one map f from the simplices of T to the simplices of U, and (ii) for each simplex S of T, a permutation fS of the facets (0,...,dim) of S, for which the following condition holds:

- If facet k of simplex S and facet k' of simplex S' are identified in T, then facet fS(k) of f(S) and facet fS'(k') of f(S') are identified in U. Moreover, their gluing is consistent with the facet/vertex permutations; that is, there is a commutative square involving the gluing maps in T and U and the permutations fS and fS'.

Isomorphisms can be boundary complete or boundary incomplete. A boundary complete isomorphism satisfies the additional condition:

- If facet x is a boundary facet of T then facet f(x) is a boundary facet of U.

A boundary complete isomorphism thus indicates that a copy of triangulation T is present as an entire component (or components) of U, whereas a boundary incomplete isomorphism represents an embedding of a copy of triangulation T as a subcomplex of some possibly larger component (or components) of U.

Note that for all types of isomorphism, triangulation U is allowed to contain more simplices than triangulation T.

Python:\n Python does not support templates. Instead
  this class can be used by appending the dimension as a suffix (e.g., Isomorphism2 and Isomorphism3 for dimensions 2 and 3).

Template Parameters

  dim | The dimension of the underlying triangulation. This must be between 2 and 15 inclusive.

## Member Function Documentation

## detail()

std::string regina::Output< IsomorphismBase< dim > , false >::detail | ( |  | ) | const

inherited

Returns a detailed text representation of this object.

This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.

Returns
  a detailed text representation of this object.

## str()

std::string regina::Output< IsomorphismBase< dim > , false >::str | ( |  | ) | const

inherited

Returns a short text representation of this object.

This text should be human-readable, should fit on a single line, and should not end with a newline. Where possible, it should use plain ASCII characters.

Python:\n In addition to str(), this is also used as the
  Python "stringification" function `__str__()`.

Returns
  a short text representation of this object.

## utf8()

std::string regina::Output< IsomorphismBase< dim > , false >::utf8 | ( |  | ) | const

inherited

Returns a short text representation of this object using unicode characters.

Like str(), this text should be human-readable, should fit on a single line, and should not end with a newline. In addition, it may use unicode characters to make the output more pleasant to read. This string will be encoded in UTF-8.

Returns
  a short text representation of this object.

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

- triangulation/forward.h
- triangulation/generic/isomorphism.h

Copyright © 1999-2016, 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@maths.uq.edu.au).