Regina Calculation Engine
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
regina::detail::IsomorphismBase< dim > Class Template Reference

Provides core functionality for combinatorial isomorphisms between dim-manifold triangulations. More...

#include <triangulation/detail/isomorphism.h>

Inheritance diagram for regina::detail::IsomorphismBase< dim >:
regina::Output< IsomorphismBase< dim > > regina::alias::IsomorphismImage< IsomorphismBase< dim >, dim > regina::Isomorphism< 3 > regina::Isomorphism< dim >

Public Member Functions

 IsomorphismBase (unsigned nSimplices)
 Creates a new isomorphism with no initialisation. More...
 
 IsomorphismBase (const IsomorphismBase< dim > &src)
 Creates a new copy of the given isomorphism. More...
 
 IsomorphismBase (IsomorphismBase< dim > &&src) noexcept
 Moves the given isomorphism into this new isomorphism. More...
 
 ~IsomorphismBase ()
 Destroys this isomorphism. More...
 
IsomorphismBaseoperator= (const IsomorphismBase &src)
 Copies the given isomorphism into this isomorphism. More...
 
IsomorphismBaseoperator= (IsomorphismBase &&src) noexcept
 Moves the given isomorphism into this 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, bool even=false)
 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::detail::IsomorphismBase< dim >

Provides core functionality for combinatorial isomorphisms between dim-manifold triangulations.

Such an isomorphism is represented by the class Isomorphism<dim>, which uses this as a base class. End users should not need to refer to IsomorphismBase directly.

See the Isomorphism class notes for further information.

Python
This base class is not present, but the "end user" class Isomorphism<dim> is.
Template Parameters
dimthe dimension of the triangulations that this isomorphism class works with. 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
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 file:

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