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

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

#include <algebra/ngrouppresentation.h>

Public Member Functions

 NGroupExpressionTerm ()
 Creates a new uninitialised term. More...
 
 NGroupExpressionTerm (unsigned long newGen, long newExp)
 Creates a new term initialised to the given value. More...
 
 NGroupExpressionTerm (const NGroupExpressionTerm &cloneMe)
 Creates a new term initialised to the given value. More...
 
NGroupExpressionTermoperator= (const NGroupExpressionTerm &cloneMe)
 Makes this term identical to the given term. More...
 
bool operator== (const NGroupExpressionTerm &other) const
 Determines whether this and the given term contain identical data. More...
 
bool operator< (const NGroupExpressionTerm &other) const
 Imposes an ordering on terms. More...
 
NGroupExpressionTerm inverse () const
 Returns the inverse of this term. More...
 
bool operator+= (const NGroupExpressionTerm &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.

Constructor & Destructor Documentation

regina::NGroupExpressionTerm::NGroupExpressionTerm ( )
inline

Creates a new uninitialised term.

regina::NGroupExpressionTerm::NGroupExpressionTerm ( unsigned long  newGen,
long  newExp 
)
inline

Creates a new term initialised to the given value.

Parameters
newGenthe number that identifies the generator in the new term.
newExpthe exponent to which this generator is raised.
regina::NGroupExpressionTerm::NGroupExpressionTerm ( const NGroupExpressionTerm cloneMe)
inline

Creates a new term initialised to the given value.

Parameters
cloneMea term whose data will be copied to the new term.

Member Function Documentation

NGroupExpressionTerm regina::NGroupExpressionTerm::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.
bool regina::NGroupExpressionTerm::operator+= ( const NGroupExpressionTerm 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.
bool regina::NGroupExpressionTerm::operator< ( const NGroupExpressionTerm 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.
NGroupExpressionTerm & regina::NGroupExpressionTerm::operator= ( const NGroupExpressionTerm cloneMe)
inline

Makes this term identical to the given term.

Parameters
cloneMethe term whose data will be copied to this term.
Returns
a reference to this term.
bool regina::NGroupExpressionTerm::operator== ( const NGroupExpressionTerm 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

long regina::NGroupExpressionTerm::exponent

The exponent to which the generator is raised.

unsigned long regina::NGroupExpressionTerm::generator

The number that identifies the generator in this term.


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

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