curver.kernel.moves module

A module for representing basic ways of changing triangulations. These moves can also track how laminations and homology classes move through those changes.

class curver.kernel.moves.EdgeFlip(source_triangulation, target_triangulation, edge)[source]

Bases: curver.kernel.moves.FlipGraphMove

Represents the change to a curve caused by flipping an edge.

apply_homology(homology_class)[source]

Return the homology class obtained by mapping the given homology class through this move.

apply_lamination(lamination)[source]

Return the lamination obtained by mapping the given lamination through this move.

flip_mapping()[source]

Return a Mapping equal to self.encoding() but that only uses EdgeFlips and Isometries.

inverse()[source]

Return the inverse of this move.

package()[source]

Return a small amount of data such that self.source_triangulation.encode([data]) == self.encode().

class curver.kernel.moves.FlipGraphMove(source_triangulation, target_triangulation)[source]

Bases: curver.kernel.moves.Move

A Move between two triangulations in the same flip graph.

encode()[source]

Return the Encoding induced by this move.

flip_mapping()[source]

Return a Mapping equal to self.encoding() but that only uses EdgeFlips and Isometries.

class curver.kernel.moves.Isometry(source_triangulation, target_triangulation, label_map)[source]

Bases: curver.kernel.moves.FlipGraphMove

This represents an isometry from one Triangulation to another.

Triangulations can create the isometries between themselves and this is the standard way users are expected to create these.

apply_homology(homology_class)[source]

Return the homology class obtained by mapping the given homology class through this move.

apply_lamination(lamination)[source]

Return the lamination obtained by mapping the given lamination through this move.

flip_mapping()[source]

Return a Mapping equal to self.encoding() but that only uses EdgeFlips and Isometries.

inverse()[source]

Return the inverse of this move.

package()[source]

Return a small amount of data such that self.source_triangulation.encode([data]) == self.encode().

class curver.kernel.moves.Move(source_triangulation, target_triangulation)[source]

Bases: object

A basic move from one triangulation to another.

apply_homology(homology_class)[source]

Return the homology class obtained by mapping the given homology class through this move.

apply_lamination(lamination)[source]

Return the lamination obtained by mapping the given lamination through this move.

encode()[source]

Return the Encoding induced by this move.

inverse()[source]

Return the inverse of this move.

package()[source]

Return a small amount of data such that self.source_triangulation.encode([data]) == self.encode().