Masur-Veech topological recursion#

Topological recursion for Masur-Veech volumes.

This is the topological recursion as developed in [AndBorChaDelGiacLewWhe].

EXAMPLES:

Masur-Veech volumes (without the pi power):

sage: from surface_dynamics import MasurVeechTR
sage: MV = MasurVeechTR()
sage: for g,n in [(0,4),(0,5),(1,1),(1,2),(1,3),(2,1),(2,2)]:
....:     coeff = 2**(4*g-2+n) * (4*g-4+n).factorial() / (6*g-7+2*n).factorial()
....:     v = coeff * MV.F(g, n, (0,)*n)
....:     print(g, n, v)
0 4 2
0 5 1
1 1 2/3
1 2 1/3
1 3 11/60
2 1 29/840
2 2 337/18144
class surface_dynamics.topological_recursion.masur_veech.MasurVeechTR(edge_weight=1, vertex_weight=1, cache_all=True)[source]#

Bases: TopologicalRecursion

Topological recursion for Masur-Veech volumes (Anderssen et al.)

EXAMPLES:

Below is the distribution of cylinders in genus zero and n equal 4, 5, 6, 7:

sage: from surface_dynamics.topological_recursion import MasurVeechTR
sage: MV = MasurVeechTR(polygen(QQ, 't'))
sage: for n in range(4, 8):
....:     p = MV.F(0, n, (0,)*n)
....:     print(p / p(1))
t
5/9*t^2 + 4/9*t
7/27*t^3 + 4/9*t^2 + 8/27*t
1/9*t^4 + 8/27*t^3 + 256/675*t^2 + 16/75*t
A(i, j, k)[source]#
B(g, n, i, j)[source]#
C(i, jmax, kmax, smax)[source]#

Iterate through the non-zero (j, k, C(i, j, k)) given the i.

INPUT:

  • jmax - max value for j

  • kmax - max value for k

  • smax - max value for j+k

TESTS:

sage: from surface_dynamics.topological_recursion import MasurVeechTR
sage: MV = MasurVeechTR()
sage: for i in range(5):
....:     for s in range(10):
....:         for j,k,_ in MV.C(0, 5, 5, s):
....:             assert j+k <= s
D(i)[source]#