Regina 7.3 Calculation Engine
Classes | Functions
Algebraic Structures

Various algebraic structures. More...

Classes

class  regina::AbelianGroup
 Represents a finitely generated abelian group. More...
 
struct  regina::GroupExpressionTerm
 Represents a power of a generator in a group presentation. More...
 
class  regina::GroupExpression
 Represents an expression involving generators from a group presentation or a free group. More...
 
class  regina::GroupPresentation
 Represents a finite presentation of a group. More...
 
class  regina::HomGroupPresentation
 Represents a homomorphism between groups which are described via finite presentations. More...
 
class  regina::IntersectionForm
 Represents a symmetric bilinear integral form, which for Regina is typically the intersection form of a 4-manifold. More...
 
class  regina::MarkedAbelianGroup
 Represents a finitely generated abelian group given by a chain complex. More...
 
class  regina::HomMarkedAbelianGroup
 Represents a homomorphism of finitely generated abelian groups. More...
 

Functions

void regina::swap (AbelianGroup &lhs, AbelianGroup &rhs) noexcept
 Swaps the contents of the two given abelian groups. More...
 
std::ostream & regina::operator<< (std::ostream &out, const GroupExpressionTerm &term)
 Writes the given term to the given output stream. More...
 
void regina::swap (GroupExpression &lhs, GroupExpression &rhs) noexcept
 Swaps the contents of the two given expressions. More...
 
void regina::swap (GroupPresentation &lhs, GroupPresentation &rhs) noexcept
 Swaps the contents of the two given group presentations. More...
 
void regina::swap (HomGroupPresentation &lhs, HomGroupPresentation &rhs) noexcept
 Swaps the contents of the two given homomorphisms. More...
 
void regina::swap (IntersectionForm &lhs, IntersectionForm &rhs) noexcept
 Swaps the contents of the two given intersection forms. More...
 
void regina::swap (MarkedAbelianGroup &lhs, MarkedAbelianGroup &rhs) noexcept
 Swaps the contents of the two given abelian groups. More...
 
void regina::swap (HomMarkedAbelianGroup &lhs, HomMarkedAbelianGroup &rhs) noexcept
 Swaps the contents of the two given homomorphisms. More...
 

Detailed Description

Various algebraic structures.

Function Documentation

◆ operator<<()

std::ostream & regina::operator<< ( std::ostream &  out,
const GroupExpressionTerm term 
)

Writes the given term to the given output stream.

The term will be written in the format g3^-7, where in this example the term represents generator number 3 raised to the -7th power.

Note that generators are indexed start from 0 (so g3 is in fact the fourth generator in the group presentation, not the third).

If the term has exponent 0 or 1, the output format will be appropriately simplified.

Parameters
outthe output stream to which to write.
termthe term to write.
Returns
a reference to the given output stream.

◆ swap() [1/7]

void regina::swap ( AbelianGroup lhs,
AbelianGroup rhs 
)
inlinenoexcept

Swaps the contents of the two given abelian groups.

This global routine simply calls AbelianGroup::swap(); it is provided so that AbelianGroup meets the C++ Swappable requirements.

Parameters
lhsthe group whose contents should be swapped with rhs.
rhsthe group whose contents should be swapped with lhs.

◆ swap() [2/7]

void regina::swap ( GroupExpression lhs,
GroupExpression rhs 
)
inlinenoexcept

Swaps the contents of the two given expressions.

This global routine simply calls GroupExpression::swap(); it is provided so that GroupExpression meets the C++ Swappable requirements.

Parameters
lhsthe expression whose contents should be swapped with rhs.
rhsthe expression whose contents should be swapped with lhs.

◆ swap() [3/7]

void regina::swap ( GroupPresentation lhs,
GroupPresentation rhs 
)
inlinenoexcept

Swaps the contents of the two given group presentations.

This global routine simply calls GroupPresentation::swap(); it is provided so that GroupPresentation meets the C++ Swappable requirements.

Parameters
lhsthe presentation whose contents should be swapped with rhs.
rhsthe presentation whose contents should be swapped with lhs.

◆ swap() [4/7]

void regina::swap ( HomGroupPresentation lhs,
HomGroupPresentation rhs 
)
inlinenoexcept

Swaps the contents of the two given homomorphisms.

This global routine simply calls HomGroupPresentation::swap(); it is provided so that HomGroupPresentation meets the C++ Swappable requirements.

Parameters
lhsthe homomorphism whose contents should be swapped with rhs.
rhsthe homomorphism whose contents should be swapped with lhs.

◆ swap() [5/7]

void regina::swap ( HomMarkedAbelianGroup lhs,
HomMarkedAbelianGroup rhs 
)
inlinenoexcept

Swaps the contents of the two given homomorphisms.

This global routine simply calls HomMarkedAbelianGroup::swap(); it is provided so that HomMarkedAbelianGroup meets the C++ Swappable requirements.

Parameters
lhsthe homomorphism whose contents should be swapped with rhs.
rhsthe homomorphism whose contents should be swapped with lhs.

◆ swap() [6/7]

void regina::swap ( IntersectionForm lhs,
IntersectionForm rhs 
)
inlinenoexcept

Swaps the contents of the two given intersection forms.

This global routine simply calls IntersectionForm::swap(); it is provided so that IntersectionForm meets the C++ Swappable requirements.

Parameters
lhsthe intersection form whose contents should be swapped with rhs.
rhsthe intersection form whose contents should be swapped with lhs.

◆ swap() [7/7]

void regina::swap ( MarkedAbelianGroup lhs,
MarkedAbelianGroup rhs 
)
inlinenoexcept

Swaps the contents of the two given abelian groups.

This global routine simply calls MarkedAbelianGroup::swap(); it is provided so that MarkedAbelianGroup meets the C++ Swappable requirements.

Parameters
lhsthe group whose contents should be swapped with rhs.
rhsthe group whose contents should be swapped with lhs.

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