Regina Calculation Engine
Public Member Functions | List of all members
regina::NHomGroupPresentation Class Reference

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

#include <algebra/nhomgrouppresentation.h>

Inheritance diagram for regina::NHomGroupPresentation:
regina::ShareableObject regina::boost::noncopyable

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 NGroupPresentationgetDomain () const
 The domain of the map. More...
 
const NGroupPresentationgetRange () 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
domainthe domain of the homomorphism.
rangethe range of the homomorphism.
mapa 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
groupForIdentityboth 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
cloneMethe 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
argan 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
ithe 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
outthe 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
outthe output stream to which to write.

Implements regina::ShareableObject.


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

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