regina::HomologicalData Class Reference
Triangulations

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

`#include <triangulation/homologicaldata.h>`

Inheritance diagram for regina::HomologicalData:

## 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 MarkedAbelianGroup & | homology (unsigned q)
| This routine gives access to the manifold's homology computed with the regular CW-decomposition. More...
const MarkedAbelianGroup & | bdryHomology (unsigned q)
| This routine gives access to the homology of the boundary of the manifold, computed with the regular CW-decomposition. More...
const HomMarkedAbelianGroup & | bdryHomologyMap (unsigned q)
| This routine gives access to the homomorphism from the homology of the boundary to the homology of the manifold. More...
const MarkedAbelianGroup & | dualHomology (unsigned q)
| This routine gives access to the manifold's homology computed with the dual CW-decomposition. More...
const HomMarkedAbelianGroup & | h1CellAp ()
| 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:

- the manifold's homology;
- the boundary's homology;
- the map from boundary -> manifold;
- the dual cellular homology;
- the isomorphism on H1 from the dual cellular homology to the regular cellular homology;
- the H1 torsion form;
- the Kawauchi-Kojima invariants of torsion linking forms.

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.

- 0-cells: The non-ideal vertices given in the order vertices.begin() to vertices.end(), followed by the ideal endpoints of the edges edges.begin() to edges.end() with endpoints for each edge taken in the order 0,1.
- 1-cells: edges.begin() to edges.end(), followed by the ideal edges of faces.begin() to faces.end() in order 0,1,2.
- 2-cells: faces.begin() to faces.end(), followed by the ideal faces of tetrahedra.begin() through tetrahedra.end() in order 0,1,2,3.
- 3-cells: tetrahedra.begin() through tetrahedra.end().

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.

- 0-cells: tetrahedra.begin() through tetrahedra.end().
- 1-cells: the non-boundary faces.begin() through faces.end().
- 2-cells: the non-boundary edges.begin() through edges.end().
- 3-cells: the non-boundary, non-ideal vertices.begin() through vertices.end().

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

inline inherited

A default implementation for detailed output.

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

Python:\n Not present.

Parameters

  out | the output stream to which to write.

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

- triangulation/homologicaldata.h

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