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

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

#include <manifold/nsfs.h>

Public Member Functions

 NSFSFibre ()
 Creates a new uninitialised exceptional fibre. More...
 
 NSFSFibre (long newAlpha, long newBeta)
 Creates a new exceptional fibre with the given parameters. More...
 
 NSFSFibre (const NSFSFibre &cloneMe)
 Creates a new exceptional fibre that is a clone of the given fibre. More...
 
void operator= (const NSFSFibre &cloneMe)
 Makes this exceptional fibre a clone of the given fibre. More...
 
bool operator== (const NSFSFibre &compare) const
 Determines if this and the given exceptional fibre are identical. More...
 
bool operator< (const NSFSFibre &compare) const
 Determines if this exceptional fibre is smaller than the given fibre. More...
 

Public Attributes

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

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 NSFSpace::insertFibre().

Warning
In Regina 4.2.1 and earlier, this class was named NExceptionalFibre. The new NSFSFibre 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 NSFSFibre class (i.e., it may require more than just substituting class names).
Test:
Included in the test suite.

Constructor & Destructor Documentation

regina::NSFSFibre::NSFSFibre ( )
inline

Creates a new uninitialised exceptional fibre.

regina::NSFSFibre::NSFSFibre ( long  newAlpha,
long  newBeta 
)
inline

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.
regina::NSFSFibre::NSFSFibre ( const NSFSFibre cloneMe)
inline

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

Parameters
cloneMethe exceptional fibre to clone.

Member Function Documentation

bool regina::NSFSFibre::operator< ( const NSFSFibre compare) const
inline

Determines if this exceptional fibre is smaller than the given fibre.

Fibres are sorted by alpha and then by beta.

Parameters
comparethe fibre with which this will be compared.
Returns
true if and only if this is smaller than the given fibre.
void regina::NSFSFibre::operator= ( const NSFSFibre cloneMe)
inline

Makes this exceptional fibre a clone of the given fibre.

Parameters
cloneMethe exceptional fibre to clone.
bool regina::NSFSFibre::operator== ( const NSFSFibre compare) const
inline

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.

Parameters
comparethe fibre with which this will be compared.
Returns
true if and only if this and the given fibre are identical.

Member Data Documentation

long regina::NSFSFibre::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.

long regina::NSFSFibre::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:

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