Regina 7.4 Calculation Engine
regina::SFSFibre Struct Reference

Represents an exceptional (alpha, beta) fibre in a Seifert fibred space. More...

#include <manifold/sfs.h>

Public Member Functions

constexpr SFSFibre ()=default
 Creates a new uninitialised exceptional fibre.
 
constexpr SFSFibre (long newAlpha, long newBeta)
 Creates a new exceptional fibre with the given parameters.
 
constexpr SFSFibre (const SFSFibre &)=default
 Creates a new exceptional fibre that is a clone of the given fibre.
 
SFSFibreoperator= (const SFSFibre &)=default
 Makes this exceptional fibre a clone of the given fibre.
 
constexpr bool operator== (const SFSFibre &) const =default
 Determines if this and the given exceptional fibre are identical.
 
constexpr std::strong_ordering operator<=> (const SFSFibre &) const =default
 Compares two exceptional fibres.
 

Public Attributes

long alpha
 The first parameter of this (alpha, beta) fibre.
 
long beta
 The second parameter of this (alpha, beta) fibre.
 

Detailed Description

Represents an exceptional (alpha, beta) fibre in a Seifert fibred space.

The first parameter alpha must be strictly positive, and the two parameters alpha and beta must be coprime.

Note that we allow regular fibres with alpha = 1, and we do not impose range limits on beta (thus beta may be negative, or it may be larger than alpha). This is to allow more flexibility in routines such as SFSpace::insertFibre().

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.

Warning
In Regina 4.2.1 and earlier, this class was named NExceptionalFibre. The new SFSFibre class was introduced with Regina 4.3, and has changed its behaviour (in particular, the natural ordering of fibres has changed). Code that was written to work with the old NExceptionalFibre class should be looked at closely before being adapted to the new SFSFibre class (i.e., it may require more than just substituting class names).

Constructor & Destructor Documentation

◆ SFSFibre() [1/3]

regina::SFSFibre::SFSFibre ( )
constexprdefault

Creates a new uninitialised exceptional fibre.

◆ SFSFibre() [2/3]

regina::SFSFibre::SFSFibre ( long newAlpha,
long newBeta )
inlineconstexpr

Creates a new exceptional fibre with the given parameters.

Parameters
newAlphathe first parameter (the index) of this exceptional fibre; this must be strictly positive.
newBetathe second parameter of this exceptional fibre; this must have no common factors with the first parameter newAlpha.

◆ SFSFibre() [3/3]

regina::SFSFibre::SFSFibre ( const SFSFibre & )
constexprdefault

Creates a new exceptional fibre that is a clone of the given fibre.

Member Function Documentation

◆ operator<=>()

std::strong_ordering regina::SFSFibre::operator<=> ( const SFSFibre & ) const
constexprdefault

Compares two exceptional fibres.

Fibres are ordered first by alpha and then by beta.

This generates all of the usual comparison operators, including <, <=, >, and >=.

Python
This spaceship operator x <=> y is not available, but the other comparison operators that it generates are available.
Returns
The result of the comparison between this and the given fibre.

◆ operator=()

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

Makes this exceptional fibre a clone of the given fibre.

◆ operator==()

bool regina::SFSFibre::operator== ( const SFSFibre & ) const
constexprdefault

Determines if this and the given exceptional fibre are identical.

This requires both fibres to have the same values for alpha and the same values for beta.

Returns
true if and only if this and the given fibre are identical.

Member Data Documentation

◆ alpha

long regina::SFSFibre::alpha

The first parameter of this (alpha, beta) fibre.

Note that this is the index of the exceptional fibre. This parameter must always be strictly positive.

◆ beta

long regina::SFSFibre::beta

The second parameter of this (alpha, beta) fibre.

This parameter must have no common factors with alpha.


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