Regina Calculation Engine
Classes | Typedefs | Enumerations | Enumerator | Functions | Variables
Standard 3-Manifolds

Standard 3-manifolds whose structures are well-understood. More...

Classes

class  regina::GraphLoop
 Represents a closed graph manifold formed by joining a single bounded Seifert fibred space to itself along a torus. More...
 
class  regina::GraphPair
 Represents a closed graph manifold formed by joining two bounded Seifert fibred spaces along a common torus. More...
 
class  regina::GraphTriple
 Represents a closed graph manifold formed by joining three bounded Seifert fibred spaces along their torus boundaries. More...
 
class  regina::Handlebody
 Represents an arbitrary handlebody. More...
 
class  regina::LensSpace
 Represents a general lens space. More...
 
class  regina::Manifold
 Represents a particular 3-manifold. More...
 
struct  regina::SFSFibre
 Represents an exceptional (alpha, beta) fibre in a Seifert fibred space. More...
 
class  regina::SFSpace
 Represents a general Seifert fibred space, which may be orientable or non-orientable. More...
 
class  regina::SFSAltSet
 Provides a variety of alternative representations of a single bounded Seifert fibred space. More...
 
class  regina::SimpleSurfaceBundle
 Represents a particularly simple closed surface bundle over the circle. More...
 
class  regina::SnapPeaCensusManifold
 Represents a 3-manifold from the SnapPea cusped census. More...
 
class  regina::TorusBundle
 Represents a torus bundle over the circle. More...
 

Typedefs

typedef GraphLoop regina::NGraphLoop
 Deprecated typedef for backward compatibility. More...
 
typedef GraphPair regina::NGraphPair
 Deprecated typedef for backward compatibility. More...
 
typedef GraphTriple regina::NGraphTriple
 Deprecated typedef for backward compatibility. More...
 
typedef Handlebody regina::NHandlebody
 Deprecated typedef for backward compatibility. More...
 
typedef LensSpace regina::NLensSpace
 Deprecated typedef for backward compatibility. More...
 
typedef Manifold regina::NManifold
 Deprecated typedef for backward compatibility. More...
 
typedef SFSFibre regina::NSFSFibre
 Deprecated typedef for backward compatibility. More...
 
typedef SFSpace regina::NSFSpace
 Deprecated typedef for backward compatibility. More...
 
typedef SFSAltSet regina::NSFSAltSet
 Deprecated typedef for backward compatibility. More...
 
typedef SimpleSurfaceBundle regina::NSimpleSurfaceBundle
 Deprecated typedef for backward compatibility. More...
 
typedef SnapPeaCensusManifold regina::NSnapPeaCensusManifold
 Deprecated typedef for backward compatibility. More...
 
typedef TorusBundle regina::NTorusBundle
 Deprecated typedef for backward compatibility. More...
 

Enumerations

enum  regina::SFSpace::classType {
  regina::SFSpace::o1 = 101, regina::SFSpace::o2 = 102, regina::SFSpace::n1 = 201, regina::SFSpace::n2 = 202,
  regina::SFSpace::n3 = 203, regina::SFSpace::n4 = 204, regina::SFSpace::bo1 = 301, regina::SFSpace::bo2 = 302,
  regina::SFSpace::bn1 = 401, regina::SFSpace::bn2 = 402, regina::SFSpace::bn3 = 403
}
 Lists the six classes o1, o2, n1, n2, n3, n4 for base orbifolds without boundaries, plus five classes bo1, b02, bn1, bn2, bn3 for base orbifolds with boundaries. More...
 

Functions

 regina::GraphLoop::GraphLoop (SFSpace *sfs, long mat00, long mat01, long mat10, long mat11)
 Creates a new graph manifold as a self-identified Seifert fibred space. More...
 
 regina::GraphLoop::GraphLoop (SFSpace *sfs, const Matrix2 &matchingReln)
 Creates a new graph manifold as a self-identified Seifert fibred space. More...
 
 regina::GraphLoop::GraphLoop (const GraphLoop &cloneMe)
 Creates a clone of the given graph manifold. More...
 
 regina::GraphLoop::~GraphLoop ()
 Destroys this structure along with the bounded Seifert fibred space and the matching matrix. More...
 
const SFSpaceregina::GraphLoop::sfs () const
 Returns a reference to the bounded Seifert fibred space that is joined to itself. More...
 
const Matrix2regina::GraphLoop::matchingReln () const
 Returns a reference to the 2-by-2 matrix describing how the two boundary tori of the Seifert fibred space are joined together. More...
 
bool regina::GraphLoop::operator< (const GraphLoop &compare) const
 Determines in a fairly ad-hoc fashion whether this representation of this space is "smaller" than the given representation of the given space. More...
 
GraphLoopregina::GraphLoop::operator= (const GraphLoop &cloneMe)
 Sets this to be a clone of the given graph manifold. More...
 
AbelianGroupregina::GraphLoop::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::GraphLoop::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::GraphLoop::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::GraphLoop::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
 regina::GraphPair::GraphPair (SFSpace *sfs0, SFSpace *sfs1, long mat00, long mat01, long mat10, long mat11)
 Creates a new graph manifold as a pair of joined Seifert fibred spaces. More...
 
 regina::GraphPair::GraphPair (SFSpace *sfs0, SFSpace *sfs1, const Matrix2 &matchingReln)
 Creates a new graph manifold as a pair of joined Seifert fibred spaces. More...
 
 regina::GraphPair::GraphPair (const GraphPair &cloneMe)
 Creates a clone of the given graph manifold. More...
 
 regina::GraphPair::~GraphPair ()
 Destroys this structure along with the component Seifert fibred spaces and the matching matrix. More...
 
const SFSpaceregina::GraphPair::sfs (unsigned which) const
 Returns a reference to one of the two bounded Seifert fibred spaces that are joined together. More...
 
const Matrix2regina::GraphPair::matchingReln () const
 Returns a reference to the 2-by-2 matrix describing how the two Seifert fibred spaces are joined together. More...
 
bool regina::GraphPair::operator< (const GraphPair &compare) const
 Determines in a fairly ad-hoc fashion whether this representation of this space is "smaller" than the given representation of the given space. More...
 
GraphPairregina::GraphPair::operator= (const GraphPair &cloneMe)
 Sets this to be a clone of the given graph manifold. More...
 
AbelianGroupregina::GraphPair::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::GraphPair::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::GraphPair::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::GraphPair::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
 regina::GraphTriple::GraphTriple (SFSpace *end0, SFSpace *centre, SFSpace *end1, const Matrix2 &matchingReln0, const Matrix2 &matchingReln1)
 Creates a new graph manifold from three bounded Seifert fibred spaces, as described in the class notes. More...
 
 regina::GraphTriple::GraphTriple (const GraphTriple &cloneMe)
 Creates a clone of the given graph manifold. More...
 
 regina::GraphTriple::~GraphTriple ()
 Destroys this structure along with the component Seifert fibred spaces and matching matrices. More...
 
const SFSpaceregina::GraphTriple::end (unsigned which) const
 Returns a reference to one of the two end spaces. More...
 
const SFSpaceregina::GraphTriple::centre () const
 Returns a reference to the central space. More...
 
const Matrix2regina::GraphTriple::matchingReln (unsigned which) const
 Returns a reference to the 2-by-2 matrix describing how the two requested bounded Seifert fibred spaces are joined together. More...
 
bool regina::GraphTriple::operator< (const GraphTriple &compare) const
 Determines in a fairly ad-hoc fashion whether this representation of this space is "smaller" than the given representation of the given space. More...
 
GraphTripleregina::GraphTriple::operator= (const GraphTriple &cloneMe)
 Sets this to be a clone of the given graph manifold. More...
 
AbelianGroupregina::GraphTriple::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::GraphTriple::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::GraphTriple::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::GraphTriple::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
 regina::Handlebody::Handlebody (unsigned long newHandles, bool newOrientable)
 Creates a new handlebody with the given parameters. More...
 
 regina::Handlebody::Handlebody (const Handlebody &cloneMe)=default
 Creates a clone of the given handlebody. More...
 
virtual regina::Handlebody::~Handlebody ()
 Destroys this handlebody. More...
 
unsigned long regina::Handlebody::handles () const
 Returns the number of handles of this handlebody. More...
 
bool regina::Handlebody::isOrientable () const
 Returns whether this handlebody is orientable. More...
 
bool regina::Handlebody::operator== (const Handlebody &compare) const
 Determines whether this and the given handlebody represent the same 3-manifold. More...
 
bool regina::Handlebody::operator!= (const Handlebody &compare) const
 Determines whether this and the given handlebody represent different 3-manifolds. More...
 
Handlebodyregina::Handlebody::operator= (const Handlebody &cloneMe)=default
 Sets this to be a clone of the given handlebody. More...
 
AbelianGroupregina::Handlebody::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::Handlebody::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::Handlebody::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::Handlebody::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
 regina::LensSpace::LensSpace (unsigned long newP, unsigned long newQ)
 Creates a new lens space with the given parameters. More...
 
 regina::LensSpace::LensSpace (const LensSpace &cloneMe)=default
 Creates a clone of the given lens space. More...
 
virtual regina::LensSpace::~LensSpace ()
 Destroys this lens space. More...
 
unsigned long regina::LensSpace::p () const
 Returns the first parameter p of this lens space L(p,q). More...
 
unsigned long regina::LensSpace::q () const
 Returns the second parameter q of this lens space L(p,q). More...
 
bool regina::LensSpace::operator== (const LensSpace &compare) const
 Determines whether this and the given lens space are homeomorphic 3-manifolds. More...
 
bool regina::LensSpace::operator!= (const LensSpace &compare) const
 Determines whether this and the given lens space are non-homeomorphic 3-manifolds. More...
 
LensSpaceregina::LensSpace::operator= (const LensSpace &cloneMe)=default
 Sets this to be a clone of the given lens space. More...
 
Triangulation< 3 > * regina::LensSpace::construct () const override
 Returns a triangulation of this 3-manifold, if such a construction has been implemented. More...
 
AbelianGroupregina::LensSpace::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::LensSpace::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::LensSpace::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::LensSpace::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
virtual regina::Manifold::~Manifold ()
 A destructor that does nothing. More...
 
std::string regina::Manifold::name () const
 Returns the common name of this 3-manifold as a human-readable string. More...
 
