====== BigObject Curve ====== //from application [[..:tropical|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. ---- {{anchor:n_edges:}} ? **''N_EDGES''** :: Number of edges of the underlying graph. ? Type: :''[[..:common#Int |Int]]'' ---- {{anchor:n_vertices:}} ? **''N_VERTICES''** :: Number of vertices (or nodes) of the underlying graph. ? Type: :''[[..:common#Int |Int]]'' ---- ==== Weights and lattices ==== These properties relate to the weights of a tropical cycle. ---- {{anchor:edges_through_vertices:}} ? **''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: :''[[..:common#IncidenceMatrix |IncidenceMatrix]]<[[..:common#NonSymmetric |NonSymmetric]]>'' ---- {{anchor:edge_lengths:}} ? **''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: :''[[..:common#Vector |Vector]]'' ---- {{anchor:genus:}} ? **''GENUS''** :: Genus of the abstract tropical curve, taking ''[[..:tropical:Curve#VERTEX_WEIGHTS |VERTEX_WEIGHTS]]'' into account ? Type: :''[[..:common#Int |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 ---- {{anchor:inequalities:}} ? **''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: :''[[..:common#Matrix |Matrix]]'' ---- {{anchor:marked_edges:}} ? **''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: :''[[..:common#Set |Set]]<[[..:common#Int |Int]]>'' ---- {{anchor:moduli_cell:}} ? **''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: :''[[..:topaz:GeometricSimplicialComplex |GeometricSimplicialComplex]]<[[..:common#Rational |Rational]]>'' ---- {{anchor:vertex_weights:}} ? **''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: :''[[..:common#Array |Array]]<[[..:common#Int |Int]]>'' ----