Regina 7.3 Calculation Engine
Public Member Functions | Public Attributes | List of all members
regina::GroupExpressionTerm Struct Reference

Represents a power of a generator in a group presentation. More...

#include <algebra/grouppresentation.h>

Public Member Functions

 GroupExpressionTerm ()=default
 Creates a new uninitialised term. More...
 
 GroupExpressionTerm (unsigned long gen, long exp)
 Creates a new term initialised to the given value. More...
 
 GroupExpressionTerm (const GroupExpressionTerm &)=default
 Creates a new term initialised to the given value. More...
 
GroupExpressionTermoperator= (const GroupExpressionTerm &)=default
 Makes this term identical to the given term. More...
 
bool operator== (const GroupExpressionTerm &other) const
 Determines whether this and the given term contain identical data. More...
 
bool operator!= (const GroupExpressionTerm &other) const
 Determines whether this and the given term do not contain identical data. More...
 
bool operator< (const GroupExpressionTerm &other) const
 Imposes an ordering on terms. More...
 
GroupExpressionTerm inverse () const
 Returns the inverse of this term. More...
 
bool operator+= (const GroupExpressionTerm &other)
 Attempts to merge this term with the given term. More...
 

Public Attributes

unsigned long generator
 The number that identifies the generator in this term. More...
 
long exponent
 The exponent to which the generator is raised. More...
 

Detailed Description

Represents a power of a generator in a group presentation.

These objects are small enough to pass by value and swap with std::swap(), with no need for any specialised move operations or swap functions.

Constructor & Destructor Documentation

◆ GroupExpressionTerm() [1/3]

regina::GroupExpressionTerm::GroupExpressionTerm ( )
default

Creates a new uninitialised term.

◆ GroupExpressionTerm() [2/3]

regina::GroupExpressionTerm::GroupExpressionTerm ( unsigned long  gen,
long  exp 
)
inline

Creates a new term initialised to the given value.

Parameters
genthe number that identifies the generator in the new term.
expthe exponent to which this generator is raised.

◆ GroupExpressionTerm() [3/3]

regina::GroupExpressionTerm::GroupExpressionTerm ( const GroupExpressionTerm )
default

Creates a new term initialised to the given value.

Member Function Documentation

◆ inverse()

GroupExpressionTerm regina::GroupExpressionTerm::inverse ( ) const
inline

Returns the inverse of this term.

The inverse has the same generator but a negated exponent.

Note that this term will remain unchanged.

Returns
the inverse of this term.

◆ operator!=()

bool regina::GroupExpressionTerm::operator!= ( const GroupExpressionTerm other) const
inline

Determines whether this and the given term do not contain identical data.

Parameters
otherthe term with which this term will be compared.
Returns
true if and only if this and the given term do not have both the same generator and exponent.

◆ operator+=()

bool regina::GroupExpressionTerm::operator+= ( const GroupExpressionTerm other)
inline

Attempts to merge this term with the given term.

If both terms have the same generator, the two exponents will be added and stored in this term. If the generators are different, this routine will do nothing.

Note that this term might be changed but the given term will remain unchanged.

Parameters
otherthe term to merge with this term.
Returns
true if the two terms were merged into this term, or false if the two terms have different generators.

◆ operator<()

bool regina::GroupExpressionTerm::operator< ( const GroupExpressionTerm other) const
inline

Imposes an ordering on terms.

Terms are ordered lexigraphically as (generator, exponent) pairs.

Parameters
otherthe term to compare with this.
Returns
true if and only if this term is lexicographically smaller than other.

◆ operator=()

GroupExpressionTerm & regina::GroupExpressionTerm::operator= ( const GroupExpressionTerm )
default

Makes this term identical to the given term.

Returns
a reference to this term.

◆ operator==()

bool regina::GroupExpressionTerm::operator== ( const GroupExpressionTerm other) const
inline

Determines whether this and the given term contain identical data.

Parameters
otherthe term with which this term will be compared.
Returns
true if and only if this and the given term have both the same generator and exponent.

Member Data Documentation

◆ exponent

long regina::GroupExpressionTerm::exponent

The exponent to which the generator is raised.

◆ generator

unsigned long regina::GroupExpressionTerm::generator

The number that identifies the generator in this term.


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

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