Table of Contents

BigObject Curve<Scalar>

from application tropical

Abstract tropical curve, possibly with marked edges, edge lengths, vertex weights. Additional functionality for moduli space computations.

Type Parameters:

Scalar: Edge length type.

Example:

We construct a tropical quartic curve of genus 3. Edge labels as in Fig. 4 (000) on Brodsky et al., Res. Math. Sci (2015), doi:10.1186/s40687-014-0018-1.

 > ($u,$v,$w,$x,$y,$z)=0..5;
 > $skeleton = new IncidenceMatrix([[$u,$v,$x],[$v,$w,$z],[$u,$w,$y],[$x,$y,$z]]);
 > $quartic = new tropical::Curve(EDGES_THROUGH_VERTICES=>$skeleton, EDGE_LENGTHS=>[1,2,3,4,5,6]);

Properties

Combinatorics

These properties capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.


N_EDGES

Number of edges of the underlying graph.

Type:
Int

N_VERTICES

Number of vertices (or nodes) of the underlying graph.

Type:
Int

Weights and lattices

These properties relate to the weights of a tropical cycle.


EDGES_THROUGH_VERTICES

The rows of this IncidenceMatrix correspond to the nodes of the tropical graph, the columns to the edges. Therefore, each row records the indices of the edges incident to that vertex.

Type:

EDGE_LENGTHS

Each edge may have a Scalar length. These are taken into account when determining isomorphism, but not when calculating a MODULI_CELL.

Type:
Vector<Scalar>

GENUS

Genus of the abstract tropical curve, taking VERTEX_WEIGHTS into account

Type:
Int
Example:

with weights explicitly given

 > $C = new Curve(EDGES_THROUGH_VERTICES=>[[0,1],[1]], VERTEX_WEIGHTS=>[0,1]);
 > print $C->GENUS;
 2
Example:

genus as abstract graph

 > $K4 = new Curve(EDGES_THROUGH_VERTICES=>[[0,1,2],[0,3,4],[1,3,5],[2,4,5]]);
 > print $K4->GENUS;
 3


INEQUALITIES

Some additional inequalities may be imposed on the lengths of edges. The columns of this Matrix correspond to the columns of EDGES_THROUGH_VERTICES.

Type:

MARKED_EDGES

Some edges can be “marked”, which means they go off to infinity, and may not be permuted by any automorphism. By default there are no marked edges.

Type:
Set<Int>

MODULI_CELL

The simplicial complex that records exactly one vertex for each isomorphism class of assignments of lengths to the edges. See the documentation of the function moduli_cell() for an example.

Type:

VERTEX_WEIGHTS

Each vertex may have an integer weight, which is affected by edge contractions: if a loop on that vertex is contracted, the weight increases by 1, if a non-loop edge incident to that vertex is contracted, the new weight is the sum of the weights of the two endpoints. Default weights are zero.

Type: