Module cvolume

cvolume.cvolume.CKazarian(g, k)[source]

Return Kazarian constant for recursion on volumes of principal strata.

cvolume.cvolume.asymptotic_volume(stratum)[source]

Return conjectural asymptotics for the volume of the stratum from [ADGZZ]. Note that formula is only conjectured in the case when the number of poles is logarithmically small compared to the genus.

cvolume.cvolume.completed_volume(stratum, with_pi=True, verbose=False, one_vertex=False)[source]

Return the completed volume of the stratum.

INPUT:

  • stratum – list, a list of orders of zeros of the stratum
  • with_pi – boolean (default True), when False returns completed volume as a rational number (volume divided by an appropriate degree of pi
  • verbose – boolean (default False), when True prints progress of the computation: time to generate and the number of stable graphs in each codimension and in total; progress of computing contribution of stable graphs
  • one_vertex – boolean (default False), when True only computed contribution of one-vertex labeled stable graphs.

EXAMPLES:

Here we compute completed volume of an empty stratum \(\mathcal{Q}(3,1)\):

sage: from cvolume import completed_volume 
sage: completed_volume([3, 1])
23/90*pi^4

Here we demonstrate the verbose mode by computing completed volume of stratum \(\mathcal{Q}(1,-1)\):

sage: completed_volume([3, 1, 1, -1], verbose = True)
Computing completed volume of stratum [3, 1, 1, -1]...
Generated 2 codimension 1 graphs in ... s
Generated 4 codimension 2 graphs in ... s
Generated 3 codimension 3 graphs in ... s
The total number of stable graphs for stratum [3, 1, 1, -1] is: 9.
Generated all stable graphs for stratum [3, 1, 1, -1] in: ... s
Computed contribution of 9/9 graphs. Time elapsed: ... s
Completed volume of [3, 1, 1, -1] is computed in: ... s
Completed volume of [3, 1, 1, -1] is: 7/60*pi^6
7/60*pi^6

Here we compute one-vertex graphs contribution to the completed volume of \(\mathcal{Q}(3,1,1,-1)\):

sage: completed_volume([3, 1, 1, -1], one_vertex=True)
1346/14175*pi^6

Here are some examples for principal strata, where completed volume coincides with Masur-Veech volume:

sage: assert completed_volume([1, -1, -1, -1, -1, -1]) == 1*pi^4 
sage: assert completed_volume([1, 1, -1, -1]) == 1/3*pi^4
sage: assert completed_volume([1, -1]) == 2/3*pi^2
sage: assert completed_volume([-1, -1, -1, -1]) == 2*pi^2
cvolume.cvolume.cvolume_by_cylinders(stratum)[source]

Return the contributions of k-cylinder surfaces to the completed volume of the stratum for each k.

cvolume.cvolume.cvolume_by_graphs(stratum, graphs)[source]

Return the contribution of given stable graphs to the completed volume of the stratum.

INPUT:

  • stratum – list, a list of orders of zeros of the stratum
  • graphs – iterable, e.g. a set, of Labeled Stable Graphs
cvolume.cvolume.graph_poly(stg)[source]

Return the ‘Kontsevich polynomial’ associated to the Labeled Stable Graph.

EXAMPLES:

Here we compute the polynomial associated with a labeled stable graph with one loop:

sage: from cvolume import LabeledStableGraph
sage: from cvolume.cvolume import graph_poly
sage: stg = LabeledStableGraph([], [1], [[3, 3, -1, -1]])
sage: graph_poly(stg)
19/128*b1^5

Here is another example for a graph with two vertices:

sage: stg = LabeledStableGraph([(0, 1, 1)], [1, 1], [[3, -1], [3, -1]])
sage: graph_poly(stg)
9/16*b1*b2*b3

Note that the previous example can be expressed through local polynomials associated to vertices:

sage: from cvolume import Nlocal
sage: S = PolynomialRing(QQ,['b%d' % i for i in range(1,4)])
sage: b1,b2,b3 = S.gens()
sage: graph_poly(stg) == 1/2*1/8*b1*b2*b3*Nlocal(0,3,[3,-1])(b1=b1,b2=b1,b3=b2)*Nlocal(0,3,[3,-1])(b1=b2,b2=b3,b3=b3)
True
cvolume.cvolume.operator(Poly)[source]

Return the result of application of \(\mathcal{Z}\)-operator to the polynomial.

cvolume.cvolume.principal_volume(g_or_stratum, n=-1)[source]

Return the Masur-Veech volume of the principal stratum. Input can be either a single argument that is a list of orders of zeroes or two arguments g and n, where g is the genus and n is the number of simple poles.

cvolume.cvolume.replmon(n)[source]

Return the result of application of \(\mathcal{Z}\)-operator to the monomial \(b_i^n\).