std::string regina::Manifold::TeXName () const
 Returns the common name of this 3-manifold in TeX format. More...
 
std::string regina::Manifold::structure () const
 Returns details of the structure of this 3-manifold that might not be evident from its common name. More...
 
virtual Triangulation< 3 > * regina::Manifold::construct () const
 Returns a triangulation of this 3-manifold, if such a construction has been implemented. More...
 
virtual AbelianGroupregina::Manifold::homology () const
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
AbelianGroupregina::Manifold::homologyH1 () const
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
virtual bool regina::Manifold::isHyperbolic () const =0
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
bool regina::Manifold::operator< (const Manifold &compare) const
 Determines in a fairly ad-hoc fashion whether this representation of this 3-manifold is "smaller" than the given representation of the given 3-manifold. More...
 
virtual std::ostream & regina::Manifold::writeName (std::ostream &out) const =0
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
virtual std::ostream & regina::Manifold::writeTeXName (std::ostream &out) const =0
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
virtual std::ostream & regina::Manifold::writeStructure (std::ostream &out) const
 Writes details of the structure of this 3-manifold that might not be evident from its common name to the given output stream. More...
 
void regina::Manifold::writeTextShort (std::ostream &out) const
 Writes a short text representation of this object to the given output stream. More...
 
void regina::Manifold::writeTextLong (std::ostream &out) const
 Writes a detailed text representation of this object to the given output stream. More...
 
Manifoldregina::Manifold::operator= (const Manifold &)=default
 The default assignment operator. More...
 
 regina::SFSFibre::SFSFibre ()
 Creates a new uninitialised exceptional fibre. More...
 
 regina::SFSFibre::SFSFibre (long newAlpha, long newBeta)
 Creates a new exceptional fibre with the given parameters. More...
 
 regina::SFSFibre::SFSFibre (const SFSFibre &cloneMe)=default
 Creates a new exceptional fibre that is a clone of the given fibre. More...
 
SFSFibreregina::SFSFibre::operator= (const SFSFibre &cloneMe)=default
 Makes this exceptional fibre a clone of the given fibre. More...
 
bool regina::SFSFibre::operator== (const SFSFibre &compare) const
 Determines if this and the given exceptional fibre are identical. More...
 
bool regina::SFSFibre::operator!= (const SFSFibre &compare) const
 Determines if this and the given exceptional fibre are different. More...
 
bool regina::SFSFibre::operator< (const SFSFibre &compare) const
 Determines if this exceptional fibre is smaller than the given fibre. More...
 
std::ostream & regina::operator<< (std::ostream &out, const SFSFibre &f)
 Writes the given fibre in human-readable format to the given output stream. More...
 
 regina::SFSpace::SFSpace ()
 Creates a new Seifert fibred space with base orbifold the 2-sphere and no exceptional fibres. More...
 
 regina::SFSpace::SFSpace (classType useClass, unsigned long genus, unsigned long punctures=0, unsigned long puncturesTwisted=0, unsigned long reflectors=0, unsigned long reflectorsTwisted=0)
 Creates a new Seifert fibred space of the given class with the given base orbifold and no exceptional fibres. More...
 
 regina::SFSpace::SFSpace (const SFSpace &cloneMe)=default
 Creates a new Seifert fibred space that is a clone of the given space. More...
 
virtual regina::SFSpace::~SFSpace ()
 Destroys this Seifert fibred space. More...
 
SFSpaceregina::SFSpace::operator= (const SFSpace &cloneMe)=default
 Modifies this Seifert fibred space to be a clone of the given space. More...
 
classType regina::SFSpace::baseClass () const
 Returns which of the eleven predefined classes this space belongs to. More...
 
unsigned long regina::SFSpace::baseGenus () const
 Returns the genus of the base orbifold. More...
 
bool regina::SFSpace::baseOrientable () const
 Returns whether or not the base surface is orientable. More...
 
bool regina::SFSpace::fibreReversing () const
 Returns whether or not this space contains any fibre-reversing paths. More...
 
bool regina::SFSpace::fibreNegating () const
 Returns whether or not we can negate an exceptional fibre by passing it around the interior of the base orbifold. More...
 
unsigned long regina::SFSpace::punctures () const
 Returns the total number of punctures in the base orbifold. More...
 
unsigned long regina::SFSpace::punctures (bool twisted) const
 Returns the number of punctures of the given type in the base orbifold. More...
 
unsigned long regina::SFSpace::reflectors () const
 Returns the total number of reflector boundary components of the base orbifold. More...
 
unsigned long regina::SFSpace::reflectors (bool twisted) const
 Returns the number of reflector boundary components of the given type in the base orbifold. More...
 
unsigned long regina::SFSpace::fibreCount () const
 Returns the number of exceptional fibres in this Seifert fibred space. More...
 
SFSFibre regina::SFSpace::fibre (unsigned long which) const
 Returns the requested exceptional fibre. More...
 
long regina::SFSpace::obstruction () const
 Returns the obstruction constant b for this Seifert fibred space. More...
 
void regina::SFSpace::addHandle (bool fibreReversing=false)
 Inserts a new handle into the base orbifold. More...
 
void regina::SFSpace::addCrosscap (bool fibreReversing=false)
 Inserts a new crosscap into the base orbifold. More...
 
void regina::SFSpace::addPuncture (bool twisted=false, unsigned long nPunctures=1)
 Inserts one or more new punctures into the base orbifold. More...
 
void regina::SFSpace::addReflector (bool twisted=false, unsigned long nReflectors=1)
 Adds one or more new reflector boundary components to the base orbifold. More...
 
void regina::SFSpace::insertFibre (const SFSFibre &fibre)
 Adds the given fibre to this Seifert fibred space. More...
 
void regina::SFSpace::insertFibre (long alpha, long beta)
 Adds the given fibre to this Seifert fibred space. More...
 
void regina::SFSpace::reflect ()
 Replaces this space with its mirror image. More...
 
void regina::SFSpace::complementAllFibres ()
 Replaces each exceptional fibre of the form (alpha, beta) with a fibre of the form (alpha, alpha - beta). More...
 
void regina::SFSpace::reduce (bool mayReflect=true)
 Reduces the parameters of this Seifert fibred space to a simpler form if possible, without changing the underlying fibration. More...
 
LensSpaceregina::SFSpace::isLensSpace () const
 Determines if this Seifert fibred space is a Lens space. More...
 
bool regina::SFSpace::operator== (const SFSpace &compare) const
 Determines whether this and the given structure contain precisely the same representations of precisely the same Seifert fibred spaces. More...
 
bool regina::SFSpace::operator!= (const SFSpace &compare) const
 Determines whether this and the given structure do not contain precisely the same representations of precisely the same Seifert fibred spaces. More...
 
bool regina::SFSpace::operator< (const SFSpace &compare) const
 Determines in a fairly ad-hoc fashion whether this representation of this space is "smaller" than the given representation of the given space. More...
 
Triangulation< 3 > * regina::SFSpace::construct () const override
 Returns a triangulation of this 3-manifold, if such a construction has been implemented. More...
 
AbelianGroupregina::SFSpace::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::SFSpace::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::SFSpace::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::SFSpace::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
std::ostream & regina::SFSpace::writeStructure (std::ostream &out) const override
 Writes details of the structure of this 3-manifold that might not be evident from its common name to the given output stream. More...
 
 regina::SFSAltSet::SFSAltSet (const SFSpace *sfs)
 Creates a new set of alternatives for the given Seifert fibred space. More...
 
void regina::SFSAltSet::deleteAll ()
 Destroys all of the alternative representations in this set. More...
 
void regina::SFSAltSet::deleteAll (SFSpace *exception)
 Destroys all of the alternative representations in this set, except for the given exception. More...
 
void regina::SFSAltSet::deleteAll (SFSpace *exception1, SFSpace *exception2)
 Destroys all of the alternative representations in this set, except for the two given exceptions. More...
 
unsigned regina::SFSAltSet::size () const
 Returns the number of alternative spaces in this set. More...
 
SFSpaceregina::SFSAltSet::operator[] (unsigned which) const
 Returns the requested alternative space. More...
 
const Matrix2regina::SFSAltSet::conversion (unsigned which) const
 Returns the conversion matrix for the requested alternative space. More...
 
bool regina::SFSAltSet::reflected (unsigned which) const
 Returns whether or not a reflection was used when creating the requested alternative space. More...
 
 regina::SFSAltSet::SFSAltSet (const SFSAltSet &)=delete
 
SFSAltSetregina::SFSAltSet::operator= (const SFSAltSet &)=delete
 
 regina::SimpleSurfaceBundle::SimpleSurfaceBundle (int newType)
 Creates a new surface bundle of the given type. More...
 
 regina::SimpleSurfaceBundle::SimpleSurfaceBundle (const SimpleSurfaceBundle &cloneMe)=default
 Creates a clone of the given surface bundle. More...
 
int regina::SimpleSurfaceBundle::type () const
 Returns the specific type of surface bundle being represented. More...
 
bool regina::SimpleSurfaceBundle::operator== (const SimpleSurfaceBundle &compare) const
 Determines whether this and the given surface bundle represent the same 3-manifold. More...
 
bool regina::SimpleSurfaceBundle::operator!= (const SimpleSurfaceBundle &compare) const
 Determines whether this and the given surface bundle represent different 3-manifolds. More...
 
SimpleSurfaceBundleregina::SimpleSurfaceBundle::operator= (const SimpleSurfaceBundle &cloneMe)=default
 Sets this to be a clone of the given surface bundle. More...
 
Triangulation< 3 > * regina::SimpleSurfaceBundle::construct () const override
 Returns a triangulation of this 3-manifold, if such a construction has been implemented. More...
 
AbelianGroupregina::SimpleSurfaceBundle::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::SimpleSurfaceBundle::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::SimpleSurfaceBundle::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::SimpleSurfaceBundle::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
 regina::SnapPeaCensusManifold::SnapPeaCensusManifold (char newSection, unsigned long newIndex)
 Creates a new SnapPea census manifold with the given parameters. More...
 
 regina::SnapPeaCensusManifold::SnapPeaCensusManifold (const SnapPeaCensusManifold &cloneMe)=default
 Creates a clone of the given SnapPea census manifold. More...
 
virtual regina::SnapPeaCensusManifold::~SnapPeaCensusManifold ()
 Destroys this structure. More...
 
char regina::SnapPeaCensusManifold::section () const
 Returns the section of the SnapPea census to which this manifold belongs. More...
 
