|
Regina Calculation Engine
|
Represents a finite presentation of a group. More...
#include <algebra/grouppresentation.h>
Public Member Functions | |
| GroupPresentation () | |
| Creates a new presentation with no generators and no relations. More... | |
| GroupPresentation (const GroupPresentation &cloneMe) | |
| Creates a clone of the given group presentation. More... | |
| GroupPresentation (unsigned long nGens, const std::vector< std::string > &rels) | |
| Constructor that allows you to directly pass an arbitrary number of relators in string format. More... | |
| ~GroupPresentation () | |
| Destroys the group presentation. More... | |
| GroupPresentation & | operator= (const GroupPresentation &cloneMe) |
| Assignment operator. More... | |
| unsigned long | addGenerator (unsigned long numToAdd=1) |
| Adds one or more generators to the group presentation. More... | |
| void | addRelation (GroupExpression *rel) |
| Adds the given relation to the group presentation. More... | |
| unsigned long | countGenerators () const |
| Returns the number of generators in this group presentation. More... | |
| size_t | countRelations () const |
| Returns the number of relations in this group presentation. More... | |
| const GroupExpression & | relation (size_t index) const |
| Returns the relation at the given index in this group presentation. More... | |
| bool | isValid () const |
| Tests whether all of the relations for the group are indeed words in the generators. More... | |
| bool | intelligentSimplify () |
| Attempts to simplify the group presentation as intelligently as possible without further input. More... | |
| std::unique_ptr< HomGroupPresentation > | intelligentSimplifyDetail () |
| Attempts to simplify the group presentation as intelligently as possible without further input. More... | |
| bool | smallCancellation () |
| Attempts to simplify the group presentation using only small cancellation theory. More... | |
| std::unique_ptr< HomGroupPresentation > | smallCancellationDetail () |
| Attempts to simplify the group presentation using small cancellation theory. More... | |
| bool | simplifyWord (GroupExpression &input) const |
| Uses small cancellation theory to reduce the input word, using the current presentation of the group. More... | |
| void | proliferateRelators (unsigned long depth=1) |
| A routine to help escape local wells when simplifying presentations, which may be useful when small cancellation theory can't find the simplest relators. More... | |
| std::string | recogniseGroup (bool moreUtf8=false) const |
| Attempts to recognise the group corresponding to this presentation. More... | |
| void | writeXMLData (std::ostream &out) const |
| Writes a chunk of XML containing this group presentation. More... | |
| size_t | relatorLength () const |
| The sum of the word lengths of the relators. More... | |
| std::unique_ptr< AbelianGroup > | abelianisation () const |
| Computes the abelianisation of this group. More... | |
| std::unique_ptr< MarkedAbelianGroup > | markedAbelianisation () const |
| Computes the abelianisation of this group. More... | |
| bool | identifyAbelian () const |
| Attempts to determine if the group is abelian. More... | |
| bool | nielsenTransposition (unsigned long i, unsigned long j) |
| Switches the generators in the presentation indexed by i and j respectively, and recomputes the appropriate presentation. More... | |
| bool | nielsenInvert (unsigned long i) |
| Replaces a generator in a presentation by its inverse, and recomputes the appropriate presentation. More... | |
| bool | nielsenCombine (unsigned long i, unsigned long j, long k, bool rightMult=true) |
Replaces a generator gi by either (gi)(gj)^k or (gj)^k(gi) in the presentation. More... | |
| bool | intelligentNielsen () |
| Looks for Nielsen moves that will simplify the presentation. More... | |
| std::unique_ptr< HomGroupPresentation > | intelligentNielsenDetail () |
| Looks for Nielsen moves that will simplify the presentation. More... | |
| bool | homologicalAlignment () |
| Rewrites the presentation so that generators of the group map to generators of the abelianisation, with any left-over generators mapping to zero (if possible). More... | |
| std::unique_ptr< HomGroupPresentation > | homologicalAlignmentDetail () |
| Rewrites the presentation so that generators of the group map to generators of the abelianisation, with any left-over generators mapping to zero (if possible). More... | |
| bool | prettyRewriting () |
| An entirely cosmetic re-writing of the presentation, which is fast and superficial. More... | |
| std::unique_ptr< HomGroupPresentation > | prettyRewritingDetail () |
| An entirely cosmetic re-writing of the presentation, which is fast and superficial. More... | |
| bool | identifySimplyIsomorphicTo (const GroupPresentation &other) const |
| Attempts to prove that this and the given group presentation are simply isomorphic. More... | |
| std::string | toTeX () const |
| Returns a TeX representation of this group presentation. More... | |
| void | writeTeX (std::ostream &out) const |
| Writes a TeX represesentation of this group presentation to the given output stream. More... | |
| std::string | compact () const |
| Returns a compact one-line representation of this group presentation, including details of all generators and relations. More... | |
| void | writeTextCompact (std::ostream &out) const |
| Writes a compact represesentation of this group to the given output stream. 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... | |
| FinitelyPresentedGroup | sage () const |
| A Sage-only routine that returns a copy of this group presentation in a format native to Sage. 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... | |
Protected Attributes | |
| unsigned long | nGenerators |
| The number of generators. More... | |
| std::vector< GroupExpression * > | relations |
| The relations between the generators. More... | |
Represents a finite presentation of a group.
A presentation consists of a number of generators and a set of relations between these generators that together define the group.
If there are g generators, they will be numbered 0, 1, ..., g-1.
|
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.
|
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.
str().
|
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.