regina::NHomGroupPresentation Class Reference
Algebraic Structures

Represents a homomorphism between groups which are described via finite presentations. More...

`#include <algebra/nhomgrouppresentation.h>`

Inheritance diagram for regina::NHomGroupPresentation:

## Public Member Functions

| NHomGroupPresentation (const NGroupPresentation &domain, const NGroupPresentation &range, const std::vector< NGroupExpression > &map)
| Creates a new homomorphism from the given data. More...
| NHomGroupPresentation (const NGroupPresentation &groupForIdentity)
| Creates a new identity homomorphism for the given group. More...
| NHomGroupPresentation (const NHomGroupPresentation &cloneMe)
| Creates a clone of the given group presentation. More...
| ~NHomGroupPresentation ()
| Destroys the group homomorphism. More...
const NGroupPresentation & | getDomain () const
| The domain of the map. More...
const NGroupPresentation & | getRange () const
| The range of the map. More...
NGroupExpression | evaluate (const NGroupExpression &arg) const
| Evaluate the homomorphism at an element. More...
NGroupExpression | evaluate (unsigned long i) const
| Evaluate the homomorphism at a generator of the domain. More...
bool | intelligentSimplify ()
| Simultaneously simplifies: More...
void | writeTextShort (std::ostream &out) const
| Writes this object in short text format to the given output stream. More...
void | writeTextLong (std::ostream &out) const
| Writes this object in long text format to the given output stream. More...
Public Member Functions inherited from regina::ShareableObject
| ShareableObject ()
| Default constructor that does nothing. More...
virtual | ~ShareableObject ()
| Default destructor that does nothing. More...
std::string | str () const
| Returns the output from writeTextShort() as a string. More...
std::string | toString () const
| A deprecated alias for str(), which returns the output from writeTextShort() as a string. More...
std::string | detail () const
| Returns the output from writeTextLong() as a string. More...
std::string | toStringLong () const
| A deprecated alias for detail(), which returns the output from writeTextLong() as a string. More...

## Additional Inherited Members

Protected Member Functions inherited from regina::boost::noncopyable
| noncopyable ()
| A constructor which does nothing. More...
| ~noncopyable ()
| A destructor which does nothing. More...

## Detailed Description

Represents a homomorphism between groups which are described via finite presentations.

Test:
  Included in the test suite.

Todo:
  add routine to attempt to verify validity of homomorphism.

## Constructor & Destructor Documentation

regina::NHomGroupPresentation::NHomGroupPresentation | ( | const NGroupPresentation & | domain,
|  | const NGroupPresentation & | range,
|  | const std::vector< NGroupExpression > & | map
| ) |  |

inline

Creates a new homomorphism from the given data.

Parameters

  domain | the domain of the homomorphism.
  range | the range of the homomorphism.
  map | a vector of length g, where g is the number of generators of the domain, and where this homomorphism sends the ith generator of the domain to the element `map[i]` of the range.

Python:
  Not present.

regina::NHomGroupPresentation::NHomGroupPresentation | ( | const NGroupPresentation & | groupForIdentity | ) |

Creates a new identity homomorphism for the given group.

Parameters

  groupForIdentity | both the range and domain of the new identity homomorphism.

regina::NHomGroupPresentation::NHomGroupPresentation | ( | const NHomGroupPresentation & | cloneMe | ) |

inline

Creates a clone of the given group presentation.

Parameters

  cloneMe | the presentation to clone.

regina::NHomGroupPresentation::~NHomGroupPresentation | ( |  | ) |

inline

Destroys the group homomorphism.

## Member Function Documentation

NGroupExpression regina::NHomGroupPresentation::evaluate | ( | const NGroupExpression & | arg | ) | const

Evaluate the homomorphism at an element.

Parameters

  arg | an element of the domain.

Returns
  the image of this element in the range.

NGroupExpression regina::NHomGroupPresentation::evaluate | ( | unsigned long | i | ) | const

inline

Evaluate the homomorphism at a generator of the domain.

Parameters

  i | the index of a generator in the domain.

Returns
  the image of the ith generator in the range.

const NGroupPresentation & regina::NHomGroupPresentation::getDomain | ( |  | ) | const

inline

The domain of the map.

Returns
  a reference to the domain.

const NGroupPresentation & regina::NHomGroupPresentation::getRange | ( |  | ) | const

inline

The range of the map.

Returns
  a reference to the range.

bool regina::NHomGroupPresentation::intelligentSimplify | ( |  | ) |

Simultaneously simplifies:

- the presentation of the domain;
- the presentation of the range;
- the description of the map.

Uses Dehn's algorithm / "small cancellation theory".

Returns
  true if the presentations or map have changed.

void regina::NHomGroupPresentation::writeTextLong | ( | std::ostream & | out | ) | const

virtual

Writes this object in long text format to the given output stream.

The output should provide the user with all the information they could want. The output should be human-readable, should not contain extremely long lines (so users can read the output in a terminal), and should end with a final newline.

The default implementation of this routine merely calls writeTextShort() and adds a newline.

Python:
  The parameter out does not exist; standard output will be used.

Parameters

  out | the output stream to which to write.

Reimplemented from regina::ShareableObject.

void regina::NHomGroupPresentation::writeTextShort | ( | std::ostream & | out | ) | const

virtual

Writes this object in short text format to the given output stream.

The output should be human-readable, should fit on a single line, and should not end with a newline.

Python:
  The parameter out does not exist; standard output will be used.

Parameters

  out | the output stream to which to write.

Implements regina::ShareableObject.

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

- algebra/nhomgrouppresentation.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).