unsigned long regina::SnapPeaCensusManifold::index () const
 Returns the index of this manifold within its particular section of the SnapPea census. More...
 
bool regina::SnapPeaCensusManifold::operator== (const SnapPeaCensusManifold &compare) const
 Determines whether this and the given structure represent the same 3-manifold from the SnapPea census. More...
 
bool regina::SnapPeaCensusManifold::operator!= (const SnapPeaCensusManifold &compare) const
 Determines whether this and the given structure represent different 3-manifolds from the SnapPea census. More...
 
SnapPeaCensusManifoldregina::SnapPeaCensusManifold::operator= (const SnapPeaCensusManifold &cloneMe)=default
 Sets this to be a clone of the given SnapPea census manifold. More...
 
Triangulation< 3 > * regina::SnapPeaCensusManifold::construct () const override
 Returns a triangulation of this 3-manifold, if such a construction has been implemented. More...
 
AbelianGroupregina::SnapPeaCensusManifold::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::SnapPeaCensusManifold::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::SnapPeaCensusManifold::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::SnapPeaCensusManifold::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 
std::ostream & regina::SnapPeaCensusManifold::writeStructure (std::ostream &out) const override
 Writes details of the structure of this 3-manifold that might not be evident from its common name to the given output stream. More...
 
 regina::TorusBundle::TorusBundle ()
 Creates a new trivial torus bundle over the circle. More...
 
 regina::TorusBundle::TorusBundle (const Matrix2 &newMonodromy)
 Creates a new torus bundle over the circle using the given monodromy. More...
 
 regina::TorusBundle::TorusBundle (long mon00, long mon01, long mon10, long mon11)
 Creates a new torus bundle over the circle using the given monodromy. More...
 
 regina::TorusBundle::TorusBundle (const TorusBundle &cloneMe)=default
 Creates a clone of the given torus bundle. More...
 
const Matrix2regina::TorusBundle::monodromy () const
 Returns the monodromy describing how the upper and lower torus boundaries are identified. More...
 
TorusBundleregina::TorusBundle::operator= (const TorusBundle &cloneMe)=default
 Sets this to be a clone of the given torus bundle. More...
 
AbelianGroupregina::TorusBundle::homology () const override
 Returns the first homology group of this 3-manifold, if such a routine has been implemented. More...
 
bool regina::TorusBundle::isHyperbolic () const override
 Returns whether or not this is a finite-volume hyperbolic manifold. More...
 
std::ostream & regina::TorusBundle::writeName (std::ostream &out) const override
 Writes the common name of this 3-manifold as a human-readable string to the given output stream. More...
 
std::ostream & regina::TorusBundle::writeTeXName (std::ostream &out) const override
 Writes the common name of this 3-manifold in TeX format to the given output stream. More...
 

Variables

long regina::SFSFibre::alpha
 The first parameter of this (alpha, beta) fibre. More...
 
long regina::SFSFibre::beta
 The second parameter of this (alpha, beta) fibre. More...
 
static const int regina::SimpleSurfaceBundle::S2xS1
 Represents the orientable 2-sphere bundle over the circle. More...
 
static const int regina::SimpleSurfaceBundle::S2xS1_TWISTED
 Represents the non-orientable twisted 2-sphere bundle over the circle. More...
 
static const int regina::SimpleSurfaceBundle::RP2xS1
 Represents the projective plane bundle over the circle. More...
 
static const char regina::SnapPeaCensusManifold::SEC_5
 Represents the collection of manifolds formed from five or fewer tetrahedra (both orientable and non-orientable). More...
 
static const char regina::SnapPeaCensusManifold::SEC_6_OR
 Represents the collection of orientable manifolds formed from six tetrahedra. More...
 
static const char regina::SnapPeaCensusManifold::SEC_6_NOR
 Represents the collection of non-orientable manifolds formed from six tetrahedra. More...
 
static const char regina::SnapPeaCensusManifold::SEC_7_OR
 Represents the collection of orientable manifolds formed from seven tetrahedra. More...
 
static const char regina::SnapPeaCensusManifold::SEC_7_NOR
 Represents the collection of non-orientable manifolds formed from seven tetrahedra. More...
 

Detailed Description

Standard 3-manifolds whose structures are well-understood.

Typedef Documentation

◆ NGraphLoop

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NGraphLoop has now been renamed to GraphLoop.

◆ NGraphPair

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NGraphPair has now been renamed to GraphPair.

◆ NGraphTriple

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NGraphTriple has now been renamed to GraphTriple.

◆ NHandlebody

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NHandlebody has now been renamed to Handlebody.

◆ NLensSpace

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NLensSpace has now been renamed to LensSpace.

◆ NManifold

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NManifold has now been renamed to Manifold.

◆ NSFSAltSet

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NSFSAltSet has now been renamed to SFSAltSet.

◆ NSFSFibre

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NSFSFibre has now been renamed to SFSFibre.

◆ NSFSpace

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NSFSpace has now been renamed to SFSpace.

◆ NSimpleSurfaceBundle

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NSimpleSurfaceBundle has now been renamed to SimpleSurfaceBundle.

◆ NSnapPeaCensusManifold

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NSnapPeaCensusManifold has now been renamed to SnapPeaCensusManifold.

◆ NTorusBundle

Deprecated typedef for backward compatibility.

This typedef will be removed in a future release of Regina.

Deprecated:
The class NTorusBundle has now been renamed to TorusBundle.

Enumeration Type Documentation

◆ classType

Lists the six classes o1, o2, n1, n2, n3, n4 for base orbifolds without boundaries, plus five classes bo1, b02, bn1, bn2, bn3 for base orbifolds with boundaries.

Enumerator
o1 

Indicates that the base orbifold is orientable with no punctures or reflector boundaries, and that none of its generators give fibre-reversing paths.

o2 

Indicates that the base orbifold is orientable with no punctures or reflector boundaries, and that all of its generators give fibre-reversing paths.

n1 

Indicates that the base orbifold is non-orientable with no punctures or reflector boundaries, and that none of its generators give fibre-reversing paths.

n2 

Indicates that the base orbifold is non-orientable with no punctures or reflector boundaries, and that all of its generators give fibre-reversing paths.

n3 

Indicates that the base orbifold is non-orientable with no punctures or reflector boundaries, that it has non-orientable genus at least two, and that precisely one of its generators gives a fibre-reversing path.

n4 

Indicates that the base orbifold is non-orientable with no punctures or reflector boundaries, that it has non-orientable genus at least three, and that precisely two of its generators give fibre-reversing paths.

bo1 

Indicates that the base orbifold contains punctures and/or reflector boundaries, that it is orientable, and that it contains no fibre-reversing paths.

bo2 

Indicates that the base orbifold contains punctures and/or reflector boundaries, that it is orientable, and that it contains at least one fibre-reversing path.

bn1 

Indicates that the base orbifold contains punctures and/or reflector boundaries, that it is non-orientable, and that it contains no fibre-reversing paths.

bn2 

Indicates that the base orbifold contains punctures and/or reflector boundaries, that it is non-orientable, and that its fibre-reversing paths correspond precisely to its orientation-reversing paths.

bn3 

Indicates that the base orbifold contains punctures and/or reflector boundaries, that it is non-orientable, that it contains at least one fibre-reversing path, and that its fibre-reversing paths do not correspond precisely to its orientation-reversing paths.

Function Documentation

◆ addCrosscap()

void regina::SFSpace::addCrosscap ( bool  fibreReversing = false)

Inserts a new crosscap into the base orbifold.

This makes the base orbifold non-orientable, and increases its non-orientable genus by one. It is equivalent to removing a disc from the base orbifold and replacing it with a Mobius band.

Note that this operation may alter which of the classes described by classType this space belongs to.

The exceptional fibres and the obstruction constant b are not modified by this routine.

Parameters
fibreReversingtrue if the generator of the new crosscap should give a fibre-reversing curve in the overall 3-manifold, or false (the default) if it should preserve the directions of the fibres.

◆ addHandle()

void regina::SFSpace::addHandle ( bool  fibreReversing = false)

Inserts a new handle into the base orbifold.

This increases the orientable genus of the base orbifold by one, or the non-orientable genus by two. It is equivalent to removing a disc from the base orbifold and replacing it with a punctured torus.

Note that this operation may alter which of the classes described by classType this space belongs to.

The exceptional fibres and the obstruction constant b are not modified by this routine.

Parameters
fibreReversingtrue if one or both generators of the new handle should give fibre-reversing curves in the overall 3-manifold, or false (the default) if both generators should preserve the directions of the fibres.

◆ addPuncture()

void regina::SFSpace::addPuncture ( bool  twisted = false,
unsigned long  nPunctures = 1 
)

Inserts one or more new punctures into the base orbifold.

The punctures may be twisted or untwisted.

Each puncture insertion is equivalent to removing a disc from the base orbifold. In the untwisted case this results in a new torus boundary for the 3-manifold, and in the twisted case it results in a new Klein bottle boundary.

The exceptional fibres and the obstruction constant b are not modified by this routine.

Parameters
twistedtrue if the new punctures should be twisted (i.e., their boundaries should be fibre-reversing), or false if the new punctures should be untwisted.
nPuncturesthe number of new punctures to insert.

◆ addReflector()

void regina::SFSpace::addReflector ( bool  twisted = false,
unsigned long  nReflectors = 1 
)

Adds one or more new reflector boundary components to the base orbifold.

The new reflector boundaries may be twisted or untwisted.

Each addition of a reflector boundary component is equivalent to removing a disc from the base orbifold and replacing it with an annulus with one reflector boundary.

In the untwisted case, it has the effect of removing a trivially fibred solid torus from the overall 3-manifold and replacing it with an appropriately fibred twisted I-bundle over the torus.

The exceptional fibres and the obstruction constant b are not modified by this routine.

Parameters
twistedtrue if the new reflector boundaries should be twisted (i.e., the boundaries should be fibre-reversing), or false if the new reflector boundaries should be untwisted.
nReflectorsthe number of new reflector boundaries to add.

◆ baseClass()

SFSpace::classType regina::SFSpace::baseClass ( ) const
inline

Returns which of the eleven predefined classes this space belongs to.

The specific class indicates whether the base orbifold has punctures and/or reflector boundaries, whether the base orbifold is orientable, and gives information on fibre-reversing paths.

