curver.kernel.encoding module

A module for representing and manipulating maps between Triangulations.

class curver.kernel.encoding.Encoding(sequence)[source]

Bases: object

This represents a map between two Triangulations.

The map is given by a sequence of Moves which act from right to left.

inverse()[source]

Return the inverse of this encoding.

package()[source]

Return a small amount of info that self.source_triangulation can use to reconstruct this triangulation.

class curver.kernel.encoding.Mapping(sequence)[source]

Bases: curver.kernel.encoding.Encoding

An Encoding where every move is a FlipGraphMove.

Hence this encoding is a sequence of moves in the same flip graph.

flip_mapping()[source]

Return a Mapping equal to self that only uses EdgeFlips and Isometries.

homology_matrix()[source]

Return a matrix describing the action of this mapping on first homology (relative to the punctures).

The matrix is given with respect to the homology bases of the source and target triangulations.

intersection_matrix()[source]

Return the matrix M = {signed_intersection(self(e_i), e’_j)}_{ij}. Here e_i and e’j are the edges of self.source_triangulation and self.target_triangulation respectively.

Except when on S_{1,1}, this uniquely determines self.

simplify()[source]

Return a new Mapping that is equal to self.

This is obtained by combing the image of the source triangulation under self and so is (hopefully) simpler than self since it depends only on the endpoints.

vertex_map()[source]

Return the dictionary (vertex, self(vertex)) for each vertex in self.source_triangulation.

When self is a MappingClass this is a permutation of the vertices.

class curver.kernel.encoding.MappingClass(sequence)[source]

Bases: curver.kernel.encoding.Mapping

An Mapping where self.source_triangulation == self.target_triangulation.

asymptotic_translation_length()[source]

Return the asymptotic translation length of this mapping class on the curve complex.

From Algorithm 6 of [BellWebb16].

is_identity()[source]

Return if this mapping class is the identity.

is_in_torelli()[source]

Return whether this mapping class is in the Torelli subgroup.

is_periodic()[source]

Return if this mapping class has finite order.

is_pseudo_anosov()[source]

Return if this mapping class is pseudo-Anosov.

is_reducible()[source]

Return if this mapping class is reducible (and not periodic).

nielsen_thurston_type()[source]

Return the Nielsen–Thurston type of this mapping class.

order()[source]

Return the order of this mapping class.

If this has infinite order then return 0.

positive_asymptotic_translation_length()[source]

Return whether the asymptotic translation length of this mapping class on the curve complex is positive

This uses Remark 4.7 of [BellWebb16] and so is more efficient than doing:

self.asymptotic_translation_length() > 0
curver.kernel.encoding.create_encoding(source_triangulation, sequence)[source]

Return the encoding defined by sequence starting at source_triangulation.

This is only really here to help with pickling. Users should use source_triangulation.encode(sequence) directly.