Regina Calculation Engine
Public Member Functions | List of all members
regina::SFSAltSet Class Reference

Provides a variety of alternative representations of a single bounded Seifert fibred space. More...

#include <manifold/sfsaltset.h>

Public Member Functions

 SFSAltSet (const SFSpace *sfs)
 Creates a new set of alternatives for the given Seifert fibred space. More...
 
void deleteAll ()
 Destroys all of the alternative representations in this set. More...
 
void deleteAll (SFSpace *exception)
 Destroys all of the alternative representations in this set, except for the given exception. More...
 
void deleteAll (SFSpace *exception1, SFSpace *exception2)
 Destroys all of the alternative representations in this set, except for the two given exceptions. More...
 
unsigned size () const
 Returns the number of alternative spaces in this set. More...
 
SFSpaceoperator[] (unsigned which) const
 Returns the requested alternative space. More...
 
const Matrix2conversion (unsigned which) const
 Returns the conversion matrix for the requested alternative space. More...
 
bool reflected (unsigned which) const
 Returns whether or not a reflection was used when creating the requested alternative space. More...
 

Detailed Description

Provides a variety of alternative representations of a single bounded Seifert fibred space.

These alternatives are made possible by altering the curves made by the fibre and base orbifold on a boundary torus.

This class is designed to help in finding simple representations of graph manifolds (or, indeed, any non-geometric manifolds containing Seifert fibred blocks).

Each alternative comes with its own representation of the original Seifert fibred space, along with instructions for converting fibre/base curves on the boundary tori between the original and alternative spaces.

The alternative representations will generally be as simple as possible (and indeed simpler than the original where possible). In particular, each alternative space is guaranteed to have obstruction constant zero. The base orbifold may be changed entirely (for instance, an orientable Seifert fibred space over the Mobius band with no exceptional fibres will be converted to a Seifert fibred space over the disc with two exceptional fibres).

The conversions between boundary curves are described by a conversion matrix M as follows. Consider the first boundary torus. Let f_old and o_old be directed curves on this boundary representing the fibre and base orbifold of the original space, and let f_alt and o_alt be directed curves on this same boundary representing the fibre and base orbifold of the new alternative space. Then

    [f_alt]         [f_old]
    [     ]  =  M * [     ].
    [o_alt]         [o_old]

Note that this only applies to the first boundary torus! If the Seifert fibred space has more than one boundary, then for the remaining boundaries the unoriented fibre and base curves remain the same. More specifically, the directed fibre remains identical, and the directed curve representing the base orbifold is reversed if and only if a reflection was used in creating the alternative space, as returned by reflected().

See the page on Notation for Seifert fibred spaces for details on some of the terminology used above.

Warning
When an object of this class is destroyed, the alternative spaces it holds are not destroyed with it. One of the deleteAll() routines must be explicitly called to clean up properly.
Python:\n Not present.

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

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