The class can be (indirectly) modified by calling addHandle(), addCrosscap(), addPuncture() or addReflector().

For more information on the eleven predefined classes, see the SFSpace class notes or the classType enumeration notes.

Returns
the particular class to which this space belongs.

◆ baseGenus()

unsigned long regina::SFSpace::baseGenus ( ) const
inline

Returns the genus of the base orbifold.

All punctures and reflector boundaries in the base orbifold are ignored (i.e., they are treated as though they had been replaced with ordinary filled discs).

The genus is the number of tori or projective planes that the base surface is formed from. In particular, if the base surface is non-orientable then this is the non-orientable genus.

Returns
the genus of the base orbifold.

◆ baseOrientable()

bool regina::SFSpace::baseOrientable ( ) const
inline

Returns whether or not the base surface is orientable.

Reflector boundary components of the base orbifold are not considered here.

The orientability of the base surface can be (indirectly) modified by calling addCrosscap().

Returns
true if and only if the base surface is orientable.

◆ centre()

const SFSpace & regina::GraphTriple::centre ( ) const
inline

Returns a reference to the central space.

This is the Seifert fibred space with two boundary components, to which the two end spaces are joined. See the class notes for further discussion.

Returns
a reference to the requested Seifert fibred space.

◆ complementAllFibres()

void regina::SFSpace::complementAllFibres ( )

Replaces each exceptional fibre of the form (alpha, beta) with a fibre of the form (alpha, alpha - beta).

The obstruction constant b is not touched.

◆ construct() [1/5]

Triangulation< 3 > * regina::Manifold::construct ( ) const
inlinevirtual

Returns a triangulation of this 3-manifold, if such a construction has been implemented.

If no construction routine has yet been implemented for this 3-manifold (for instance, if this 3-manifold is a Seifert fibred space with sufficiently many exceptional fibres) then this routine will return 0.

The details of which 3-manifolds have construction routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

Returns
a triangulation of this 3-manifold, or 0 if the appropriate construction routine has not yet been implemented.

Reimplemented in regina::SnapPeaCensusManifold, regina::SimpleSurfaceBundle, regina::SFSpace, and regina::LensSpace.

◆ construct() [2/5]

Triangulation<3>* regina::LensSpace::construct ( ) const
overridevirtual

Returns a triangulation of this 3-manifold, if such a construction has been implemented.

If no construction routine has yet been implemented for this 3-manifold (for instance, if this 3-manifold is a Seifert fibred space with sufficiently many exceptional fibres) then this routine will return 0.

The details of which 3-manifolds have construction routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

Returns
a triangulation of this 3-manifold, or 0 if the appropriate construction routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ construct() [3/5]

Triangulation<3>* regina::SFSpace::construct ( ) const
overridevirtual

Returns a triangulation of this 3-manifold, if such a construction has been implemented.

If no construction routine has yet been implemented for this 3-manifold (for instance, if this 3-manifold is a Seifert fibred space with sufficiently many exceptional fibres) then this routine will return 0.

The details of which 3-manifolds have construction routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

Returns
a triangulation of this 3-manifold, or 0 if the appropriate construction routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ construct() [4/5]

Triangulation<3>* regina::SimpleSurfaceBundle::construct ( ) const
overridevirtual

Returns a triangulation of this 3-manifold, if such a construction has been implemented.

If no construction routine has yet been implemented for this 3-manifold (for instance, if this 3-manifold is a Seifert fibred space with sufficiently many exceptional fibres) then this routine will return 0.

The details of which 3-manifolds have construction routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

Returns
a triangulation of this 3-manifold, or 0 if the appropriate construction routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ construct() [5/5]

Triangulation<3>* regina::SnapPeaCensusManifold::construct ( ) const
overridevirtual

Returns a triangulation of this 3-manifold, if such a construction has been implemented.

If no construction routine has yet been implemented for this 3-manifold (for instance, if this 3-manifold is a Seifert fibred space with sufficiently many exceptional fibres) then this routine will return 0.

The details of which 3-manifolds have construction routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

Returns
a triangulation of this 3-manifold, or 0 if the appropriate construction routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ conversion()

const Matrix2 & regina::SFSAltSet::conversion ( unsigned  which) const
inline

Returns the conversion matrix for the requested alternative space.

This matrix describes the fibre and base curves of the alternative space on the first boundary torus in terms of the fibre and base curves of the original space (which was passed to the SFSAltSet constructor). See the class notes above for details.

Note that this conversion matrix applies only to the first boundary torus! If there is more than one boundary, the remaining boundary conversions are simpler and depend only on whether a reflection has been used or not. See reflected() or the class notes for details.

Parameters
whichindicates which of the alternatives we should return the conversion matrix for; this must be between 0 and size()-1 inclusive.
Returns
the conversion matrix for the requested alternative space.

◆ deleteAll() [1/3]

void regina::SFSAltSet::deleteAll ( )

Destroys all of the alternative representations in this set.

This routine is for situations where none of the alternatives here are appropriate for keeping and using elsewhere.

◆ deleteAll() [2/3]

void regina::SFSAltSet::deleteAll ( SFSpace exception)

Destroys all of the alternative representations in this set, except for the given exception.

If the given exception is null or is not one of the alternatives in this set, every alternative will be destroyed.

This routine is for situations where one of the alternatives has been kept for later use, and the rest are to be discarded.

Parameters
exceptionthe one alternative that should not be destroyed.

◆ deleteAll() [3/3]

void regina::SFSAltSet::deleteAll ( SFSpace exception1,
SFSpace exception2 
)

Destroys all of the alternative representations in this set, except for the two given exceptions.

If either exception is null or is not one of the alternatives in this set, it will be ignored (and this routine will behave like the one-exception or no-exceptions variant). Likewise, if both exceptions are the same then this routine will behave like the one-exception variant.

This routine is for situations where one of the alternatives has been kept for later use, but due to other operations that may have taken place (such as space swapping) it is only known that the alternative we kept is one of two possibilities.

Parameters
exception1the first alternative that should not be destroyed.
exception2the second alternative that should not be destroyed.

◆ end()

const SFSpace & regina::GraphTriple::end ( unsigned  which) const
inline

Returns a reference to one of the two end spaces.

These are the Seifert fibred spaces with just one boundary component, to be joined to the central space. See the class notes for further discussion.

Parameters
which0 if the first end space is to be returned, or 1 if the second end space is to be returned.
Returns
a reference to the requested Seifert fibred space.

◆ fibre()

SFSFibre regina::SFSpace::fibre ( unsigned long  which) const

Returns the requested exceptional fibre.

Fibres are stored in sorted order by alpha (the index) and then by beta. See the SFSpace class notes for details.

Warning
This routine takes linear time (specifically, linear in the argument which).
Parameters
whichdetermines which fibre to return; this must be between 0 and getFibreCount()-1 inclusive.
Returns
the requested fibre.

◆ fibreCount()

unsigned long regina::SFSpace::fibreCount ( ) const
inline

Returns the number of exceptional fibres in this Seifert fibred space.

Note that the obstruction parameter b is not included in this count. That is, any (1,k) fibres are ignored.

Returns
the number of exceptional fibres.

◆ fibreNegating()

bool regina::SFSpace::fibreNegating ( ) const
inline

Returns whether or not we can negate an exceptional fibre by passing it around the interior of the base orbifold.

That is, this routine determines whether a (p, q) exceptional fibre can become a (p, -q) exceptional fibre simply by sliding it around.

This is possible if either

  • the base orbifold has an orientation-reversing loop that does not reverse fibres in the 3-manifold, or
  • the base orbifold has an orientation-preserving loop that does reverse fibres in the 3-manifold.

Note that reflector boundary components, whilst making the overall 3-manifold non-orientable, have no bearing on the outcome of this routine.

Returns
true if and only an exceptional fibre can be reflected as described above.

◆ fibreReversing()

bool regina::SFSpace::fibreReversing ( ) const
inline

Returns whether or not this space contains any fibre-reversing paths.

Returns
true if and only if a fibre-reversing path exists.

◆ GraphLoop() [1/3]

regina::GraphLoop::GraphLoop ( const GraphLoop cloneMe)
inline

Creates a clone of the given graph manifold.

Parameters
cloneMethe manifold to clone.

◆ GraphLoop() [2/3]

regina::GraphLoop::GraphLoop ( SFSpace sfs,
const Matrix2 matchingReln 
)
inline

Creates a new graph manifold as a self-identified Seifert fibred space.

The bounded Seifert fibred space and the entire 2-by-2 matching matrix are each passed separately.

Note that the new object will take ownership of the given Seifert fibred space, and when this object is destroyed the Seifert fibred space will be destroyed also.

Precondition
The given Seifert fibred space has precisely two torus boundaries, corresponding to two punctures in the base orbifold.
The given matching matrix has determinant +1 or -1.
Python:\n In Python, this constructor clones its SFSpace
argument instead of claiming ownership of it.
Parameters
sfsthe bounded Seifert fibred space.
matchingRelnthe 2-by-2 matching matrix.

◆ GraphLoop() [3/3]

regina::GraphLoop::GraphLoop ( SFSpace sfs,
long  mat00,
long  mat01,
long  mat10,
long  mat11 
)
inline

Creates a new graph manifold as a self-identified Seifert fibred space.

The bounded Seifert fibred space and the four elements of the 2-by-2 matching matrix are all passed separately. The elements of the matching matrix combine to give the full matrix M as follows:

          [ mat00  mat01 ]
    M  =  [              ]
          [ mat10  mat11 ]

Note that the new object will take ownership of the given Seifert fibred space, and when this object is destroyed the Seifert fibred space will be destroyed also.

Precondition
The given Seifert fibred space has precisely two torus boundaries, corresponding to two untwisted punctures in the base orbifold.
The given matching matrix has determinant +1 or -1.
Python:\n In Python, this constructor clones its SFSpace
argument instead of claiming ownership of it.
Parameters
sfsthe bounded Seifert fibred space.
mat00the (0,0) element of the matching matrix.
mat01the (0,1) element of the matching matrix.
mat10the (1,0) element of the matching matrix.
mat11the (1,1) element of the matching matrix.

◆ GraphPair() [1/3]

regina::GraphPair::GraphPair ( const GraphPair cloneMe)
inline

Creates a clone of the given graph manifold.

Parameters
cloneMethe manifold to clone.

◆ GraphPair() [2/3]

