relative_homology#

This module contains a lazy implementation of a relative homology, $H_1(S,Sigma; R)$, where $S$ is a similarity surface, $Sigma$ is the singularities or vertices, and $R$ is a ring.

This implementation works for finite or infinite surfaces. For infinite surfaces, we define relative homology formally. It is simply $R^E$ where $E$ is the edge set modulo equivalences of two types: 1) If $e$ is an edge, and $e’$ is its opposite edge oriented counterclockwise from the polygon they bound then $e+e’=0$ in homology. 2) The sum of edges around a polygon is zero.

class flatsurf.geometry.relative_homology.RelativeHomology(surface, base_ring=Integer Ring)[source]#
Element#

alias of RelativeHomologyClass

base_ring()[source]#
edge(label, e)[source]#

Return the homology class of the edge with the provided polygon label and edge index oriented counter-clockwise around the polygon.

zero()[source]#
class flatsurf.geometry.relative_homology.RelativeHomologyClass(parent, d)[source]#

Do not call directly!

edges_with_weights()[source]#

Returns a list of items of the form ((label,e),w) where (label,e) represents and edge and w represents the non-zero weight assigned.

weight(label, e)[source]#

Return the weight of the indexed edge.

weighted_edges()[source]#

Return the set of pairs (label,e) representing edges with non-zero weights.

flatsurf.geometry.relative_homology.cmp(x, y)[source]#