## Combinatorics

FACETS : incidence_matrix
The vertices of the facets of the surface.
F_VECTOR : vector<cardinal>
fk is the number of k-faces.
F2_VECTOR : matrix<cardinal>
fik is the number of incident pairs of i-faces and k-faces; the main diagonal contains the F_VECTOR.
EULER_CHARACTERISTIC : scalar
The Euler characteristic of the surface
GENUS : scalar
The genus of the surface
POLYGON_SIZES : array< tuple<cardinal,cardinal> >
Lists for each occurring size (= number of incident vertices or edges) of a 2-face how many there are.
VERTEX_SIZES : array< tuple<cardinal,cardinal> >
Lists for each occurring VERTEX_DEGREES how many there are.
ROTATION_SCHEME : array< list< cardinal > >
This is an ordered version of GRAPH. The neighbors are ordered cyclically as they occur in the link of each vertex.
HASSE_DIAGRAM : face_lattice
The face lattice of the surface organized as a directed graph. Each node corresponds to some proper face of the surface. The nodes corresponding to the vertices and facets appear in the same order as the elements of GEOMETRIC_REALIZATION and FACETS properties.
Two special nodes represent the whole surface and the empty face.
GRAPH : graph
The vertex-edge graph of the surface.
VERTEX_DEGREES : array<cardinal>
Degrees of vertices in the GRAPH.
DUAL_GRAPH : graph
The facet-edge graph of the surface.

## Basic properties

VERTEX_LABELS : array<label>
Labels of the vertices.
N_VERTICES : cardinal
Number of vertices.
N_FACETS : cardinal
Number of FACETS.

## Visualization

GEOMETRIC_REALIZATION : matrix
Coordinates for the vertices of the surface, such that surface is embedded in some Rd
FACETS_CYCLIC : array< list<cardinal> >
Reordered FACETS such that they are in the order of appearance around an n-gon
NEIGHBOR_FACETS_CYCLIC : array< list<cardinal> >
Reordered DUAL_GRAPH for surfaces. The neighbor facets are listed in the order corresponding to FACETS_CYCLIC, so that the first two vertices in FACETS_CYCLIC make up the ridge to the first neighbor facet and so on.
FTV_CYCLIC : array< list<cardinal> >
Reordered transposed FACETS. Dual to FACETS_CYCLIC.

## Topology

MORSE_MATCHING : graph
A Morse matching is a reorientation of the arcs in the Hasse diagram of a simplicial complex such that at most one arc incident to each face is reoriented (matching condition) and the resulting orientation is acyclic (acyclicity condition). Morse matchings capture the main structure of discrete Morse functions, see

> Robin Forman: Morse Theory for Cell-Complexes,
> Advances in Math., 134 (1998), pp. 90-145.

This property is computed by one of two heuristics. The default heuristic is a simple greedy algorithm (greedy). The alternative is to use a canceling algorithm due to Forman (cancel). Note that the computation of a Morse matching of largest size is NP-hard. See

> Michael Joswig, Marc E. Pfetsch: Computing Optimal Morse Matchings
> SIAM J. Discrete Math., 2006, to appear

MORSE_MATCHING_SIZE : cardinal
Size of the computed Morse matching.
MORSE_MATCHING_CRITICAL_FACES : array<set>
The critical faces of the computed Morse matching, i.e., the faces not incident to any reoriented arc (not matched).
MORSE_MATCHING_CRITICAL_FACE_VECTOR : array<cardinal>
The vector of critical faces in each dimension.
MORSE_MATCHING_N_CRITICAL_FACES : cardinal
The number of critical faces.