regina::GraphPair::GraphPair ( SFSpace sfs0,
SFSpace sfs1,
const Matrix2 matchingReln 
)
inline

Creates a new graph manifold as a pair of joined Seifert fibred spaces.

The two bounded Seifert fibred spaces and the entire 2-by-2 matching matrix are each passed separately.

Note that the new object will take ownership of the two given Seifert fibred spaces, and when this object is destroyed the Seifert fibred spaces will be destroyed also.

Precondition
Each Seifert fibred space has a single torus boundary, corresponding to a single untwisted puncture in the base orbifold.
The given matching matrix has determinant +1 or -1.
Python:\n In Python, this constructor clones its SFSpace
arguments instead of claiming ownership of them.
Parameters
sfs0the first Seifert fibred space.
sfs1the second Seifert fibred space.
matchingRelnthe 2-by-2 matching matrix.

◆ GraphPair() [3/3]

regina::GraphPair::GraphPair ( SFSpace sfs0,
SFSpace sfs1,
long  mat00,
long  mat01,
long  mat10,
long  mat11 
)
inline

Creates a new graph manifold as a pair of joined Seifert fibred spaces.

The two bounded Seifert fibred spaces and the four elements of the 2-by-2 matching matrix are all passed separately. The elements of the matching matrix combine to give the full matrix M as follows:

          [ mat00  mat01 ]
    M  =  [              ]
          [ mat10  mat11 ]

Note that the new object will take ownership of the two given Seifert fibred spaces, and when this object is destroyed the Seifert fibred spaces will be destroyed also.

Precondition
Each Seifert fibred space has a single torus boundary, corresponding to a single untwisted puncture in the base orbifold.
The given matching matrix has determinant +1 or -1.
Python:\n In Python, this constructor clones its SFSpace
arguments instead of claiming ownership of them.
Parameters
sfs0the first Seifert fibred space.
sfs1the second Seifert fibred space.
mat00the (0,0) element of the matching matrix.
mat01the (0,1) element of the matching matrix.
mat10the (1,0) element of the matching matrix.
mat11the (1,1) element of the matching matrix.

◆ GraphTriple() [1/2]

regina::GraphTriple::GraphTriple ( const GraphTriple cloneMe)
inline

Creates a clone of the given graph manifold.

Parameters
cloneMethe manifold to clone.

◆ GraphTriple() [2/2]

regina::GraphTriple::GraphTriple ( SFSpace end0,
SFSpace centre,
SFSpace end1,
const Matrix2 matchingReln0,
const Matrix2 matchingReln1 
)
inline

Creates a new graph manifold from three bounded Seifert fibred spaces, as described in the class notes.

The three Seifert fibred spaces and both 2-by-2 matching matrices are passed separately.

Note that the new object will take ownership of the three given Seifert fibred spaces, and when this object is destroyed the Seifert fibred spaces will be destroyed also.

Precondition
Spaces end0 and end1 each have a single torus boundary, corresponding to a single untwisted puncture in the base orbifold.
Space centre has two disjoint torus boundaries, corresponding to two untwisted punctures in the base orbifold.
Each of the given matrices has determinant +1 or -1.
Python:\n In Python, this constructor clones its SFSpace
arguments instead of claiming ownership of them.
Parameters
end0the first end space, as described in the class notes.
centrethe central space, as described in the class notes.
end1the second end space, as described in the class notes.
matchingReln0the 2-by-2 matching matrix that specifies how spaces end0 and centre are joined.
matchingReln1the 2-by-2 matching matrix that specifies how spaces end1 and centre are joined.

◆ Handlebody() [1/2]

regina::Handlebody::Handlebody ( const Handlebody cloneMe)
default

Creates a clone of the given handlebody.

Parameters
cloneMethe handlebody to clone.

◆ Handlebody() [2/2]

regina::Handlebody::Handlebody ( unsigned long  newHandles,
bool  newOrientable 
)
inline

Creates a new handlebody with the given parameters.

Parameters
newHandlesthe number of handles of the handlebody.
newOrientabletrue if the handlebody is to be orientable or false if the handlebody is to be non-orientable. This must be true if the handlebody has no handles.

◆ handles()

unsigned long regina::Handlebody::handles ( ) const
inline

Returns the number of handles of this handlebody.

Returns
the number of handles.

◆ homology() [1/10]

AbelianGroup * regina::Manifold::homology ( ) const
inlinevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented in regina::TorusBundle, regina::SnapPeaCensusManifold, regina::SimpleSurfaceBundle, regina::SFSpace, regina::LensSpace, regina::Handlebody, regina::GraphTriple, regina::GraphPair, and regina::GraphLoop.

◆ homology() [2/10]

AbelianGroup* regina::GraphLoop::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homology() [3/10]

AbelianGroup* regina::GraphPair::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homology() [4/10]

AbelianGroup* regina::GraphTriple::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homology() [5/10]

AbelianGroup* regina::Handlebody::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homology() [6/10]

AbelianGroup* regina::LensSpace::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homology() [7/10]

AbelianGroup* regina::SFSpace::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homology() [8/10]

AbelianGroup* regina::SimpleSurfaceBundle::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homology() [9/10]

AbelianGroup* regina::SnapPeaCensusManifold::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homology() [10/10]

AbelianGroup* regina::TorusBundle::homology ( ) const
overridevirtual

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::Manifold.

◆ homologyH1()

AbelianGroup * regina::Manifold::homologyH1 ( ) const
inline

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of Manifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

This routine can also be accessed via the alias homology() (a name that is less specific, but a little easier to type).

Returns
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

◆ index()

unsigned long regina::SnapPeaCensusManifold::index ( ) const
inline

Returns the index of this manifold within its particular section of the SnapPea census.

Note that indices for each section begin counting at zero.

Returns
the index of this manifold within its section.

◆ insertFibre() [1/2]

void regina::SFSpace::insertFibre ( const SFSFibre fibre)
inline

Adds the given fibre to this Seifert fibred space.

This may be an exceptional fibre (alpha > 1) or it may be a regular fibre (alpha = 1). If it is a regular fibre, the obstruction constant b will be adjusted according to the value of beta.

Note that there is no restriction on the range of the second parameter beta. If it is out of the usual range 0 <= beta < alpha, it will be pulled back into this range and the excess will be pushed into the obstruction constant b.

Parameters
fibrethe fibre to insert. The first parameter of this fibre (i.e., its index) must be strictly positive, and the two parameters of this fibre must be coprime.

◆ insertFibre() [2/2]

void regina::SFSpace::insertFibre ( long  alpha,
long  beta 
)

Adds the given fibre to this Seifert fibred space.

This may be an exceptional fibre (alpha > 1) or it may be a regular fibre (alpha = 1). If it is a regular fibre, the obstruction constant b will be adjusted according to the value of beta.

Note that there is no restriction on the range of the second parameter beta. If it is out of the usual range 0 <= beta < alpha, it will be pulled back into this range and the excess will be pushed into the obstruction constant b.

Parameters
alphathe first parameter (i.e., the index) of the fibre to insert; this must be strictly positive.
betathe second parameter of the fibre to insert; this must have no common factors with the first parameter alpha.

◆ isHyperbolic() [1/10]

virtual bool regina::Manifold::isHyperbolic ( ) const
pure virtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implemented in regina::TorusBundle, regina::SnapPeaCensusManifold, regina::SimpleSurfaceBundle, regina::SFSpace, regina::LensSpace, regina::Handlebody, regina::GraphTriple, regina::GraphPair, and regina::GraphLoop.

◆ isHyperbolic() [2/10]

bool regina::GraphLoop::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isHyperbolic() [3/10]

bool regina::GraphPair::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isHyperbolic() [4/10]

bool regina::GraphTriple::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isHyperbolic() [5/10]

bool regina::Handlebody::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isHyperbolic() [6/10]

bool regina::LensSpace::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isHyperbolic() [7/10]

bool regina::SFSpace::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isHyperbolic() [8/10]

bool regina::SimpleSurfaceBundle::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isHyperbolic() [9/10]

bool regina::SnapPeaCensusManifold::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isHyperbolic() [10/10]

bool regina::TorusBundle::isHyperbolic ( ) const
inlineoverridevirtual

Returns whether or not this is a finite-volume hyperbolic manifold.

Returns
true if this is a finite-volume hyperbolic manifold, or false if not.

Implements regina::Manifold.

◆ isLensSpace()

LensSpace* regina::SFSpace::isLensSpace ( ) const

Determines if this Seifert fibred space is a Lens space.

If this is a Lens space, the LensSpace returned will be newly created and it will be up to the caller of this routine to destroy it.

Returns
a structure containing the details of this Lens space, or null if this is not a Lens space.

◆ isOrientable()

bool regina::Handlebody::isOrientable ( ) const
inline

Returns whether this handlebody is orientable.

Returns
true if this handlebody is orientable, or false if this handlebody is non-orientable.

◆ LensSpace() [1/2]

regina::LensSpace::LensSpace ( const LensSpace cloneMe)
default

Creates a clone of the given lens space.

Parameters
cloneMethe lens space to clone.

◆ LensSpace() [2/2]

regina::LensSpace::LensSpace ( unsigned long  newP,
unsigned long  newQ 
)
inline

Creates a new lens space with the given parameters.

See the class notes for details.

Precondition
The two given parameters are coprime (have a gcd of 1).
Parameters
newPthe first parameter p of the lens space L(p,q).
newQthe second parameter q of the lens space L(p,q). Note that there are no range restrictions whatsoever on this parameter.

◆ matchingReln() [1/3]

const Matrix2 & regina::GraphLoop::matchingReln ( ) const
inline

Returns a reference to the 2-by-2 matrix describing how the two boundary tori of the Seifert fibred space are joined together.

See the class notes for details on precisely how this matrix is represented.

Returns
a reference to the matching matrix.

◆ matchingReln() [2/3]

const Matrix2 & regina::GraphPair::matchingReln ( ) const
inline

Returns a reference to the 2-by-2 matrix describing how the two Seifert fibred spaces are joined together.

See the class notes for details on precisely how this matrix is represented.

Returns
a reference to the matching matrix.

◆ matchingReln() [3/3]

const Matrix2 & regina::GraphTriple::matchingReln ( unsigned  which) const
inline

Returns a reference to the 2-by-2 matrix describing how the two requested bounded Seifert fibred spaces are joined together.

See the class notes for details on precisely how these matrices are represented.

