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

Data type that deals with all the detailed homological information in a manifold. More...

#include <triangulation/homologicaldata.h>

Inheritance diagram for regina::HomologicalData:
regina::ShortOutput< HomologicalData > regina::Output< HomologicalData, false >

Public Member Functions

 HomologicalData (const Triangulation< 3 > &input)
 Takes as input a triangulation. More...
 
 HomologicalData (const HomologicalData &h)
 Copy constructor. More...
 
 ~HomologicalData ()
 Destructor. More...
 
void writeTextShort (std::ostream &out) const
 Writes a short text representation of this object to the given output stream. More...
 
const MarkedAbelianGrouphomology (unsigned q)
 This routine gives access to the manifold's homology computed with the regular CW-decomposition. More...
 
const MarkedAbelianGroupbdryHomology (unsigned q)
 This routine gives access to the homology of the boundary of the manifold, computed with the regular CW-decomposition. More...
 
const HomMarkedAbelianGroupbdryHomologyMap (unsigned q)
 This routine gives access to the homomorphism from the homology of the boundary to the homology of the manifold. More...
 
const MarkedAbelianGroupdualHomology (unsigned q)
 This routine gives access to the manifold's homology computed with the dual CW-decomposition. More...
 
const HomMarkedAbelianGrouph1CellAp ()
 Returns the isomorphism from dualHomology(1) to homology(1) given by a cellular approximation to the identity map on the manifold. More...
 
unsigned long countStandardCells (unsigned dimension)
 Returns the number of cells of the given dimension in the standard genuine CW-decomposition of the manifold. More...
 
unsigned long countDualCells (unsigned dimension)
 Returns the number of cells of the given dimension in the dual CW-decomposition of the manifold. More...
 
unsigned long countBdryCells (unsigned dimension)
 Returns the number of cells of the given dimension in the standard CW-decomposition of the boundary of the manifold. More...
 
long eulerChar ()
 The proper Euler characteristic of the manifold, computed from the dual CW-decomposition. More...
 
const std::vector< std::pair< Integer, std::vector< unsigned long > > > & torsionRankVector ()
 Returns the torsion form rank vector. More...
 
const std::string & torsionRankVectorString ()
 Same as torsionRankVector() but returns as a human-readable string. More...
 
const std::vector< LargeInteger > & torsionSigmaVector ()
 Returns the 2-torsion sigma vector. More...
 
const std::string & torsionSigmaVectorString ()
 Same as torsionSigmaVector() but returns as a human-readable string. More...
 
const std::vector< std::pair< Integer, std::vector< int > > > & torsionLegendreSymbolVector ()
 Returns the odd p-torsion Legendre symbol vector. More...
 
const std::string & torsionLegendreSymbolVectorString ()
 Same as torsionLegendreSymbolVector() but returns as a human-readable string. More...
 
bool formIsHyperbolic ()
 Returns true iff torsion linking form is ‘hyperbolic’ in the linking-form sense of the word. More...
 
bool formIsSplit ()
 Returns true iff the torsion linking form is split. More...
 
bool formSatKK ()
 Returns true iff the torsion linking form satisfies the Kawauchi-Kojima 2-torsion condition. More...
 
const std::string & embeddabilityComment ()
 Returns a comment on whether the manifold might embed in a homology 3-sphere or 4-sphere. More...
 
void writeTextLong (std::ostream &out) const
 A default implementation for detailed output. More...
 
std::string str () const
 Returns a short text representation of this object. More...
 
std::string utf8 () const
 Returns a short text representation of this object using unicode characters. More...
 
std::string detail () const
 Returns a detailed text representation of this object. More...
 

Detailed Description

Data type that deals with all the detailed homological information in a manifold.

This information includes:

This class takes a "least effort" approach to all computations. It only computes what is neccessary for your requests. It also keeps a record of all previous computations you've made. If a computation can be sped up by not recomputing some data, it takes that short-cut.

All these algorithms use two transverse CW decompositions of the manifold. They correspond to the (possibly ideal) triangulation native to Regina, and the dual polyhedral (CW) decomposition which appears in Seifert and Threlfall's textbook.

In the following lists we describe the canonical ordering of both the cells and the dual cells of the given triangulation.

First we list the cell orderings for the standard CW decomposition, which most closely resembles the ideal triangulation.

Next we list the cell orderings for the dual CW decomposition: if the standard CW decomposition came from a morse function f, this would be the one for -f.

This class will eventually be removed in a future release of Regina. A new and more flexible class called NCellularData will take its place.

Author
Ryan Budney

Member Function Documentation

◆ detail()

std::string regina::Output< HomologicalData , supportsUtf8 >::detail ( ) const
inherited

Returns a detailed text representation of this object.

This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.

Returns
a detailed text representation of this object.

◆ str()

std::string regina::Output< HomologicalData , supportsUtf8 >::str ( ) const
inherited

Returns a short text representation of this object.

This text should be human-readable, should fit on a single line, and should not end with a newline. Where possible, it should use plain ASCII characters.

Python:\n In addition to str(), this is also used as the
Python "stringification" function __str__().
Returns
a short text representation of this object.

◆ utf8()

std::string regina::Output< HomologicalData , supportsUtf8 >::utf8 ( ) const
inherited

Returns a short text representation of this object using unicode characters.

Like str(), this text should be human-readable, should fit on a single line, and should not end with a newline. In addition, it may use unicode characters to make the output more pleasant to read. This string will be encoded in UTF-8.

Returns
a short text representation of this object.

◆ writeTextLong()

void regina::ShortOutput< HomologicalData , false >::writeTextLong ( std::ostream &  out) const
inlineinherited

A default implementation for detailed output.

This routine simply calls T::writeTextShort() and appends a final newline.

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

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