The argument which indicates which particular join should be examined. A value of 0 denotes the join between the central space and the first end space (corresponding to matrix M in the class notes), whereas a value of 1 denotes the join between the central space and the second end space (corresponding to matrix M' in the class notes).

Parameters
whichindicates which particular join should be examined; this should be 0 or 1 as described above.
Returns
a reference to the requested matching matrix.

◆ monodromy()

const Matrix2 & regina::TorusBundle::monodromy ( ) const
inline

Returns the monodromy describing how the upper and lower torus boundaries are identified.

See the class notes for details.

Returns
the monodromy for this torus bundle.

◆ name()

std::string regina::Manifold::name ( ) const

Returns the common name of this 3-manifold as a human-readable string.

Returns
the common name of this 3-manifold.

◆ obstruction()

long regina::SFSpace::obstruction ( ) const
inline

Returns the obstruction constant b for this Seifert fibred space.

The obstruction constant corresponds to the insertion of an additional (1,b) fibre. It can be modified by calling insertFibre() with a value of alpha = 1. It will also be modified whenever insertFibre() is called with beta out of range (beta < 0 or beta >= alpha), since each exceptional fibre must be stored in standard form (0 <= beta < alpha).

Returns
the obstruction constant b.

◆ operator!=() [1/6]

bool regina::Handlebody::operator!= ( const Handlebody compare) const
inline

Determines whether this and the given handlebody represent different 3-manifolds.

Parameters
comparethe handlebody with which this will be compared.
Returns
true if and only if this and the given handlebody are not homeomorphic.

◆ operator!=() [2/6]

bool regina::LensSpace::operator!= ( const LensSpace compare) const
inline

Determines whether this and the given lens space are non-homeomorphic 3-manifolds.

Note that the manifolds may be homeomorphic even if they were initialised with different parameters.

Parameters
comparethe lens space with which this will be compared.
Returns
true if and only if this and the given lens space are non-homeomorphic.

◆ operator!=() [3/6]

bool regina::SFSFibre::operator!= ( const SFSFibre compare) const
inline

Determines if this and the given exceptional fibre are different.

This requires the fibres to have different values for alpha and/or to have different values for beta.

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

◆ operator!=() [4/6]

bool regina::SFSpace::operator!= ( const SFSpace compare) const
inline

Determines whether this and the given structure do not contain precisely the same representations of precisely the same Seifert fibred spaces.

Note that this routine examines the particular representation of the Seifert fibred space. Different Seifert parameters that give the same 3-manifold will be regarded as different by this routine.

Parameters
comparethe representation with which this will be compared.
Returns
true if and only if this and the given Seifert fibred space representations are different.

◆ operator!=() [5/6]

bool regina::SimpleSurfaceBundle::operator!= ( const SimpleSurfaceBundle compare) const
inline

Determines whether this and the given surface bundle represent different 3-manifolds.

Parameters
comparethe surface bundle with which this will be compared.
Returns
true if and only if this and the given surface bundle are non-homeomorphic.

◆ operator!=() [6/6]

bool regina::SnapPeaCensusManifold::operator!= ( const SnapPeaCensusManifold compare) const
inline

Determines whether this and the given structure represent different 3-manifolds from the SnapPea census.

As of Regina 5.0, this test respects the recent discovery that the manifolds x101 and x103 are homeomorphic. For details, see B.B., A duplicate pair in the SnapPea census, Experimental Mathematics, 23:170-173, 2014.

Parameters
comparethe structure with which this will be compared.
Returns
true if and only if this and the given structure represent different SnapPea census manifolds.

◆ operator<() [1/6]

bool regina::GraphLoop::operator< ( const GraphLoop compare) const

Determines in a fairly ad-hoc fashion whether this representation of this space is "smaller" than the given representation of the given space.

The ordering imposed on graph manifolds is purely aesthetic on the part of the author, and is subject to change in future versions of Regina. It also depends upon the particular representation, so that different representations of the same space may be ordered differently.

All that this routine really offers is a well-defined way of ordering graph manifold representations.

Parameters
comparethe representation with which this will be compared.
Returns
true if and only if this is "smaller" than the given graph manifold representation.

◆ operator<() [2/6]

bool regina::GraphPair::operator< ( const GraphPair compare) const

Determines in a fairly ad-hoc fashion whether this representation of this space is "smaller" than the given representation of the given space.

The ordering imposed on graph manifolds is purely aesthetic on the part of the author, and is subject to change in future versions of Regina. It also depends upon the particular representation, so that different representations of the same space may be ordered differently.

All that this routine really offers is a well-defined way of ordering graph manifold representations.

Parameters
comparethe representation with which this will be compared.
Returns
true if and only if this is "smaller" than the given graph manifold representation.

◆ operator<() [3/6]

bool regina::GraphTriple::operator< ( const GraphTriple compare) const

Determines in a fairly ad-hoc fashion whether this representation of this space is "smaller" than the given representation of the given space.

The ordering imposed on graph manifolds is purely aesthetic on the part of the author, and is subject to change in future versions of Regina. It also depends upon the particular representation, so that different representations of the same space may be ordered differently.

All that this routine really offers is a well-defined way of ordering graph manifold representations.

Parameters
comparethe representation with which this will be compared.
Returns
true if and only if this is "smaller" than the given graph manifold representation.

◆ operator<() [4/6]

bool regina::Manifold::operator< ( const Manifold compare) const

Determines in a fairly ad-hoc fashion whether this representation of this 3-manifold is "smaller" than the given representation of the given 3-manifold.

The ordering imposed on 3-manifolds is purely aesthetic on the part of the author, and is subject to change in future versions of Regina.

The ordering also depends on the particular representation of the 3-manifold that is used. As an example, different representations of the same Seifert fibred space might well be ordered differently.

All that this routine really offers is a well-defined way of ordering 3-manifold representations.

Warning
Currently this routine is only implemented in full for closed 3-manifolds. For most classes of bounded 3-manifolds, this routine simply compares the strings returned by name().
Parameters
comparethe 3-manifold representation with which this will be compared.
Returns
true if and only if this is "smaller" than the given 3-manifold representation.

◆ operator<() [5/6]

bool regina::SFSFibre::operator< ( const SFSFibre 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.

◆ operator<() [6/6]

bool regina::SFSpace::operator< ( const SFSpace compare) const

Determines in a fairly ad-hoc fashion whether this representation of this space is "smaller" than the given representation of the given space.

The ordering imposed on Seifert fibred space representations is purely aesthetic on the part of the author, and is subject to change in future versions of Regina. It also depends upon the particular representation, so that different representations of the same space may be ordered differently.

All that this routine really offers is a well-defined way of ordering Seifert fibred space representations.

Parameters
comparethe representation with which this will be compared.
Returns
true if and only if this is "smaller" than the given Seifert fibred space representation.

◆ operator<<()

std::ostream& regina::operator<< ( std::ostream &  out,
const SFSFibre f 
)

Writes the given fibre in human-readable format to the given output stream.

The fibre will be written in the format (alpha,beta) with no newline appended.

Parameters
outthe output stream to which to write.
fthe fibre to write.
Returns
the output stream out.

◆ operator=() [1/11]

GraphLoop & regina::GraphLoop::operator= ( const GraphLoop cloneMe)
inline

Sets this to be a clone of the given graph manifold.

Parameters
cloneMethe manifold to clone.

◆ operator=() [2/11]

GraphPair & regina::GraphPair::operator= ( const GraphPair cloneMe)
inline

Sets this to be a clone of the given graph manifold.

Parameters
cloneMethe manifold to clone.

◆ operator=() [3/11]

GraphTriple & regina::GraphTriple::operator= ( const GraphTriple cloneMe)
inline

Sets this to be a clone of the given graph manifold.

Parameters
cloneMethe manifold to clone.

◆ operator=() [4/11]

Handlebody& regina::Handlebody::operator= ( const Handlebody cloneMe)
default

Sets this to be a clone of the given handlebody.

Parameters
cloneMethe handlebody to clone.

◆ operator=() [5/11]

LensSpace& regina::LensSpace::operator= ( const LensSpace cloneMe)
default

Sets this to be a clone of the given lens space.

Parameters
cloneMethe lens space to clone.

◆ operator=() [6/11]

Manifold& regina::Manifold::operator= ( const Manifold )
protecteddefault

The default assignment operator.

For the base Manifold class, this operator does nothing. It is provided so that derived classes can, if they wish, declare a default assignment operator (whereupon the compiler will automatically include a call to this base class operator). It is protected so that external users do not accidentally call it (since every Manifold really belongs to a subclass of Manifold, but this operator does not copy any subclass data).

◆ operator=() [7/11]

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

Makes this exceptional fibre a clone of the given fibre.

Parameters
cloneMethe exceptional fibre to clone.

◆ operator=() [8/11]

SFSpace& regina::SFSpace::operator= ( const SFSpace cloneMe)
default

Modifies this Seifert fibred space to be a clone of the given space.

Parameters
cloneMethe Seifert fibred space to clone.

◆ operator=() [9/11]

SimpleSurfaceBundle& regina::SimpleSurfaceBundle::operator= ( const SimpleSurfaceBundle cloneMe)
default

Sets this to be a clone of the given surface bundle.

Parameters
cloneMethe surface bundle to clone.

◆ operator=() [10/11]

SnapPeaCensusManifold& regina::SnapPeaCensusManifold::operator= ( const SnapPeaCensusManifold cloneMe)
default

Sets this to be a clone of the given SnapPea census manifold.

Parameters
cloneMethe census manifold to clone.

◆ operator=() [11/11]

TorusBundle& regina::TorusBundle::operator= ( const TorusBundle cloneMe)
default

Sets this to be a clone of the given torus bundle.

Parameters
cloneMethe torus bundle to clone.

◆ operator==() [1/6]

bool regina::Handlebody::operator== ( const Handlebody compare) const
inline

Determines whether this and the given handlebody represent the same 3-manifold.

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

◆ operator==() [2/6]

bool regina::LensSpace::operator== ( const LensSpace compare) const
inline

Determines whether this and the given lens space are homeomorphic 3-manifolds.

Note that this may be true even if they were initialised with different parameters.

Parameters
comparethe lens space with which this will be compared.
Returns
true if and only if this and the given lens space are homeomorphic.

◆ operator==() [3/6]

bool regina::SFSFibre::operator== ( const SFSFibre 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.

◆ operator==() [4/6]

bool regina::SFSpace::operator== ( const SFSpace compare) const

Determines whether this and the given structure contain precisely the same representations of precisely the same Seifert fibred spaces.

Note that this routine examines the particular representation of the Seifert fibred space. Different Seifert parameters that give the same 3-manifold will be regarded as not equal by this routine.

Parameters
comparethe representation with which this will be compared.
Returns
true if and only if this and the given Seifert fibred space representations are identical.

◆ operator==() [5/6]

bool regina::SimpleSurfaceBundle::operator== ( const SimpleSurfaceBundle compare) const
inline

Determines whether this and the given surface bundle represent the same 3-manifold.

Parameters
comparethe surface bundle with which this will be compared.
Returns
true if and only if this and the given surface bundle are homeomorphic.

◆ operator==() [6/6]

bool regina::SnapPeaCensusManifold::operator== ( const SnapPeaCensusManifold compare) const
inline

Determines whether this and the given structure represent the same 3-manifold from the SnapPea census.

As of Regina 5.0, this test respects the recent discovery that the manifolds x101 and x103 are homeomorphic. For details, see B.B., A duplicate pair in the SnapPea census, Experimental Mathematics, 23:170-173, 2014.

Parameters
comparethe structure with which this will be compared.
Returns
true if and only if this and the given structure represent the same SnapPea census manifold.

◆ operator[]()

SFSpace * regina::SFSAltSet::operator[] ( unsigned  which) const
inline

Returns the requested alternative space.

Parameters
whichindicates which of the alternatives should be returned; this must be between 0 and size()-1 inclusive.
Returns
the requested alternative space.

◆ p()

unsigned long regina::LensSpace::p ( ) const
inline

Returns the first parameter p of this lens space L(p,q).

See the class notes for details.

Returns
the first parameter.

◆ punctures() [1/2]

unsigned long regina::SFSpace::punctures ( ) const
inline

Returns the total number of punctures in the base orbifold.

In other words, this routine returns the total number of real torus or Klein bottle boundary components in the overall 3-manifold.

Note that reflector boundaries on the base orbifold are not counted here; only the ordinary boundary components that give rise to real 3-manifold boundaries are included.

Both untwisted and twisted punctures (giving rise to torus and Klein bottle boundaries respectively in the 3-manifold) are counted by this routine.

Returns
the total number of punctures.

◆ punctures() [2/2]

unsigned long regina::SFSpace::punctures ( bool  twisted) const
inline

Returns the number of punctures of the given type in the base orbifold.

In other words, this routine returns the number of real boundary components of the given type in the overall 3-manifold.

This routine either counts only twisted punctures (which give rise to Klein bottle boundaries), or only untwisted punctures (which give rise to torus boundaries).

Either way, reflector boundaries on the base orbifold are not counted here; only ordinary boundary components that give rise to real 3-manifold boundaries are considered.

Parameters
twistedtrue if only twisted punctures should be counted (those that give fibre-reversing paths and Klein bottle boundaries), or false if only untwisted punctures should be counted (those that are fibre-preserving and give torus boundaries).
Returns
the number of punctures of the given type.

◆ q()

unsigned long regina::LensSpace::q ( ) const
inline

Returns the second parameter q of this lens space L(p,q).

See the class notes for details.

The value of q returned will be the smallest q between 0 and p-1 inclusive that produces the same 3-manifold as this lens space. This means it might not be the value of q that was used to initialise this lens space.

◆ reduce()

void regina::SFSpace::reduce ( bool  mayReflect = true)

Reduces the parameters of this Seifert fibred space to a simpler form if possible, without changing the underlying fibration.

In some cases the parameters of the Seifert fibred space may be simplified by taking a mirror image of the entire 3-manifold. The argument mayReflect signifies whether this is allowed.

This routine will not change the curves made by the fibres and the base orbifold on any boundary components (i.e., boundaries caused by punctures in the base orbifold).

Warning
If mayReflect is true then the entire 3-manifold might be replaced with its mirror image, in which case any subsequent modifications (such as inserting additional fibres or altering the base orbifold) may give unexpected results.
Parameters
mayReflecttrue if we are allowed to take a mirror image of the entire 3-manifold, or false if we are not.

◆ reflect()

void regina::SFSpace::reflect ( )
inline

Replaces this space with its mirror image.

Specifically, all exceptional fibres and the obstruction constant b will be negated. Note that the obstruction constant will generally undergo further change as the exceptional fibres are standardised into the usual 0 <= beta < alpha form.

This routine will not change the curves made by the fibres and the base orbifold on any boundary components (i.e., boundaries caused by punctures in the base orbifold), with the exception that each base curve will be reflected.

Warning
The space is not reduced after reflecting. It may be that the space can be further simplified (especially in the case of non-orientable manifolds).

◆ reflected()

bool regina::SFSAltSet::reflected ( unsigned  which) const
inline

Returns whether or not a reflection was used when creating the requested alternative space.

This determines the conversion between boundary curves for all boundary tori after the first.

More specifically, if no reflection was used then the directed fibre and base curves are identical for the original and alternative spaces. If a reflection was used, then the directed fibres are identical but the directed base curves are reversed.

The conversion between curves on the first boundary torus is generally more complex, and is returned as a matrix by the conversion() routine.

Parameters
whichindicates which of the alternatives is being queried; this must be between 0 and size()-1 inclusive.
Returns
true if a reflection was used in creating the requested alternative space, or false if no reflection was used.

◆ reflectors() [1/2]

unsigned long regina::SFSpace::reflectors ( ) const
inline

Returns the total number of reflector boundary components of the base orbifold.

This includes both twisted and untwisted reflector boundaries.

Returns
the total number of reflector boundary components.

◆ reflectors() [2/2]

unsigned long regina::SFSpace::reflectors ( bool  twisted) const
inline

Returns the number of reflector boundary components of the given type in the base orbifold.

This either counts only twisted reflector boundaries, or only untwisted reflector boundaries.

Parameters
twistedtrue if only twisted reflector boundaries should be counted (those that give fibre-reversing paths), or false if only untwisted reflector boundaries should be counted.
Returns
the number of reflector boundaries of the given type.

◆ section()

char regina::SnapPeaCensusManifold::section ( ) const
inline

Returns the section of the SnapPea census to which this manifold belongs.

This will be one of the section constants defined in this class.

Returns
the section of the SnapPea census.

◆ sfs() [1/2]

const SFSpace & regina::GraphLoop::sfs ( ) const
inline

Returns a reference to the bounded Seifert fibred space that is joined to itself.

Returns
a reference to the bounded Seifert fibred space.

◆ sfs() [2/2]

const SFSpace & regina::GraphPair::sfs ( unsigned  which) const
inline

Returns a reference to one of the two bounded Seifert fibred spaces that are joined together.

Parameters
which0 if the first Seifert fibred space is to be returned, or 1 if the second space is to be returned.
Returns
a reference to the requested Seifert fibred space.

◆ SFSAltSet()

regina::SFSAltSet::SFSAltSet ( const SFSpace sfs)

Creates a new set of alternatives for the given Seifert fibred space.

Note that in general, none of the alternatives will have a representation identical to the given space (generally these alternative representations will be simpler if possible).

Precondition
The given Seifert fibred space has at least one torus boundary.
Parameters
sfsthe original Seifert fibred space for which we are creating a set of alternative representations.

◆ SFSFibre() [1/3]

regina::SFSFibre::SFSFibre ( )
inline

Creates a new uninitialised exceptional fibre.

◆ SFSFibre() [2/3]

regina::SFSFibre::SFSFibre ( const SFSFibre cloneMe)
default

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

Parameters
cloneMethe exceptional fibre to clone.

◆ SFSFibre() [3/3]

regina::SFSFibre::SFSFibre ( 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.

◆ SFSpace() [1/3]

regina::SFSpace::SFSpace ( )
inline

Creates a new Seifert fibred space with base orbifold the 2-sphere and no exceptional fibres.

◆ SFSpace() [2/3]

regina::SFSpace::SFSpace ( SFSpace::classType  useClass,
unsigned long  genus,
unsigned long  punctures = 0,
unsigned long  puncturesTwisted = 0,
unsigned long  reflectors = 0,
unsigned long  reflectorsTwisted = 0 
)
inline

Creates a new Seifert fibred space of the given class with the given base orbifold and no exceptional fibres.

Precondition
If there are no punctures or reflector boundary components, then useClass is one of the six classes o1, o2, n1, n2, n3 or n4. Likewise, if there are punctures and/or reflector boundary components, then useClass is one of the five classes bo1, bo2, bn1, bn2 or bn3.
If there are any twisted punctures or reflector boundary components, then useClass is either bo2 or bn3.
Parameters
useClassindicates whether the base orbifold is closed and/or orientable, and gives information about fibre-reversing paths in the 3-manifold. See the SFSpace class notes and the classType enumeration notes for details.
genusthe genus of the base orbifold (the number of tori or projective planes that it contains). Note that for non-orientable base surfaces, this is the non-orientable genus.
puncturesthe number of untwisted ordinary boundary components of the base orbifold. Here "ordinary" means that the puncture gives rise to a real 3-manifold boundary (i.e., this is not a reflector boundary of the base orbifold).
puncturesTwistedthe number of twisted ordinary boundary components of the base orbifold. Here "ordinary" means that the puncture gives rise to a real 3-manifold boundary (i.e., this is not a reflector boundary of the base orbifold).
reflectorsthe number of untwisted reflector boundary components of the base orbifold. These are in addition to the ordinary boundary components described by punctures.
reflectorsTwistedthe number of twisted reflector boundary components of the base orbifold. These are in addition to the ordinary boundary components described by puncturesTwisted.

◆ SFSpace() [3/3]

regina::SFSpace::SFSpace ( const SFSpace cloneMe)
default

Creates a new Seifert fibred space that is a clone of the given space.

Parameters
cloneMethe Seifert fibred space to clone.

◆ SimpleSurfaceBundle() [1/2]

regina::SimpleSurfaceBundle::SimpleSurfaceBundle ( const SimpleSurfaceBundle cloneMe)
default

Creates a clone of the given surface bundle.

Parameters
cloneMethe surface bundle to clone.

◆ SimpleSurfaceBundle() [2/2]

regina::SimpleSurfaceBundle::SimpleSurfaceBundle ( int  newType)
inline

Creates a new surface bundle of the given type.

Parameters
newTypethe specific type of surface bundle to represent. This must be one of the 3-manifold constants defined in this class.

◆ size()

unsigned regina::SFSAltSet::size ( ) const
inline

Returns the number of alternative spaces in this set.

◆ SnapPeaCensusManifold() [1/2]

regina::SnapPeaCensusManifold::SnapPeaCensusManifold ( char  newSection,
unsigned long  newIndex 
)
inline

Creates a new SnapPea census manifold with the given parameters.

Parameters
newSectionthe section of the SnapPea census to which this manifold belongs. This must be one of the section constants defined in this class.
newIndexspecifies which particular manifold within the given section is represented. The indices for each section begin counting at zero, and so this index must be between 0 and k-1, where k is the total number of manifolds in the given section.

◆ SnapPeaCensusManifold() [2/2]

regina::SnapPeaCensusManifold::SnapPeaCensusManifold ( const SnapPeaCensusManifold cloneMe)
default

Creates a clone of the given SnapPea census manifold.

Parameters
cloneMethe census manifold to clone.

◆ structure()

std::string regina::Manifold::structure ( ) const

Returns details of the structure of this 3-manifold that might not be evident from its common name.

For instance, for an orbit space S^3/G this routine might return the full Seifert structure.

This routine may return the empty string if no additional details are deemed necessary.

Returns
a string describing additional structural details.

◆ TeXName()

std::string regina::Manifold::TeXName ( ) const

Returns the common name of this 3-manifold in TeX format.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Returns
the common name of this 3-manifold in TeX format.

◆ TorusBundle() [1/4]

regina::TorusBundle::TorusBundle ( )
inline

Creates a new trivial torus bundle over the circle.

In other words, this routine creates a torus bundle with the identity monodromy.

◆ TorusBundle() [2/4]

regina::TorusBundle::TorusBundle ( const Matrix2 newMonodromy)
inline

Creates a new torus bundle over the circle using the given monodromy.

Precondition
The given matrix has determinant +1 or -1.
Parameters
newMonodromydescribes precisely how the upper and lower torus boundaries are identified. See the class notes for details.

◆ TorusBundle() [3/4]

regina::TorusBundle::TorusBundle ( const TorusBundle cloneMe)
default

Creates a clone of the given torus bundle.

Parameters
cloneMethe torus bundle to clone.

◆ TorusBundle() [4/4]

regina::TorusBundle::TorusBundle ( long  mon00,
long  mon01,
long  mon10,
long  mon11 
)
inline

Creates a new torus bundle over the circle using the given monodromy.

The four elements of the monodromy matrix are passed separately. They combine to give the full monodromy matrix M as follows:

          [ mon00  mon01 ]
    M  =  [              ]
          [ mon10  mon11 ]
Precondition
The monodromy matrix formed from the given parameters has determinant +1 or -1.
Parameters
mon00the (0,0) element of the monodromy matrix.
mon01the (0,1) element of the monodromy matrix.
mon10the (1,0) element of the monodromy matrix.
mon11the (1,1) element of the monodromy matrix.

◆ type()

int regina::SimpleSurfaceBundle::type ( ) const
inline

Returns the specific type of surface bundle being represented.

Returns
the type of surface bundle. This will be one of the 3-manifold constants defined in this class.

◆ writeName() [1/10]

virtual std::ostream& regina::Manifold::writeName ( std::ostream &  out) const
pure virtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implemented in regina::TorusBundle, regina::SnapPeaCensusManifold, regina::SimpleSurfaceBundle, regina::SFSpace, regina::LensSpace, regina::Handlebody, regina::GraphTriple, regina::GraphPair, and regina::GraphLoop.

◆ writeName() [2/10]

std::ostream& regina::GraphLoop::writeName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeName() [3/10]

std::ostream& regina::GraphPair::writeName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeName() [4/10]

std::ostream& regina::GraphTriple::writeName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeName() [5/10]

std::ostream& regina::Handlebody::writeName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeName() [6/10]

std::ostream& regina::LensSpace::writeName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeName() [7/10]

std::ostream & regina::SFSpace::writeName ( std::ostream &  out) const
inlineoverridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeName() [8/10]

std::ostream& regina::SimpleSurfaceBundle::writeName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeName() [9/10]

std::ostream& regina::SnapPeaCensusManifold::writeName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeName() [10/10]

std::ostream& regina::TorusBundle::writeName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeStructure() [1/3]

std::ostream & regina::Manifold::writeStructure ( std::ostream &  out) const
inlinevirtual

Writes details of the structure of this 3-manifold that might not be evident from its common name to the given output stream.

For instance, for an orbit space S^3/G this routine might write the full Seifert structure.

This routine may write nothing if no additional details are deemed necessary. The default implementation of this routine behaves in this way.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Reimplemented in regina::SnapPeaCensusManifold, and regina::SFSpace.

◆ writeStructure() [2/3]

std::ostream & regina::SFSpace::writeStructure ( std::ostream &  out) const
inlineoverridevirtual

Writes details of the structure of this 3-manifold that might not be evident from its common name to the given output stream.

For instance, for an orbit space S^3/G this routine might write the full Seifert structure.

This routine may write nothing if no additional details are deemed necessary. The default implementation of this routine behaves in this way.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Reimplemented from regina::Manifold.

◆ writeStructure() [3/3]

std::ostream& regina::SnapPeaCensusManifold::writeStructure ( std::ostream &  out) const
overridevirtual

Writes details of the structure of this 3-manifold that might not be evident from its common name to the given output stream.

For instance, for an orbit space S^3/G this routine might write the full Seifert structure.

This routine may write nothing if no additional details are deemed necessary. The default implementation of this routine behaves in this way.

Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Reimplemented from regina::Manifold.

◆ writeTeXName() [1/10]

virtual std::ostream& regina::Manifold::writeTeXName ( std::ostream &  out) const
pure virtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implemented in regina::TorusBundle, regina::SnapPeaCensusManifold, regina::SimpleSurfaceBundle, regina::SFSpace, regina::LensSpace, regina::Handlebody, regina::GraphTriple, regina::GraphPair, and regina::GraphLoop.

◆ writeTeXName() [2/10]

std::ostream& regina::GraphLoop::writeTeXName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTeXName() [3/10]

std::ostream& regina::GraphPair::writeTeXName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTeXName() [4/10]

std::ostream& regina::GraphTriple::writeTeXName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTeXName() [5/10]

std::ostream& regina::Handlebody::writeTeXName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTeXName() [6/10]

std::ostream& regina::LensSpace::writeTeXName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTeXName() [7/10]

std::ostream & regina::SFSpace::writeTeXName ( std::ostream &  out) const
inlineoverridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTeXName() [8/10]

std::ostream& regina::SimpleSurfaceBundle::writeTeXName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTeXName() [9/10]

std::ostream& regina::SnapPeaCensusManifold::writeTeXName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTeXName() [10/10]

std::ostream& regina::TorusBundle::writeTeXName ( std::ostream &  out) const
overridevirtual

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:\n The parameter out does not exist; instead
standard output will always be used. Moreover, this routine returns None.
Parameters
outthe output stream to which to write.
Returns
a reference to the given output stream.

Implements regina::Manifold.

◆ writeTextLong()

void regina::Manifold::writeTextLong ( std::ostream &  out) const
inline

Writes a detailed text representation of this object to the given output stream.

Subclasses must not override this routine. They should override writeName() and writeStructure() instead.

Python:\n Not present.
Parameters
outthe output stream to which to write.

◆ writeTextShort()

void regina::Manifold::writeTextShort ( std::ostream &  out) const
inline

Writes a short text representation of this object to the given output stream.

Subclasses must not override this routine. They should override writeName() instead.

Python:\n Not present.
Parameters
outthe output stream to which to write.

◆ ~GraphLoop()

regina::GraphLoop::~GraphLoop ( )

Destroys this structure along with the bounded Seifert fibred space and the matching matrix.

◆ ~GraphPair()

regina::GraphPair::~GraphPair ( )

Destroys this structure along with the component Seifert fibred spaces and the matching matrix.

◆ ~GraphTriple()

regina::GraphTriple::~GraphTriple ( )

Destroys this structure along with the component Seifert fibred spaces and matching matrices.

◆ ~Handlebody()

regina::Handlebody::~Handlebody ( )
inlinevirtual

Destroys this handlebody.

◆ ~LensSpace()

regina::LensSpace::~LensSpace ( )
inlinevirtual

Destroys this lens space.

◆ ~Manifold()

regina::Manifold::~Manifold ( )
inlinevirtual

A destructor that does nothing.

◆ ~SFSpace()

regina::SFSpace::~SFSpace ( )
inlinevirtual

Destroys this Seifert fibred space.

◆ ~SnapPeaCensusManifold()

regina::SnapPeaCensusManifold::~SnapPeaCensusManifold ( )
inlinevirtual

Destroys this structure.

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

◆ RP2xS1

const int regina::SimpleSurfaceBundle::RP2xS1
static

Represents the projective plane bundle over the circle.

◆ S2xS1

const int regina::SimpleSurfaceBundle::S2xS1
static

Represents the orientable 2-sphere bundle over the circle.

◆ S2xS1_TWISTED

const int regina::SimpleSurfaceBundle::S2xS1_TWISTED
static

Represents the non-orientable twisted 2-sphere bundle over the circle.

◆ SEC_5

const char regina::SnapPeaCensusManifold::SEC_5
static

Represents the collection of manifolds formed from five or fewer tetrahedra (both orientable and non-orientable).

There are 415 manifolds in this section.

◆ SEC_6_NOR

const char regina::SnapPeaCensusManifold::SEC_6_NOR
static

Represents the collection of non-orientable manifolds formed from six tetrahedra.

There are 259 manifolds in this section.

◆ SEC_6_OR

const char regina::SnapPeaCensusManifold::SEC_6_OR
static

Represents the collection of orientable manifolds formed from six tetrahedra.

There are 962 manifolds in this section.

◆ SEC_7_NOR

const char regina::SnapPeaCensusManifold::SEC_7_NOR
static

Represents the collection of non-orientable manifolds formed from seven tetrahedra.

There are 887 manifolds in this section.

◆ SEC_7_OR

const char regina::SnapPeaCensusManifold::SEC_7_OR
static

Represents the collection of orientable manifolds formed from seven tetrahedra.

There are 3552 manifolds in this section.


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