diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json
index 6600c17..7012005 100644
--- a/dev/.documenter-siteinfo.json
+++ b/dev/.documenter-siteinfo.json
@@ -1 +1 @@
-{"documenter":{"julia_version":"1.6.7","generation_timestamp":"2024-06-28T19:25:46","documenter_version":"1.4.1"}}
\ No newline at end of file
+{"documenter":{"julia_version":"1.6.7","generation_timestamp":"2024-10-30T10:48:51","documenter_version":"1.7.0"}}
\ No newline at end of file
diff --git a/dev/Example/index.html b/dev/Example/index.html
index cbbda2d..8d3098c 100644
--- a/dev/Example/index.html
+++ b/dev/Example/index.html
@@ -1,5 +1,5 @@
-
Example of graph with vertex contribution · GromovWitten.jl
To provide an example on how to use our package, we define a graph G from a list of edges:
julia> ve = [ (1, 2), (2, 3), (3, 1)]
julia> G = FeynmanGraph(ve)
We then define the Feynman integral type F:
julia> F=FeynmanIntegral(G)
FeynmanIntegral(FeynmanGraph([(1, 2), (2, 3), (3, 1)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 9 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3]], Nemo.QQMPolyRingElem[q[1], q[2], q[3]], Nemo.QQMPolyRingElem[z[1], z[2], z[3]]))
Here, the indexed variables x correspond to the vertices of the graph, the indexed variables y to the edges of the graph, and the indexed variables z again to the vertices of the graph (the latter to be used in the context of Gromov-Witten invariants with non-trivial Psi-classes).
To compute a Feynman iuntegral, we define a partition $a=[0,0,3]$ of degree d=3, a fixed order of vertex $o=[1,2,3]$ and the genus function $g=[1,0,0]$. The leak in G is $L=[0,0,0]$ , $m=1$ is the order of the sfunction.
A Feynman graph is a (non-metrized) graph Γ without ends with n vertices which are labeled $x_1, . . . , x_n$ and with labeled edges $q_1, . . . , q_r$. The graph $G$ is represented as a collection of vertices $V$ and edges $E$. Each edge is a pair $(v,w)$ where both $v$ and $w$ are elements of the set of vertices $V$.
A Feynman graph is a (non-metrized) graph Γ without ends with n vertices which are labeled $x_1, . . . , x_n$ and with labeled edges $q_1, . . . , q_r$. The graph $G$ is represented as a collection of vertices $V$ and edges $E$. Each edge is a pair $(v,w)$ where both $v$ and $w$ are elements of the set of vertices $V$.
julia> ve=[(1, 1), (1, 2), (2, 3), (3, 1)]
4-element Vector{Tuple{Int64, Int64}}:
(1, 1)
(1, 2)
@@ -25,4 +25,4 @@
We compute the Feynman integral over all the partitions of the degree d of graph G for all vertex ordering.
To provide an example on how to use our package, we define a graph G from a list of edges:
julia> ve = [ (1, 2), (2, 3), (3, 1)]
julia> G = FeynmanGraph(ve);
We then define a polynomial ring with all variables required by our implementation:
julia> F=FeynmanIntegral(G);
To compute a Feynman iuntegral, we define a partition $a=[0,0,3]$ of degree d=3, a fixed order of vertex $o=[1,2,3]$ and the genus function $g=[1,0,0]$. The leak in G is $L=[0,0,0]$ , $m=1$ is the default order of the sfunction. We have then
We then define a polynomial ring with all variables required by our implementation:
julia> F=FeynmanIntegral(G)
Here, the indexed variables x correspond to the vertices of the graph, the indexed variables y to the edges of the graph, and the indexed variables z again to the vertices of the graph (the latter to be used in the context of Gromov-Witten invariants with non-trivial Psi-classes).
To compute a Feynman iuntegral, we define a partition $a = [0, 2, 1, 0, 0, 1]$ of degree d=3, a fixed order of vertex $ o=[1,3,4,2. We have then
julia> a = [0, 2, 1, 0, 0, 1];
julia> o=[1,3,4,2];
The Feynman Integral branch type for a fixed ordering is
We assume that Julia is installed in a recent enough version to run OSCAR. Navigate in a terminal to the folder where you want to install the package and pull the package from Github:
We assume that Julia is installed in a recent enough version to run OSCAR. Navigate in a terminal to the folder where you want to install the package and pull the package from Github:
Return the expansion of the weight Eisenstein series k with fixed order. For a fixed order $m$, we compute $E_k = 1 - \frac{2 k}{ B_k} \sum_{d=1}^{m} \sigma_{k-1}(d) q[1]^{2 d}$
Return the expansion of the weight Eisenstein series k with fixed order. For a fixed order $m$, we compute $E_k = 1 - \frac{2 k}{ B_k} \sum_{d=1}^{m} \sigma_{k-1}(d) q[1]^{2 d}$
Let Ω=[x1,...,xn] be a given Order and $a$ a branche type,flipsignature returns -1 if xi<x_j$ and O else. It will return -2 in case the Graph G has a loop.
Let Ω=[x1,...,xn] be a given Order and $a$ a branche type,flipsignature returns -1 if xi<x_j$ and O else. It will return -2 in case the Graph G has a loop.
express the Feynman Integral polynomial $I(q)$ in terms of a polynomial in $E_2, E_4, E_6$ This leads to $I(q)=\sum_{i,j,k} b_{i,j,k} E_2^i E_4^j E_6^k$
express the Feynman Integral polynomial $I(q)$ in terms of a polynomial in $E_2, E_4, E_6$ This leads to $I(q)=\sum_{i,j,k} b_{i,j,k} E_2^i E_4^j E_6^k$
The package GromovWitten computes generating series for tropical Hurwitz numbers of elliptic curves via mirror symmetry and Feynman integrals, and thus, by a correspondence theorem, Hurwitz numbers in the sense algebraic geometry. Generalizations of the method also allow for the computation of Gromov-Witten invariants for ellptic curves, and are also implemented in the package. GromovWitten is based on the computeralgebra system OSCAR and is provided as a package for the Julia programming language.
Settings
This document was generated with Documenter.jl version 1.4.1 on Friday 28 June 2024. Using Julia version 1.6.7.
The package GromovWitten computes generating series for tropical Hurwitz numbers of elliptic curves via mirror symmetry and Feynman integrals, and thus, by a correspondence theorem, Hurwitz numbers in the sense algebraic geometry. Generalizations of the method also allow for the computation of Gromov-Witten invariants for ellptic curves, and are also implemented in the package. GromovWitten is based on the computeralgebra system OSCAR and is provided as a package for the Julia programming language.
Settings
This document was generated with Documenter.jl version 1.7.0 on Wednesday 30 October 2024. Using Julia version 1.6.7.
In this module, we compute the solution of the system $Ax=b$, where $A$ is a matrix from homogeneous Eisenstein series $E_2, E_4, E_6$ and $b$ from the Feynman Integral $I(q)$ The solution is of the form (factor, coefficients) where coefficients is a vector of rationals numbers. Given a Feynman Integral
In this module, we compute the solution of the system $Ax=b$, where $A$ is a matrix from homogeneous Eisenstein series $E_2, E_4, E_6$ and $b$ from the Feynman Integral $I(q)$ The solution is of the form (factor, coefficients) where coefficients is a vector of rationals numbers. Given a Feynman Integral
We compute the sum of all Feynman Integral of degree up to $m=\text{number\_of\_monomials}(\text{weightmax}) $ where weightmax$=6g-6$ where $g$ is the genus of the graph . Here $g=3$ so weightmax$=6g-6=12$
julia> weightmax=12;
julia> m = number_of_monomial(weightmax)
+22
+
Since $m=22$, we need to compute the Feynman integral degree sum up to at least degree $m=22$. This results in Iq=substitute(feynmanintegraldegree_sum(F,m)). We get Iq as following
In this module, we compute the solution of the system $Ax=b$, where $A$ is a matrix from homogeneous Eisenstein series $E_2, E_4, E_6$ and $b$ from the Feynman Integral $I(q)$ The solution is of the form (factor, coefficients) where coefficients is a vector of rationals numbers. Given a Feynman Integral
julia> F=FeynmanIntegral(G)
+FeynmanIntegral(FeynmanGraph([(1, 2), (2, 3), (3, 1)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 9 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3]], Nemo.QQMPolyRingElem[q[1], q[2], q[3]], Nemo.QQMPolyRingElem[z[1], z[2], z[3]]))
We compute the sum of all Feynman Integral of degree up to $m=\text{number\_of\_monomials}(\text{weightmax}) $ where weightmax$=2(r+\sum{i=1}^{n} gi)$ with $r$ the number of edges and $g_i$ satifying $h^1(\Gamma)+\sum_{i=1}^{n} g_i=g$ . Suppose $gg=[1,0,0]$, we have r=3; so weightmax$=2(3+1)=8$
julia> g =[1,0,0];
julia> weightmax=8;
julia> m = number_of_monomial(weightmax)
+10
We computed then the Feynman Integral sum up to the degree $m=10$
We compute the sum of all Feynman Integral of degree up to $m=\text{number\_of\_monomials}(\text{weightmax}) $. Here $gg=[0,0,0]$, and r=4; so weightmax$=2(4+0)=8$.
julia> weightmax=8;
julia> m=number_of_monomial(weightmax)
+10
We computed then the Feynman Integral sum up to the degree $m=10$
This document was generated with Documenter.jl version 1.7.0 on Wednesday 30 October 2024. Using Julia version 1.6.7.
diff --git a/dev/search_index.js b/dev/search_index.js
index 3788fd4..cdb3d61 100644
--- a/dev/search_index.js
+++ b/dev/search_index.js
@@ -1,3 +1,3 @@
var documenterSearchIndex = {"docs":
-[{"location":"Overview/#Overview","page":"Functions","title":"Overview","text":"","category":"section"},{"location":"Overview/","page":"Functions","title":"Functions","text":"Modules = [GromovWitten]","category":"page"},{"location":"Overview/","page":"Functions","title":"Functions","text":"Modules = [GromovWitten]","category":"page"},{"location":"Overview/#GromovWitten.GromovWitten","page":"Functions","title":"GromovWitten.GromovWitten","text":"GromovWitten is a package for computing Gromov-Witten invariant via Feynman Integral .\n\n\n\n\n\n","category":"module"},{"location":"Overview/#GromovWitten.constterm-Tuple{Nemo.QQMPolyRingElem, Nemo.QQMPolyRingElem, Integer}","page":"Functions","title":"GromovWitten.constterm","text":"constterm( x1::QQMPolyRingElem, x2::QQMPolyRingElem, N::Integer)\n\nreturns the constant term of the propagator\n\nExamples (without vertex contribution)\n\njulia> R,x=polynomial_ring(QQ,:x=>1:2); # using Nemo.\njulia> constterm(x[1],x[2],3)\n 3*x[1]^6 + 2*x[1]^5*x[2] + x[1]^4*x[2]^2\n\n constterm(x1::QQMPolyRingElem, x2::QQMPolyRingElem, z1::QQMPolyRingElem, z2::QQMPolyRingElem,aa::Integer, N::Integer)\n\nhere aa=1 is the order for sfunction series and N=sum_n=1^3g-3 a_i where a=a_1a_3g-3 is a branch type.\n\nExamples (with vertex contribution)\n\njulia> R,x,z=polynomial_ring(QQ,:x=>1:2,:z=>1:2); # using Nemo.\n\njulia> constterm(x[1],x[2],z[1],z[2],1,2)\n 1//18*x[1]^4*z[1]^2*z[2]^2 + 1//3*x[1]^4*z[1]^2 + 1//3*x[1]^4*z[2]^2 + 2*x[1]^4 + 1//576*x[1]^3*x[2]*z[1]^2*z[2]^2 + 1//24*x[1]^3*x[2]*z[1]^2 + 1//24*x[1]^3*x[2]*z[2]^2 + x[1]^3*x[2]\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.eisenstein_series-Tuple{Int64, Int64, Union{Nemo.QQMPolyRingElem, Vector{Nemo.QQMPolyRingElem}}}","page":"Functions","title":"GromovWitten.eisenstein_series","text":" eisenstein_series(order::Int, k::Int)\n\nReturn the expansion of the weight Eisenstein series k with fixed order. For a fixed order m, we compute E_k = 1 - frac2 k B_k sum_d=1^m sigma_k-1(d) q1^2 d\n\njulia> eisenstein_series(5,2) #E2\n-144*q[1]^10 - 168*q[1]^8 - 96*q[1]^6 - 72*q[1]^4 - 24*q[1]^2 + 1\n\njulia> eisenstein_series(5,4) #E4\n30240*q[1]^10 + 17520*q[1]^8 + 6720*q[1]^6 + 2160*q[1]^4 + 240*q[1]^2 + 1\n\neisenstein_series( num_terms::Int,k::Int,q::Union{QQMPolyRingElem, Vector{QQMPolyRingElem}})\n\njulia> eisenstein_series(5,2,q) #E2\n-144*q[1]^10 - 168*q[1]^8 - 96*q[1]^6 - 72*q[1]^4 - 24*q[1]^2 + 1\njulia> eisenstein_series(5,4,q) #E4\n30240*q[1]^10 + 17520*q[1]^8 + 6720*q[1]^6 + 2160*q[1]^4 + 240*q[1]^2 + 1\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_branch_type-Tuple{FeynmanIntegral, Vector{Int64}}","page":"Functions","title":"GromovWitten.feynman_integral_branch_type","text":"feynman_integral_branch_type( F::FeynmanGraph, a::Vector{Int64} ;l=zeros(Int,nv(F.G)))\n\ncompute the Feynman Integral for a specified branch type a for all ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,2,1,0,0,1];\n\njulia> feynman_integral_branch_type(F,a)\n256*q[2]^4*q[3]^2*q[6]^2\n\n feynman_integral_branch_type( F::FeynmanGraph, a::Vector{Int64} ;g=zeros(Int,nv(F.G)),l=zeros(Int,nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\nFeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\n\njulia> feynman_integral_branch_type(F,a,g)\n115//3*q[3]^6\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_branch_type_order-Tuple{FeynmanIntegral, Vector{Int64}, Vector{Int64}}","page":"Functions","title":"GromovWitten.feynman_integral_branch_type_order","text":"feynman_integral_branch_type_order( F::FeynmanGraph, a::Vector{Int64} ,Ω::Vector{Int64};l=zeros(Int,nv(F.G)))\n\ncompute the Feynman Integral for a specified branch type a for a fixed ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,2,1,0,0,1];\n\njulia> Ω=[1,3,4,2];\n\njulia> feynman_integral_branch_type_order(F,a,Ω)\n128*q[2]^2=4*q[3]^2*q[6]^2\n\n feynman_integral_branch_type_order( F::FeynmanGraph, a::Vector{Int64}, Ω::Vector{Int64}, g::Vector{Int64};l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\nFeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\njulia> Ω=[1,2,3];\n\n\njulia> feynman_integral_branch_type_order(F,a,Ω,g)\n115//6*q[3]^6\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_degree-Tuple{FeynmanIntegral, Int64}","page":"Functions","title":"GromovWitten.feynman_integral_degree","text":" feynman_integral_degree( F::FeynmanGraph,d::Integer;l=zeros(Int,nv(F.G)))\n\ncompute the Feynman Integral for over all the partitions of the degree d for all ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> a=[0,2,1,0,0,1];\n\njulia> feynman_integral_degree(F,3)\n\n288*q[1]^6 + 32*q[1]^4*q[2]^2 + 32*q[1]^4*q[3]^2 + 32*q[1]^4*q[5]^2 + 32*q[1]^4*q[6]^2 + 8*q[1]^2*q[2]^2*q[5]^2 + 8*q[1]^2*q[2]^2*q[6]^2 + 8*q[1]^2*q[3]^2*q[5]^2 + 8*q[1]^2*q[3]^2*q[6]^2 + 24*q[2]^6 + 152*q[2]^4*q[3]^2 + 8*q[2]^4*q[5]^2 + 8*q[2]^4*q[6]^2 + 152*q[2]^2*q[3]^4 + 32*q[2]^2*q[3]^2*q[5]^2 + 32*q[2]^2*q[3]^2*q[6]^2 + 32*q[2]^2*q[4]^4 + 8*q[2]^2*q[4]^2*q[5]^2 + 8*q[2]^2*q[4]^2*q[6]^2 + 8*q[2]^2*q[5]^4 + 32*q[2]^2*q[5]^2*q[6]^2 + 8*q[2]^2*q[6]^4 + 24*q[3]^6 + 8*q[3]^4*q[5]^2 + 8*q[3]^4*q[6]^2 + 32*q[3]^2*q[4]^4 + 8*q[3]^2*q[4]^2*q[5]^2 + 8*q[3]^2*q[4]^2*q[6]^2 + 8*q[3]^2*q[5]^4 + 32*q[3]^2*q[5]^2*q[6]^2 + 8*q[3]^2*q[6]^4 + 288*q[4]^6 + 32*q[4]^4*q[5]^2 + 32*q[4]^4*q[6]^2 + 24*q[5]^6 + 152*q[5]^4*q[6]^2 + 152*q[5]^2*q[6]^4 + 24*q[6]^6\n\n\n\n feynman_integral_degree( F::FeynmanGraph,d::Integer, g::Vector{Int64};l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\n\njulia> feynman_integral_degree(F,3,g)\n115//3*q[1]^6 + 1//4*q[1]^4*q[2]^2 + 1//4*q[1]^4*q[3]^2 + 1//4*q[1]^2*q[2]^4 + 1//2*q[1]^2*q[2]^2*q[3]^2 + 1//4*q[1]^2*q[3]^4 + 115//3*q[2]^6 + 1//4*q[2]^4*q[3]^2 + 1//4*q[2]^2*q[3]^4 + 115//3*q[3]^6\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_degree_order-Tuple{FeynmanIntegral, Vector{Int64}, Integer}","page":"Functions","title":"GromovWitten.feynman_integral_degree_order","text":"feynman_integral_degree_order( F::FeynmanGraph,o::Vector{Int64},d::Integer;l=zeros(Int,nv(F.G)))\n\ncompute the Feynman Integral for all the partitions of the degree d for a fixed ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,2,1,0,0,1];\n\njulia> Ω=[1,3,4,2];\n\njulia> feynman_integral_degree_order(F,Ω,4)\n4*q[1]^4*q[2]^2*q[3]^2 + 4*q[1]^2*q[2]^4*q[5]^2 + 4*q[1]^2*q[2]^4*q[6]^2 + 4*q[1]^2*q[3]^4*q[5]^2 + 4*q[1]^2*q[3]^4*q[6]^2 + 176*q[2]^8 + 496*q[2]^6*q[3]^2 + 60*q[2]^6*q[5]^2 + 60*q[2]^6*q[6]^2 + 788*q[2]^4*q[3]^4 + 128*q[2]^4*q[3]^2*q[5]^2 + 128*q[2]^4*q[3]^2*q[6]^2 + 4*q[2]^4*q[4]^2*q[5]^2 + 4*q[2]^4*q[4]^2*q[6]^2 + 16*q[2]^4*q[5]^4 + 16*q[2]^4*q[6]^4 + 496*q[2]^2*q[3]^6 + 128*q[2]^2*q[3]^4*q[5]^2 + 128*q[2]^2*q[3]^4*q[6]^2 + 4*q[2]^2*q[3]^2*q[4]^4 + 48*q[2]^2*q[3]^2*q[5]^4 + 4*q[2]^2*q[3]^2*q[5]^2*q[6]^2 + 48*q[2]^2*q[3]^2*q[6]^4 + 176*q[3]^8 + 60*q[3]^6*q[5]^2 + 60*q[3]^6*q[6]^2 + 4*q[3]^4*q[4]^2*q[5]^2 + 4*q[3]^4*q[4]^2*q[6]^2 + 16*q[3]^4*q[5]^4 + 16*q[3]^4*q[6]^4\n\n feynman_integral_degree_order( F::FeynmanGraph,o::Vector{Int64},d::Integer, g::Vector{Int64};l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\njulia> Ω=[1,2,3];\n\njulia> feynman_integral_degree_order(F,Ω,3,g)\n1//24*q[1]^4*q[2]^2 + 1//24*q[1]^4*q[3]^2 + 1//24*q[1]^2*q[2]^4 + 1//12*q[1]^2*q[2]^2*q[3]^2 + 1//24*q[1]^2*q[3]^4 + 1//24*q[2]^4*q[3]^2 + 1//24*q[2]^2*q[3]^4 + 115//6*q[3]^6\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_degree_sum-Tuple{FeynmanIntegral, Union{Int64, Vector{Int64}}}","page":"Functions","title":"GromovWitten.feynman_integral_degree_sum","text":" feynman_integral_degree_sum( F::FeynmanGraph, d::Union{Int64, Vector{Int64}}; l=zeros(Int, nv(F.G)))\n\ncompute the sum of all Feynman Integrals up to a certain degree d for all ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> F=FeynmanIntegral(G);\n\n\njulia> feynman_integral_degree_sum(F,3)\n288*q[1]^6 + 32*q[1]^4*q[2]^2 + 32*q[1]^4*q[3]^2 + 32*q[1]^4*q[5]^2 + 32*q[1]^4*q[6]^2 + 8*q[1]^4 + 8*q[1]^2*q[2]^2*q[5]^2 + 8*q[1]^2*q[2]^2*q[6]^2 + 8*q[1]^2*q[3]^2*q[5]^2 + 8*q[1]^2*q[3]^2*q[6]^2 + 24*q[2]^6 + 152*q[2]^4*q[3]^2 + 8*q[2]^4*q[5]^2 + 8*q[2]^4*q[6]^2 + 152*q[2]^2*q[3]^4 + 32*q[2]^2*q[3]^2*q[5]^2 + 32*q[2]^2*q[3]^2*q[6]^2 + 8*q[2]^2*q[3]^2 + 32*q[2]^2*q[4]^4 + 8*q[2]^2*q[4]^2*q[5]^2 + 8*q[2]^2*q[4]^2*q[6]^2 + 8*q[2]^2*q[5]^4 + 32*q[2]^2*q[5]^2*q[6]^2 + 8*q[2]^2*q[6]^4 + 24*q[3]^6 + 8*q[3]^4*q[5]^2 + 8*q[3]^4*q[6]^2 + 32*q[3]^2*q[4]^4 + 8*q[3]^2*q[4]^2*q[5]^2 + 8*q[3]^2*q[4]^2*q[6]^2 + 8*q[3]^2*q[5]^4 + 32*q[3]^2*q[5]^2*q[6]^2 + 8*q[3]^2*q[6]^4 + 288*q[4]^6 + 32*q[4]^4*q[5]^2 + 32*q[4]^4*q[6]^2 + 8*q[4]^4 + 24*q[5]^6 + 152*q[5]^4*q[6]^2 + 152*q[5]^2*q[6]^4 + 8*q[5]^2*q[6]^2 + 24*q[6]^6\n\n\n\n feynman_integral_degree_sum( F::FeynmanGraph, d::Union{Int64, Vector{Int64}}, g::Vector{Int64};l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\n\njulia> feynman_integral_degree_sum(F,3,g)\n115//3*q[1]^6 + 1//4*q[1]^4*q[2]^2 + 1//4*q[1]^4*q[3]^2 + 19//4*q[1]^4 + 1//4*q[1]^2*q[2]^4 + 1//2*q[1]^2*q[2]^2*q[3]^2 + 1//4*q[1]^2*q[2]^2 + 1//4*q[1]^2*q[3]^4 + 1//4*q[1]^2*q[3]^2 + 1//12*q[1]^2 + 115//3*q[2]^6 + 1//4*q[2]^4*q[3]^2 + 19//4*q[2]^4 + 1//4*q[2]^2*q[3]^4 + 1//4*q[2]^2*q[3]^2 + 1//12*q[2]^2 + 115//3*q[3]^6 + 19//4*q[3]^4 + 1//12*q[3]^2\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_degree_sum_order-Tuple{FeynmanIntegral, Vector{Int64}, Union{Int64, Vector{Int64}}}","page":"Functions","title":"GromovWitten.feynman_integral_degree_sum_order","text":" feynman_integral_degree_sum_order( F::FeynmanGraph,o::Vector{Int64}, d::Union{Int64, Vector{Int64}}; g=zeros(Int, nv(F.G)),l=zeros(Int, nv(F.G)))\n\ncompute the sum of all Feynman Integrals up to a certain degree d with a fixed ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> a=[0,2,1,0,0,1];\n\njulia> Ω=[1,3,4,2];\n\n\njulia> feynman_integral_degree_sum_order(F,Ω,3)\n12*q[2]^6 + 76*q[2]^4*q[3]^2 + 4*q[2]^4*q[5]^2 + 4*q[2]^4*q[6]^2 + 76*q[2]^2*q[3]^4 + 16*q[2]^2*q[3]^2*q[5]^2 + 16*q[2]^2*q[3]^2*q[6]^2 + 4*q[2]^2*q[3]^2 + 12*q[3]^6 + 4*q[3]^4*q[5]^2 + 4*q[3]^4*q[6]^2\n\n\n\n feynman_integral_degree_sum_order( F::FeynmanGraph,o::Vector{Int64}, d::Union{Int64, Vector{Int64}}, g::Vector{Int64}; l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\n julia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\njulia> Ω=[1,2,3];\n\n\njulia> feynman_integral_degree_sum_order(F,Ω,3,g)\n1//24*q[1]^4*q[2]^2 + 1//24*q[1]^4*q[3]^2 + 1//24*q[1]^2*q[2]^4 + 1//12*q[1]^2*q[2]^2*q[3]^2 + 1//24*q[1]^2*q[2]^2 + 1//24*q[1]^2*q[3]^4 + 1//24*q[1]^2*q[3]^2 + 1//24*q[2]^4*q[3]^2 + 1//24*q[2]^2*q[3]^4 + 1//24*q[2]^2*q[3]^2 + 115//6*q[3]^6 + 19//8*q[3]^4 + 1//24*q[3]^2\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.filter_term-Tuple{Union{Int64, Nemo.QQMPolyRingElem, Nemo.QQPolyRingElem}, Union{Vector{Nemo.QQMPolyRingElem}, Vector{Nemo.QQPolyRingElem}, Nemo.QQMPolyRingElem, Nemo.QQPolyRingElem}, Union{Int64, Vector{Int64}}}","page":"Functions","title":"GromovWitten.filter_term","text":" filter_term(p::Union{QQMPolyRingElem, Int64}, variables::Vector{QQMPolyRingElem}, s::Vector{Int64})\n\nreplaces all terms of the polynomial p with zero whenever the variables raised to a power of s1 exceed the specified power s.\n\nExamples\n\njulia> R,x=polynomial_ring(QQ, :q=>1:4)\njulia> p= 8*q[1]^6*q[2]^2 + 8*q[1]^6*q[3]^2 + 8*q[1]^6*q[4]^2 + 54*q[1]^4*q[2]^4 + 18*q[1]^4*q[2]^2*q[3]^2 + 18*q[1]^4*q[2]^2*q[4]^2 +54*q[1]^4*q[3]^4 + 18*q[1]^4*q[3]^2*q[4]^2 + 54*q[1]^4*q[4]^4 + 56*q[1]^2*q[2]^6 + 6*q[1]^2*q[2]^4*q[3]^2 + 6*q[1]^2*q[2]^4*q[4]^2 +6*q[1]^2*q[2]^2*q[3]^4 + 12*q[1]^2*q[2]^2*q[3]^2*q[4]^2 + 6*q[1]^2*q[2]^2*q[4]^4 + 56*q[1]^2*q[3]^6 + 6*q[1]^2*q[3]^4*q[4]^2 + 6*q[1]^2*q[3]^2*q[4]^4 + 56*q[1]^2*q[4]^6\n\nwe replace all term in p with q[1]^a*q[2]^b*q[3]^c > q[1]*q[2]*q[3] by zero,this means all power (abc)(222)\n\njulia> filter_term(p,[q[1],q[2],q[3]],[2,2,2])\n12*q[1]^2*q[2]^2*q[3]^2*q[4]^2 + 6*q[1]^2*q[2]^2*q[4]^4 + 6*q[1]^2*q[3]^2*q[4]^4 + 56*q[1]^2*q[4]^6\n\nalso\n\njulia> filter_term(p,[q[1],q[2]],[2,2])\n6*q[1]^2*q[2]^2*q[3]^4 + 12*q[1]^2*q[2]^2*q[3]^2*q[4]^2 + 6*q[1]^2*q[2]^2*q[4]^4 + 56*q[1]^2*q[3]^6 + 6*q[1]^2*q[3]^4*q[4]^2 + 6*q[1]^2*q[3]^2*q[4]^4 + 56*q[1]^2*q[4]^6 + q[1]\n\njulia> filter_term(p,q[1],1)\nq[1]\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.filter_vector-Tuple{Vector{Nemo.QQMPolyRingElem}, Union{Nemo.QQMPolyRingElem, Vector{Nemo.QQMPolyRingElem}}, Union{Int64, Vector{Int64}}}","page":"Functions","title":"GromovWitten.filter_vector","text":"filter_vector(polyvector::Vector{QQMPolyRingElem}, variables::Union{Vector{QQMPolyRingElem}, QQMPolyRingElem}, power::Union{Vector{Int64}, Int64})\n\nreturns the number filter_term of function in a vector of polynomial.\n\nExample\n\njulia> R,q=polynomial_ring(QQ,[\"q\"])\n\njulia> v=[-122976*q[1]^6 - 16632*q[1]^4 - 504*q[1]^2 + 1, -645120*q[1]^12 - 691200*q[1]^10 - 339840*q[1]^8 - 62496*q[1]^6 - 3672*q[1]^4 + 216*q[1]^2 + 1, -884736*q[1]^18 - 1990656*q[1]^16 - 2156544*q[1]^14 - 1340928*q[1]^12 - 497664*q[1]^10 - 95040*q[1]^8 - 3744*q[1]^6 + 1512*q[1]^4 - 72*q[1]^2 + 1]\n\njulia> filter_vector(v,q,6)\n3-element Vector{QQMPolyRingElem}:\n -122976*q[1]^6 - 16632*q[1]^4 - 504*q[1]^2 + 1\n -62496*q[1]^6 - 3672*q[1]^4 + 216*q[1]^2 + 1\n -3744*q[1]^6 + 1512*q[1]^4 - 72*q[1]^2 + 1\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.flip_signature-Tuple{FeynmanGraph, Vector{Int64}, Vector{Int64}}","page":"Functions","title":"GromovWitten.flip_signature","text":"flip_signature(F::FeynmanGraph ,p::Vector{Int64},a::Vector{Int64})\n\nLet Ω=[x1,...,xn] be a given Order and a a branche type,flipsignature returns -1 if xi R,x=polynomial_ring(QQ,:x=>1:1); # using Nemo\njulia> inv_sfunction(x[1],4)\n7//5760*x[1]^4 - 1//24*x[1]^2 + 1\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.loopterm-Tuple{Nemo.QQMPolyRingElem, Nemo.QQMPolyRingElem, Integer, Integer}","page":"Functions","title":"GromovWitten.loopterm","text":"loopterm( z::QQMPolyRingElem, q::QQMPolyRingElem, m::Integer, a::Integer)\n\nreturns loop contribution with nonzero genus gi at a vertex i. \n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.matrix_of_integral-Tuple{Nemo.QQMPolyRingElem}","page":"Functions","title":"GromovWitten.matrix_of_integral","text":" polynomial_to_matrix(vect::Vector{QQMPolyRingElem})\n\nreturns a matrix from a given polynomial. The returned matrix is of type QQMatrix.\n\njulia> Iq=25344*q[1]^8 + 1792*q[1]^6 +32q[1]^4\n\njulia> matrix_of_integral(Iq)\n[ 0]\n[ 0]\n[ 0]\n[ 0]\n[ 32]\n[ 0]\n[ 1792]\n[ 0]\n[25344]\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.next_partition-Tuple{Vector{Int64}}","page":"Functions","title":"GromovWitten.next_partition","text":"combination(f::Function, k::Int, d::Int)\nnext_partition(a::Vector{Int})\n\n#Examples\n\nThis function returns the number of partitions of n into fixed k parts. \n\njulia> using GromovWitten\n\njulia> combination(next_partition,3, 4)\n15-element Vector{Vector{Int64}}:\n [4, 0, 0]\n [3, 1, 0]\n [3, 0, 1]\n [2, 2, 0]\n [2, 1, 1]\n [2, 0, 2]\n [1, 3, 0]\n [1, 2, 1]\n [1, 1, 2]\n [1, 0, 3]\n [0, 4, 0]\n [0, 3, 1]\n [0, 2, 2]\n [0, 1, 3]\n [0, 0, 4]\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.polynomial_to_matrix-Tuple{Vector{Nemo.QQMPolyRingElem}}","page":"Functions","title":"GromovWitten.polynomial_to_matrix","text":" polynomial_to_matrix(vect::Vector{QQMPolyRingElem})\n\nreturns a matrix fromed by the coefficients of a given vector of polynomials with same degree. The returned matrix is of type QQMatrix.\n\njulia> vp=[ -122976*q[1]^6 - 16632*q[1]^4 - 504*q[1]^2 + 1, -62496*q[1]^6 - 3672*q[1]^4 + 216*q[1]^2 + 1,-3744*q[1]^6 + 1512*q[1]^4 - 72*q[1]^2 + 1]\n\njulia> polynomial_to_matrix(vp)\n[ 1 1 1]\n[ 0 0 0]\n[ -504 216 -72]\n[ 0 0 0]\n[ -16632 -3672 1512]\n[ 0 0 0]\n[-122976 -62496 -3744]\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.proterm-Tuple{Nemo.QQMPolyRingElem, Nemo.QQMPolyRingElem, Nemo.QQMPolyRingElem, Integer, Integer}","page":"Functions","title":"GromovWitten.proterm","text":" proterm( x1::QQMPolyRingElem, x2::QQMPolyRingElem, q::QQMPolyRingElem, a::Integer, N::Integer)\n\nreturns the non constant term of the propagator\n\nExamples (without vertex contribution)\n\njulia> R,x,z=polynomial_ring(QQ,:x=>1:2,:q=>1:2); # using Nemo.\njulia> proterm(x[1],x[2],q[1],1,2)\nx[1]^3*x[2]*q[1]^2 + x[1]*x[2]^3*q[1]^2\n\nExamples (with vertex contribution)\n\n proterm( x1::QQMPolyRingElem, x2::QQMPolyRingElem,z1::QQMPolyRingElem, z2::QQMPolyRingElem, q::QQMPolyRingElem, a::Integer,aa::Integer, N::Integer)\n\njulia> R,x,q,z=polynomial_ring(QQ,:x=>1:2,:q=>1:2,:z=>1:2); # using Nemo.\njulia> proterm(x[1],x[2],z[1],z[2],q[1],1,1,2)\n1//576*x[1]^3*x[2]*q[1]^2*z[1]^2*z[2]^2 + 1//24*x[1]^3*x[2]*q[1]^2*z[1]^2 + 1//24*x[1]^3*x[2]*q[1]^2*z[2]^2 + x[1]^3*x[2]*q[1]^2 + 1//576*x[1]*x[2]^3*q[1]^2*z[1]^2*z[2]^2 + 1//24*x[1]*x[2]^3*q[1]^2*z[1]^2 + 1//24*x[1]*x[2]^3*q[1]^2*z[2]^2 + x[1]*x[2]^3*q[1]^2\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.quasimodularity_form-Tuple{Any, Int64}","page":"Functions","title":"GromovWitten.quasimodularity_form","text":"quasimodular_form(Iq, weightmax::Int64)\n\nexpress the Feynman Integral polynomial I(q) in terms of a polynomial in E_2 E_4 E_6 This leads to I(q)=sum_ijk b_ijk E_2^i E_4^j E_6^k\n\njulia> R,q=polynomial_ring(QQ,[\"q\"])\n\njulia> Iq=886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 +32q[1]^4\n\nWe define the polynomial ring in E2,E4,E6.\n\njulia> quasimodular_form(Iq,12)\n(1//93312, -3*E2^6 + 6*E2^4*E4 + 4*E2^3*E6 - 3*E2^2*E4^2 - 12*E2*E4*E6 + 4*E4^3 + 4*E6^2)\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.sfunction-Tuple{Nemo.QQMPolyRingElem, Int64}","page":"Functions","title":"GromovWitten.sfunction","text":"sfunction(z::QQMPolyRingElem,k::Int64)\n\nNote:The function sfunction(z,k) takes account vertex contributions. \n\nS(z m) = sum_n = 0^m dfrac2^- 1 - n (1 + (- 1)^n)\n(n + 1) z^n = sum_n = 0^m dfrac2^- 2 n (2 n + 1) \nz^n m rightarrow infty\n\nExamples\n\njulia> R,x=polynomial_ring(QQ,:x=>1:1); # using Nemo\njulia> sfunction(x[1],4)\n\n1//92897280*z[1]^8 + 1//322560*z[1]^6 + 1//1920*z[1]^4 + 1//24*z[1]^2 +1\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.signature_and_multiplicities-Tuple{FeynmanGraph, Vector{Int64}}","page":"Functions","title":"GromovWitten.signature_and_multiplicities","text":"signature_and_multiplicities( G::FeynmanGraph, a::Vector{Int64})\n\nreturns flip_signature and their multiplicities.\n\nExamples\n\njulia> using GromovWitten\n\njulia> G=FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])\nFeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])\n\njulia> a=[2,0,0,1];\n\njulia> signature_and_multiplicities(G,a)\n2-element Vector{Tuple{Int64, Vector{Int64}}}:\n (4, [-2, -1, 0, 1])\n (2, [-2, 0, 0, 1])\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.substitute-Tuple{Union{Int64, Nemo.QQMPolyRingElem}}","page":"Functions","title":"GromovWitten.substitute","text":" substitute(p::Union{QQMPolyRingElem, Int64})\n\nreplace all the variables by the first variable of p. With x=\\[x_1,x2,x3 \\] and p(x_1,x2,x3), substitute(x,p) returns p(x1,x_1,x_1)\n\njulia> f=x[1]*x[2]+x[1]^3*x[2]+5x[1]^6-2x[3]*x[2]\n 5*x[1]^6 + x[1]^3*x[2] + x[1]*x[2] - 2*x[2]*x[3]\n\njulia> substitute(f)\n 5*x[1]^6 + x[1]^4 - x[1]^2\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.sum_of_coeff-Tuple{Nemo.QQMPolyRingElem}","page":"Functions","title":"GromovWitten.sum_of_coeff","text":" sum_of_coeff(p::QQMPolyRingElem)\n\ncompute the sum of coefficient of the polynomial p. \n\njulia> f=3*x[1]^6 + 2*x[1]^5*x[2] + x[1]^4*x[2]^2\n\njulia> sum_of_coeff(f)\n 6\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.sum_of_divisor_powers-Tuple{Int64, Int64}","page":"Functions","title":"GromovWitten.sum_of_divisor_powers","text":"sum_of_divisor_powers(n::Int, k::Int)\n\nσ_k(n)\n\nreturns the sum of the k^th powers of divisors of n. it returns also the number of divisors d(n) of n for k=0. \n\njulia>sum_of_divisor_powers(6,0) # number of divisors of 6 $d(6)$\n4\n\nsum of divisors of 6.\njulia> sum_of_divisor_powers(6,1)\n12\n\n\n\n\n\n","category":"method"},{"location":"SmallExample/","page":"First example","title":"First example","text":"CurrentModule = GromovWitten\nDocTestSetup = quote\n using GromovWitten\nend","category":"page"},{"location":"SmallExample/#First-example","page":"First example","title":"First example","text":"","category":"section"},{"location":"SmallExample/","page":"First example","title":"First example","text":"(Image: alt text)","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"To provide an example on how to use our package, we define a Feynman graph G from a list of edges:","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"julia> G=FeynmanGraph([(1, 2), (1,2),(1,2)])\nFeynmanGraph([(1, 2), (1, 2), (1, 2)])","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"We then define Feynman integral which includes polynomial with all variables required by our implementation:","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 2), (1, 2), (1, 2)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 7 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2]], Nemo.QQMPolyRingElem[q[1], q[2], q[3]], Nemo.QQMPolyRingElem[z[1], z[2]]))","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"We compute then the Feynman Integral of degree 3.","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"julia> f = feynman_integral_degree(F, 3)\n24*q[1]^6 + 20*q[1]^4*q[2]^2 + 20*q[1]^4*q[3]^2 + 20*q[1]^2*q[2]^4 + 20*q[1]^2*q[3]^4 + 24*q[2]^6 + 20*q[2]^4*q[3]^2 + 20*q[2]^2*q[3]^4 + 24*q[3]^6","category":"page"},{"location":"Hurwitz/#Examples-Hurwitz-numbers.","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"","category":"section"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"(Image: alt text)","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"To provide an example on how to use our package, we define a graph G from a list of edges:","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> G = FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3,4)] )\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"We then define a polynomial ring with all variables required by our implementation:","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> F=FeynmanIntegral(G)","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"Here, the indexed variables x correspond to the vertices of the graph, the indexed variables y to the edges of the graph, and the indexed variables z again to the vertices of the graph (the latter to be used in the context of Gromov-Witten invariants with non-trivial Psi-classes).","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"To compute a Feynman iuntegral, we define a partition a = 0 2 1 0 0 1 of degree d=3, a fixed order of vertex $ o=[1,3,4,2. We have then","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> a = [0, 2, 1, 0, 0, 1];","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> o=[1,3,4,2];","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"The Feynman Integral branch type for a fixed ordering is","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> feynman_integral_branch_type_order(F,a,o) \n128*q[2]^4*q[3]^2*q[6]^2","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"The Feynman Integral branch type for all ordering is","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> feynman_integral_branch_type(F, a) \n256*q[2]^4*q[3]^2*q[6]^2","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"also we can compute Feynman Integral of degree 3","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> f = feynman_integral_degree(F, 3)\n288*q[1]^6 + 32*q[1]^4*q[2]^2 + 32*q[1]^4*q[3]^2 + 32*q[1]^4*q[5]^2 + 32*q[1]^4*q[6]^2 + 8*q[1]^2*q[2]^2*q[5]^2 + 8*q[1]^2*q[2]^2*q[6]^2 + 8*q[1]^2*q[3]^2*q[5]^2 + 8*q[1]^2*q[3]^2*q[6]^2 + 24*q[2]^6 + 152*q[2]^4*q[3]^2 + 8*q[2]^4*q[5]^2 + 8*q[2]^4*q[6]^2 + 152*q[2]^2*q[3]^4 + 32*q[2]^2*q[3]^2*q[5]^2 + 32*q[2]^2*q[3]^2*q[6]^2 + 32*q[2]^2*q[4]^4 + 8*q[2]^2*q[4]^2*q[5]^2 + 8*q[2]^2*q[4]^2*q[6]^2 + 8*q[2]^2*q[5]^4 + 32*q[2]^2*q[5]^2*q[6]^2 + 8*q[2]^2*q[6]^4 + 24*q[3]^6 + 8*q[3]^4*q[5]^2 + 8*q[3]^4*q[6]^2 + 32*q[3]^2*q[4]^4 + 8*q[3]^2*q[4]^2*q[5]^2 + 8*q[3]^2*q[4]^2*q[6]^2 + 8*q[3]^2*q[5]^4 + 32*q[3]^2*q[5]^2*q[6]^2 + 8*q[3]^2*q[6]^4 + 288*q[4]^6 + 32*q[4]^4*q[5]^2 + 32*q[4]^4*q[6]^2 + 24*q[5]^6 + 152*q[5]^4*q[6]^2 + 152*q[5]^2*q[6]^4 + 24*q[6]^6","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"Finally we substitute all q variables by q_1 after computing the sum of all Feynman Integral of degree up to 8.","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> substitute(q,feynman_integral_degree_sum(F,8))\n10246144*q[1]^16 + 3294720*q[1]^14 + 886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 + 32*q[1]^4","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"CurrentModule = GromovWitten\nDocTestSetup = quote\nusing GromovWitten\nend","category":"page"},{"location":"quasimodular/#Quasimodular","page":"Quasimodular","title":"Quasimodular","text":"","category":"section"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"In this module, we compute the solution of the system Ax=b, where A is a matrix from homogeneous Eisenstein series E_2 E_4 E_6 and b from the Feynman Integral I(q) The solution is of the form (factor, coefficients) where coefficients is a vector of rationals numbers. Given a Feynman Integral","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"I(q)=sum_n=1^d a_i q^d","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"we compute the coefficients b_ijk such that","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"I(q)=sum_substackijk in mathbbN_0 2i+4j+6k=d b_ijk E_2^i E_4^j E_6^k","category":"page"},{"location":"quasimodular/#Example","page":"Quasimodular","title":"Example","text":"","category":"section"},{"location":"quasimodular/#Caterpillar-genus-3","page":"Quasimodular","title":"Caterpillar genus 3","text":"","category":"section"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"Consider the Caterpillar 3 graph","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"(Image: alt text)","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> G = FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3,4)] )\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We then define the FeynmanIntegral type.","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 14 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3], x[4]], Nemo.QQMPolyRingElem[q[1], q[2], q[3], q[4], q[5], q[6]], Nemo.QQMPolyRingElem[z[1], z[2], z[3], z[4]]))","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We compute the sum of all Feynman Integral of degree up to 6.","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> Iq=substitute(feynman_integral_degree_sum(F,6))\n886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 + 32*q[1]^4","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"To express the Feynman Integral Iq in term of Eisenstein series E_2 E_4 E_6, we define a polynomial ring in q","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> R,q=polynomial_ring(QQ,[\"q\"])\n(Multivariate polynomial ring in 1 variable over QQ, Nemo.QQMPolyRingElem[q])","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> Iqq=886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 + 32*q[1]^4\n886656*q^12 + 182272*q^10 + 25344*q^8 + 1792*q^6 + 32*q^4","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"we compute quasimodular form of Iq :","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> quasimodular_form(Iqq,12)\n(1//93312, -3*E2^6 + 6*E2^4*E4 + 4*E2^3*E6 - 3*E2^2*E4^2 - 12*E2*E4*E6 + 4*E4^3 + 4*E6^2)","category":"page"},{"location":"quasimodular/#Star-graph-K_-{1,3}","page":"Quasimodular","title":"Star graph K_ 13","text":"","category":"section"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"Consider the Star graph K_ 13 .","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"(Image: alt text)","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We want to find the quasimodular form of the sum of Feynman Integral Iq up to degree 6.","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We define first a polynomial ring in one variable q.","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> R,q=polynomial_ring(QQ,[\"q\"])\n(Multivariate polynomial ring in 1 variable over QQ, Nemo.QQMPolyRingElem[q])","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"The sum of Feynman Integral up to degree 6 is:","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> Iq= 843264*q[1]^12 + 165888*q[1]^10 + 20736*q[1]^8 + 1152*q[1]^6 \n843264*q^12 + 165888*q^10 + 20736*q^8 + 1152*q^6","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"The quasimodular form of Iq is then:","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> quasimodular_form(Iq,12)\n(1//20736, -E2^6 + 3*E2^4*E4 - 3*E2^2*E4^2 + E4^3)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"CurrentModule = GromovWitten","category":"page"},{"location":"Example/#Example-of-graph-with-vertex-contribution","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"","category":"section"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"(Image: alt text)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"To provide an example on how to use our package, we define a graph G from a list of edges:","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> ve = [ (1, 2), (2, 3), (3, 1)] \njulia> G = FeynmanGraph(ve)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"We then define the Feynman integral type F:","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 2), (2, 3), (3, 1)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 9 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3]], Nemo.QQMPolyRingElem[q[1], q[2], q[3]], Nemo.QQMPolyRingElem[z[1], z[2], z[3]]))","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"Here, the indexed variables x correspond to the vertices of the graph, the indexed variables y to the edges of the graph, and the indexed variables z again to the vertices of the graph (the latter to be used in the context of Gromov-Witten invariants with non-trivial Psi-classes).","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"To compute a Feynman iuntegral, we define a partition a=003 of degree d=3, a fixed order of vertex o=123 and the genus function g=100. The leak in G is L=000 , m=1 is the order of the sfunction.","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> g=[1,0,0];\njulia> a=[0,0,3];\njulia> o=[1,2,3]; ","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"We have then","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type_order(F,a,o,g)\n115//6*q[3]^6","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"The Feynman Integral branch type for all ordering with genus function g is","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type(F,a,g)\n115//3*q[3]^6","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"also we can compute Feynman Integral of degree 4","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":" julia> feynman_integral_degree(F,4,g)\n2041//12*q[1]^8 + 1//4*q[1]^6*q[2]^2 + 1//4*q[1]^6*q[3]^2 + 57//4*q[1]^4*q[2]^4 + 1//2*q[1]^4*q[2]^2*q[3]^2 + 57//4*q[1]^4*q[3]^4 + 1//4*q[1]^2*q[2]^6 + 1//2*q[1]^2*q[2]^4*q[3]^2 + 1//2*q[1]^2*q[2]^2*q[3]^4 + 1//4*q[1]^2*q[3]^6 + 2041//12*q[2]^8 + 1//4*q[2]^6*q[3]^2 + 57//4*q[2]^4*q[3]^4 + 1//4*q[2]^2*q[3]^6 + 2041//12*q[3]^8","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"Finally we substitute all q variables by q_1","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> substitute(feynman_integral_degree(F,4,g))\n556*q[1]^8","category":"page"},{"location":"Example/#Example-of-graph-without-vertex-contribution-and-loop.","page":"Example of graph with vertex contribution","title":"Example of graph without vertex contribution and loop.","text":"","category":"section"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"(Image: alt text)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> G = FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3,4)] )\ngraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> F=FeynmanIntegral(G)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> a = [0, 2, 1, 0, 0, 1];","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> o=[1,3,4,2];","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"\njulia> feynman_integral_branch_type_order(F,a,o) \n128*q[2]^4*q[3]^2*q[6]^2","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type(F, a) \n256*q[2]^4*q[3]^2*q[6]^2","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"also we can compute Feynman Integral of degree 3","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> f = feynman_integral_degree(F, 3)\n288*q[1]^6 + 32*q[1]^4*q[2]^2 + 32*q[1]^4*q[3]^2 + 32*q[1]^4*q[5]^2 + 32*q[1]^4*q[6]^2 + 8*q[1]^2*q[2]^2*q[5]^2 + 8*q[1]^2*q[2]^2*q[6]^2 + 8*q[1]^2*q[3]^2*q[5]^2 + 8*q[1]^2*q[3]^2*q[6]^2 + 24*q[2]^6 + 152*q[2]^4*q[3]^2 + 8*q[2]^4*q[5]^2 + 8*q[2]^4*q[6]^2 + 152*q[2]^2*q[3]^4 + 32*q[2]^2*q[3]^2*q[5]^2 + 32*q[2]^2*q[3]^2*q[6]^2 + 32*q[2]^2*q[4]^4 + 8*q[2]^2*q[4]^2*q[5]^2 + 8*q[2]^2*q[4]^2*q[6]^2 + 8*q[2]^2*q[5]^4 + 32*q[2]^2*q[5]^2*q[6]^2 + 8*q[2]^2*q[6]^4 + 24*q[3]^6 + 8*q[3]^4*q[5]^2 + 8*q[3]^4*q[6]^2 + 32*q[3]^2*q[4]^4 + 8*q[3]^2*q[4]^2*q[5]^2 + 8*q[3]^2*q[4]^2*q[6]^2 + 8*q[3]^2*q[5]^4 + 32*q[3]^2*q[5]^2*q[6]^2 + 8*q[3]^2*q[6]^4 + 288*q[4]^6 + 32*q[4]^4*q[5]^2 + 32*q[4]^4*q[6]^2 + 24*q[5]^6 + 152*q[5]^4*q[6]^2 + 152*q[5]^2*q[6]^4 + 24*q[6]^6","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"Finally we substitute all q variables by q_1 after computing the sum of all Feynman Integral of degree up to 8.","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> substitute(feynman_integral_degree_sum(F,8))\n10246144*q[1]^16 + 3294720*q[1]^14 + 886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 + 32*q[1]^4","category":"page"},{"location":"Example/#Example-of-graph-with-loop.","page":"Example of graph with vertex contribution","title":"Example of graph with loop.","text":"","category":"section"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"(Image: alt text)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> G=FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])\ngraph([(1, 1), (1, 2), (2, 3), (3, 1)])","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> F=FeynmanIntegral(G);","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> O=[1,2,3] \n3-element Vector{Int64}:\n 1\n 2\n 3","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> a=[ 2, 0, 0, 1]\n 4-element Vector{Int64}:\n 2\n 0\n 0\n 1","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type_order(F, a, O)\n3*q[1]^4*q[4]^2","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type(F, a) \n6*q[1]^4*q[4]^2","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_degree(F, 3)\n6*q[1]^4*q[2]^2 + 6*q[1]^4*q[3]^2 + 6*q[1]^4*q[4]^2 + 18*q[1]^2*q[2]^4 + 6*q[1]^2*q[2]^2*q[3]^2 + 6*q[1]^2*q[2]^2*q[4]^2 + 18*q[1]^2*q[3]^4 + 6*q[1]^2*q[3]^2*q[4]^2 + 18*q[1]^2*q[4]^4","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> substitute(feynman_integral_sum(F, 8))\n20640*q[1]^16 + 9996*q[1]^14 + 4320*q[1]^12 + 1650*q[1]^10 + 456*q[1]^8 + 90*q[1]^6 + 6*q[1]^4","category":"page"},{"location":"Feynman Integral/Feynman/#Feynman-Integral","page":"Feynman Integral","title":"Feynman Integral","text":"","category":"section"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"CurrentModule = GromovWitten\nDocTestSetup = quote\n using GromovWitten\nend","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"using GromovWitten","category":"page"},{"location":"Feynman Integral/Feynman/#Graph","page":"Feynman Integral","title":"Graph","text":"","category":"section"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"A Feynman graph is a (non-metrized) graph Γ without ends with n vertices which are labeled x_1 x_n and with labeled edges q_1 q_r. The graph G is represented as a collection of vertices V and edges E. Each edge is a pair (vw) where both v and w are elements of the set of vertices V.","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> ve=[(1, 1), (1, 2), (2, 3), (3, 1)]\n4-element Vector{Tuple{Int64, Int64}}:\n (1, 1)\n (1, 2)\n (2, 3)\n (3, 1)","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"and","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> G=FeynmanGraph(ve)\nFeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"We define the Feynman integral type, which contains the polynomial Ring and the graph G.","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 10 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3]], Nemo.QQMPolyRingElem[q[1], q[2], q[3], q[4]], Nemo.QQMPolyRingElem[z[1], z[2], z[3]]))","category":"page"},{"location":"Feynman Integral/Feynman/#Feynman-Integral-branche-type","page":"Feynman Integral","title":"Feynman Integral branche type","text":"","category":"section"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"For a given branch type a, we compute the Specific Feynman Integral of the labeled Graph. a is a list of partition of degree d=3 of Gamma.","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> a=[2,0,0,1]\n4-element Vector{Int64}:\n 2\n 0\n 0\n 1","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"o","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"is a fixed order of vertices.","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> o=[1,2,3]\n3-element Vector{Int64}:\n 1\n 2\n 3","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"We compute the Specific Feynman Integral for the Graph G given a fixed vertex ordering o and the partition of degree a. Here we have the defaults values of the leak vector and the genus function l=[0,0,0], g=[0,0,0] and we set the order of Sfunction $ m=0$","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> feynman_integral_branch_type_order(F,a,o)\n3*q[1]^4*q[4]^2","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"Here we have the defaults values of the leak vector and the genus function l=[0,0,0], g=[0,0,0] and we set the order of S-function $ m=0$\n","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"jldoctest graph julia> feynmanintegralbranch_type(F,a) 6q[1]^4q[4]^2","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"\n## Feynman Integral\n\nWe compute the Feynman Integral of the graph G over all partitions of the degree d=3 for a fixed ordering $o$.\n","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"jldoctest graph julia> feynmanintegraldegree_order(F,o,3) # here d=3 3q[1]^4q[4]^2 + q[1]^2q[2]^2q[3]^2 + q[1]^2q[2]^2q[4]^2 + q[1]^2q[3]^2q[4]^2 + 9q[1]^2q[4]^4","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"\nWe compute the Feynman integral over all the partitions of the degree d of graph G for all vertex ordering.\n","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"jldoctest graph julia> feynmanintegraldegree(F,3) # here d=3 6q[1]^4q[2]^2 + 6q[1]^4q[3]^2 + 6q[1]^4q[4]^2 + 18q[1]^2q[2]^4 + 6q[1]^2q[2]^2q[3]^2 + 6q[1]^2q[2]^2q[4]^2 + 18q[1]^2q[3]^4 + 6q[1]^2q[3]^2q[4]^2 + 18q[1]^2*q[4]^4","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"\nWe compute the sum of coefficients.\n","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> sumofcoeff( feynmanintegraldegree(F,3)) 90 ```","category":"page"},{"location":"Gromov/#Examples-Gromov-Witten-invariants","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"","category":"section"},{"location":"Gromov/#Graph-with-vertex-contribution","page":"Examples Gromov-Witten invariants","title":"Graph with vertex contribution","text":"","category":"section"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"(Image: alt text)","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"To provide an example on how to use our package, we define a graph G from a list of edges:","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> ve = [ (1, 2), (2, 3), (3, 1)] \njulia> G = FeynmanGraph(ve);","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"We then define a polynomial ring with all variables required by our implementation:","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> F=FeynmanIntegral(G);","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"To compute a Feynman iuntegral, we define a partition a=003 of degree d=3, a fixed order of vertex o=123 and the genus function g=100. The leak in G is L=000 , m=1 is the default order of the sfunction. We have then","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> g=[1,0,0];\njulia> a=[0,0,3];\njulia> o=[1,2,3]; ","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":" julia> feynman_integral_branch_type_order(F,a,o,g)\n115//6*q[3]^6","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"The Feynman Integral branch type for all ordering with genus function g is","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> feynman_integral_branch_type(F,a,g)\n115//3*q[3]^6","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"also we can compute Feynman Integral of degree 4","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":" julia> feynman_integral_degree(F,4,g)\n2041//12*q[1]^8 + 1//4*q[1]^6*q[2]^2 + 1//4*q[1]^6*q[3]^2 + 57//4*q[1]^4*q[2]^4 + 1//2*q[1]^4*q[2]^2*q[3]^2 + 57//4*q[1]^4*q[3]^4 + 1//4*q[1]^2*q[2]^6 + 1//2*q[1]^2*q[2]^4*q[3]^2 + 1//2*q[1]^2*q[2]^2*q[3]^4 + 1//4*q[1]^2*q[3]^6 + 2041//12*q[2]^8 + 1//4*q[2]^6*q[3]^2 + 57//4*q[2]^4*q[3]^4 + 1//4*q[2]^2*q[3]^6 + 2041//12*q[3]^8","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"Finally we substitute all q variables by q_1","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> substitute(feynman_integral_degree(F,4,g))\n556*q[1]^8","category":"page"},{"location":"Gromov/#Graph-with-loops.","page":"Examples Gromov-Witten invariants","title":"Graph with loops.","text":"","category":"section"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"(Image: alt text) We have a here a loop at (1,1).","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> G=FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])\nFeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> F=FeynmanIntegral(G);","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> O=[1,2,3]; # vertices order","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> a=[ 2, 0, 0, 1] # branch type.\n 4-element Vector{Int64}:\n 2\n 0\n 0\n 1","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> feynman_integral_branch_type_order(F, a, O)\n3*q[1]^4*q[4]^2","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> feynman_integral_branch_type(F, a) \n6*q[1]^4*q[4]^2","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> feynman_integral_degree(F, 3)\n6*q[1]^4*q[2]^2 + 6*q[1]^4*q[3]^2 + 6*q[1]^4*q[4]^2 + 18*q[1]^2*q[2]^4 + 6*q[1]^2*q[2]^2*q[3]^2 + 6*q[1]^2*q[2]^2*q[4]^2 + 18*q[1]^2*q[3]^4 + 6*q[1]^2*q[3]^2*q[4]^2 + 18*q[1]^2*q[4]^4","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> substitute(q,feynman_integral_sum(F, 8))\n20640*q[1]^16 + 9996*q[1]^14 + 4320*q[1]^12 + 1650*q[1]^10 + 456*q[1]^8 + 90*q[1]^6 + 6*q[1]^4","category":"page"},{"location":"#GromovWitten","page":"GromovWitten","title":"GromovWitten","text":"","category":"section"},{"location":"","page":"GromovWitten","title":"GromovWitten","text":"Documentation for GromovWitten.","category":"page"},{"location":"","page":"GromovWitten","title":"GromovWitten","text":"The package GromovWitten computes generating series for tropical Hurwitz numbers of elliptic curves via mirror symmetry and Feynman integrals, and thus, by a correspondence theorem, Hurwitz numbers in the sense algebraic geometry. Generalizations of the method also allow for the computation of Gromov-Witten invariants for ellptic curves, and are also implemented in the package. GromovWitten is based on the computeralgebra system OSCAR and is provided as a package for the Julia programming language.","category":"page"},{"location":"Installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"Installation/","page":"Installation","title":"Installation","text":"We assume that Julia is installed in a recent enough version to run OSCAR. Navigate in a terminal to the folder where you want to install the package and pull the package from Github:","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"git pull https://github.com/singular-gpispace/GromovWitten.git","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"In the same folder execute the following command:","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"julia --project","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"This will activate the environment for our package. In Julia install missing packages:","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"import Pkg; Pkg.instantiate()","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"and load our package. On the first run this may take some time.","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"using GromovWitten ","category":"page"}]
+[{"location":"Overview/#Overview","page":"Functions","title":"Overview","text":"","category":"section"},{"location":"Overview/","page":"Functions","title":"Functions","text":"Modules = [GromovWitten]","category":"page"},{"location":"Overview/","page":"Functions","title":"Functions","text":"Modules = [GromovWitten]","category":"page"},{"location":"Overview/#GromovWitten.GromovWitten","page":"Functions","title":"GromovWitten.GromovWitten","text":"GromovWitten is a package for computing Gromov-Witten invariant via Feynman Integral .\n\n\n\n\n\n","category":"module"},{"location":"Overview/#GromovWitten.constterm-Tuple{Nemo.QQMPolyRingElem, Nemo.QQMPolyRingElem, Integer}","page":"Functions","title":"GromovWitten.constterm","text":"constterm( x1::QQMPolyRingElem, x2::QQMPolyRingElem, N::Integer)\n\nreturns the constant term of the propagator\n\nExamples (without vertex contribution)\n\njulia> R,x=polynomial_ring(QQ,:x=>1:2); # using Nemo.\njulia> constterm(x[1],x[2],3)\n 3*x[1]^6 + 2*x[1]^5*x[2] + x[1]^4*x[2]^2\n\n constterm(x1::QQMPolyRingElem, x2::QQMPolyRingElem, z1::QQMPolyRingElem, z2::QQMPolyRingElem,aa::Integer, N::Integer)\n\nhere aa=1 is the order for sfunction series and N=sum_n=1^3g-3 a_i where a=a_1a_3g-3 is a branch type.\n\nExamples (with vertex contribution)\n\njulia> R,x,z=polynomial_ring(QQ,:x=>1:2,:z=>1:2); # using Nemo.\n\njulia> constterm(x[1],x[2],z[1],z[2],1,2)\n 1//18*x[1]^4*z[1]^2*z[2]^2 + 1//3*x[1]^4*z[1]^2 + 1//3*x[1]^4*z[2]^2 + 2*x[1]^4 + 1//576*x[1]^3*x[2]*z[1]^2*z[2]^2 + 1//24*x[1]^3*x[2]*z[1]^2 + 1//24*x[1]^3*x[2]*z[2]^2 + x[1]^3*x[2]\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.eisenstein_series-Tuple{Int64, Int64, Union{Nemo.QQMPolyRingElem, Vector{Nemo.QQMPolyRingElem}}}","page":"Functions","title":"GromovWitten.eisenstein_series","text":" eisenstein_series(order::Int, k::Int)\n\nReturn the expansion of the weight Eisenstein series k with fixed order. For a fixed order m, we compute E_k = 1 - frac2 k B_k sum_d=1^m sigma_k-1(d) q1^2 d\n\njulia> eisenstein_series(5,2) #E2\n-144*q[1]^10 - 168*q[1]^8 - 96*q[1]^6 - 72*q[1]^4 - 24*q[1]^2 + 1\n\njulia> eisenstein_series(5,4) #E4\n30240*q[1]^10 + 17520*q[1]^8 + 6720*q[1]^6 + 2160*q[1]^4 + 240*q[1]^2 + 1\n\neisenstein_series( num_terms::Int,k::Int,q::Union{QQMPolyRingElem, Vector{QQMPolyRingElem}})\n\njulia> eisenstein_series(5,2,q) #E2\n-144*q[1]^10 - 168*q[1]^8 - 96*q[1]^6 - 72*q[1]^4 - 24*q[1]^2 + 1\njulia> eisenstein_series(5,4,q) #E4\n30240*q[1]^10 + 17520*q[1]^8 + 6720*q[1]^6 + 2160*q[1]^4 + 240*q[1]^2 + 1\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_branch_type-Tuple{FeynmanIntegral, Vector{Int64}}","page":"Functions","title":"GromovWitten.feynman_integral_branch_type","text":"feynman_integral_branch_type( F::FeynmanGraph, a::Vector{Int64} ;l=zeros(Int,nv(F.G)))\n\ncompute the Feynman Integral for a specified branch type a for all ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,2,1,0,0,1];\n\njulia> feynman_integral_branch_type(F,a)\n256*q[2]^4*q[3]^2*q[6]^2\n\n feynman_integral_branch_type( F::FeynmanGraph, a::Vector{Int64} ;g=zeros(Int,nv(F.G)),l=zeros(Int,nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\nFeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\n\njulia> feynman_integral_branch_type(F,a,g)\n115//3*q[3]^6\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_branch_type_order-Tuple{FeynmanIntegral, Vector{Int64}, Vector{Int64}}","page":"Functions","title":"GromovWitten.feynman_integral_branch_type_order","text":"feynman_integral_branch_type_order( F::FeynmanGraph, a::Vector{Int64} ,Ω::Vector{Int64};l=zeros(Int,nv(F.G)))\n\ncompute the Feynman Integral for a specified branch type a for a fixed ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,2,1,0,0,1];\n\njulia> Ω=[1,3,4,2];\n\njulia> feynman_integral_branch_type_order(F,a,Ω)\n128*q[2]^2=4*q[3]^2*q[6]^2\n\n feynman_integral_branch_type_order( F::FeynmanGraph, a::Vector{Int64}, Ω::Vector{Int64}, g::Vector{Int64};l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\nFeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\njulia> Ω=[1,2,3];\n\n\njulia> feynman_integral_branch_type_order(F,a,Ω,g)\n115//6*q[3]^6\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_degree-Tuple{FeynmanIntegral, Int64}","page":"Functions","title":"GromovWitten.feynman_integral_degree","text":" feynman_integral_degree( F::FeynmanGraph,d::Integer;l=zeros(Int,nv(F.G)))\n\ncompute the Feynman Integral for over all the partitions of the degree d for all ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> a=[0,2,1,0,0,1];\n\njulia> feynman_integral_degree(F,3)\n\n288*q[1]^6 + 32*q[1]^4*q[2]^2 + 32*q[1]^4*q[3]^2 + 32*q[1]^4*q[5]^2 + 32*q[1]^4*q[6]^2 + 8*q[1]^2*q[2]^2*q[5]^2 + 8*q[1]^2*q[2]^2*q[6]^2 + 8*q[1]^2*q[3]^2*q[5]^2 + 8*q[1]^2*q[3]^2*q[6]^2 + 24*q[2]^6 + 152*q[2]^4*q[3]^2 + 8*q[2]^4*q[5]^2 + 8*q[2]^4*q[6]^2 + 152*q[2]^2*q[3]^4 + 32*q[2]^2*q[3]^2*q[5]^2 + 32*q[2]^2*q[3]^2*q[6]^2 + 32*q[2]^2*q[4]^4 + 8*q[2]^2*q[4]^2*q[5]^2 + 8*q[2]^2*q[4]^2*q[6]^2 + 8*q[2]^2*q[5]^4 + 32*q[2]^2*q[5]^2*q[6]^2 + 8*q[2]^2*q[6]^4 + 24*q[3]^6 + 8*q[3]^4*q[5]^2 + 8*q[3]^4*q[6]^2 + 32*q[3]^2*q[4]^4 + 8*q[3]^2*q[4]^2*q[5]^2 + 8*q[3]^2*q[4]^2*q[6]^2 + 8*q[3]^2*q[5]^4 + 32*q[3]^2*q[5]^2*q[6]^2 + 8*q[3]^2*q[6]^4 + 288*q[4]^6 + 32*q[4]^4*q[5]^2 + 32*q[4]^4*q[6]^2 + 24*q[5]^6 + 152*q[5]^4*q[6]^2 + 152*q[5]^2*q[6]^4 + 24*q[6]^6\n\n\n\n feynman_integral_degree( F::FeynmanGraph,d::Integer, g::Vector{Int64};l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\n\njulia> feynman_integral_degree(F,3,g)\n115//3*q[1]^6 + 1//4*q[1]^4*q[2]^2 + 1//4*q[1]^4*q[3]^2 + 1//4*q[1]^2*q[2]^4 + 1//2*q[1]^2*q[2]^2*q[3]^2 + 1//4*q[1]^2*q[3]^4 + 115//3*q[2]^6 + 1//4*q[2]^4*q[3]^2 + 1//4*q[2]^2*q[3]^4 + 115//3*q[3]^6\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_degree_order-Tuple{FeynmanIntegral, Vector{Int64}, Integer}","page":"Functions","title":"GromovWitten.feynman_integral_degree_order","text":"feynman_integral_degree_order( F::FeynmanGraph,o::Vector{Int64},d::Integer;l=zeros(Int,nv(F.G)))\n\ncompute the Feynman Integral for all the partitions of the degree d for a fixed ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,2,1,0,0,1];\n\njulia> Ω=[1,3,4,2];\n\njulia> feynman_integral_degree_order(F,Ω,4)\n4*q[1]^4*q[2]^2*q[3]^2 + 4*q[1]^2*q[2]^4*q[5]^2 + 4*q[1]^2*q[2]^4*q[6]^2 + 4*q[1]^2*q[3]^4*q[5]^2 + 4*q[1]^2*q[3]^4*q[6]^2 + 176*q[2]^8 + 496*q[2]^6*q[3]^2 + 60*q[2]^6*q[5]^2 + 60*q[2]^6*q[6]^2 + 788*q[2]^4*q[3]^4 + 128*q[2]^4*q[3]^2*q[5]^2 + 128*q[2]^4*q[3]^2*q[6]^2 + 4*q[2]^4*q[4]^2*q[5]^2 + 4*q[2]^4*q[4]^2*q[6]^2 + 16*q[2]^4*q[5]^4 + 16*q[2]^4*q[6]^4 + 496*q[2]^2*q[3]^6 + 128*q[2]^2*q[3]^4*q[5]^2 + 128*q[2]^2*q[3]^4*q[6]^2 + 4*q[2]^2*q[3]^2*q[4]^4 + 48*q[2]^2*q[3]^2*q[5]^4 + 4*q[2]^2*q[3]^2*q[5]^2*q[6]^2 + 48*q[2]^2*q[3]^2*q[6]^4 + 176*q[3]^8 + 60*q[3]^6*q[5]^2 + 60*q[3]^6*q[6]^2 + 4*q[3]^4*q[4]^2*q[5]^2 + 4*q[3]^4*q[4]^2*q[6]^2 + 16*q[3]^4*q[5]^4 + 16*q[3]^4*q[6]^4\n\n feynman_integral_degree_order( F::FeynmanGraph,o::Vector{Int64},d::Integer, g::Vector{Int64};l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\njulia> Ω=[1,2,3];\n\njulia> feynman_integral_degree_order(F,Ω,3,g)\n1//24*q[1]^4*q[2]^2 + 1//24*q[1]^4*q[3]^2 + 1//24*q[1]^2*q[2]^4 + 1//12*q[1]^2*q[2]^2*q[3]^2 + 1//24*q[1]^2*q[3]^4 + 1//24*q[2]^4*q[3]^2 + 1//24*q[2]^2*q[3]^4 + 115//6*q[3]^6\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_degree_sum-Tuple{FeynmanIntegral, Union{Int64, Vector{Int64}}}","page":"Functions","title":"GromovWitten.feynman_integral_degree_sum","text":" feynman_integral_degree_sum( F::FeynmanGraph, d::Union{Int64, Vector{Int64}}; l=zeros(Int, nv(F.G)))\n\ncompute the sum of all Feynman Integrals up to a certain degree d for all ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> F=FeynmanIntegral(G);\n\n\njulia> feynman_integral_degree_sum(F,3)\n288*q[1]^6 + 32*q[1]^4*q[2]^2 + 32*q[1]^4*q[3]^2 + 32*q[1]^4*q[5]^2 + 32*q[1]^4*q[6]^2 + 8*q[1]^4 + 8*q[1]^2*q[2]^2*q[5]^2 + 8*q[1]^2*q[2]^2*q[6]^2 + 8*q[1]^2*q[3]^2*q[5]^2 + 8*q[1]^2*q[3]^2*q[6]^2 + 24*q[2]^6 + 152*q[2]^4*q[3]^2 + 8*q[2]^4*q[5]^2 + 8*q[2]^4*q[6]^2 + 152*q[2]^2*q[3]^4 + 32*q[2]^2*q[3]^2*q[5]^2 + 32*q[2]^2*q[3]^2*q[6]^2 + 8*q[2]^2*q[3]^2 + 32*q[2]^2*q[4]^4 + 8*q[2]^2*q[4]^2*q[5]^2 + 8*q[2]^2*q[4]^2*q[6]^2 + 8*q[2]^2*q[5]^4 + 32*q[2]^2*q[5]^2*q[6]^2 + 8*q[2]^2*q[6]^4 + 24*q[3]^6 + 8*q[3]^4*q[5]^2 + 8*q[3]^4*q[6]^2 + 32*q[3]^2*q[4]^4 + 8*q[3]^2*q[4]^2*q[5]^2 + 8*q[3]^2*q[4]^2*q[6]^2 + 8*q[3]^2*q[5]^4 + 32*q[3]^2*q[5]^2*q[6]^2 + 8*q[3]^2*q[6]^4 + 288*q[4]^6 + 32*q[4]^4*q[5]^2 + 32*q[4]^4*q[6]^2 + 8*q[4]^4 + 24*q[5]^6 + 152*q[5]^4*q[6]^2 + 152*q[5]^2*q[6]^4 + 8*q[5]^2*q[6]^2 + 24*q[6]^6\n\n\n\n feynman_integral_degree_sum( F::FeynmanGraph, d::Union{Int64, Vector{Int64}}, g::Vector{Int64};l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\njulia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\n\njulia> feynman_integral_degree_sum(F,3,g)\n115//3*q[1]^6 + 1//4*q[1]^4*q[2]^2 + 1//4*q[1]^4*q[3]^2 + 19//4*q[1]^4 + 1//4*q[1]^2*q[2]^4 + 1//2*q[1]^2*q[2]^2*q[3]^2 + 1//4*q[1]^2*q[2]^2 + 1//4*q[1]^2*q[3]^4 + 1//4*q[1]^2*q[3]^2 + 1//12*q[1]^2 + 115//3*q[2]^6 + 1//4*q[2]^4*q[3]^2 + 19//4*q[2]^4 + 1//4*q[2]^2*q[3]^4 + 1//4*q[2]^2*q[3]^2 + 1//12*q[2]^2 + 115//3*q[3]^6 + 19//4*q[3]^4 + 1//12*q[3]^2\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.feynman_integral_degree_sum_order-Tuple{FeynmanIntegral, Vector{Int64}, Union{Int64, Vector{Int64}}}","page":"Functions","title":"GromovWitten.feynman_integral_degree_sum_order","text":" feynman_integral_degree_sum_order( F::FeynmanGraph,o::Vector{Int64}, d::Union{Int64, Vector{Int64}}; g=zeros(Int, nv(F.G)),l=zeros(Int, nv(F.G)))\n\ncompute the sum of all Feynman Integrals up to a certain degree d with a fixed ordering Ω\n\nExamples (without vertex contribution)\n\njulia> G=FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])\n\njulia> a=[0,2,1,0,0,1];\n\njulia> Ω=[1,3,4,2];\n\n\njulia> feynman_integral_degree_sum_order(F,Ω,3)\n12*q[2]^6 + 76*q[2]^4*q[3]^2 + 4*q[2]^4*q[5]^2 + 4*q[2]^4*q[6]^2 + 76*q[2]^2*q[3]^4 + 16*q[2]^2*q[3]^2*q[5]^2 + 16*q[2]^2*q[3]^2*q[6]^2 + 4*q[2]^2*q[3]^2 + 12*q[3]^6 + 4*q[3]^4*q[5]^2 + 4*q[3]^4*q[6]^2\n\n\n\n feynman_integral_degree_sum_order( F::FeynmanGraph,o::Vector{Int64}, d::Union{Int64, Vector{Int64}}, g::Vector{Int64}; l=zeros(Int, nv(F.G)))\n\nExamples (with vertex contribution)\n\n julia> G=FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n FeynmanGraph([(1, 2), (2, 3), (1, 3)])\n\njulia> F=FeynmanIntegral(G);\n\njulia> a=[0,0,3];\njulia> g=[1,0,0];\njulia> Ω=[1,2,3];\n\n\njulia> feynman_integral_degree_sum_order(F,Ω,3,g)\n1//24*q[1]^4*q[2]^2 + 1//24*q[1]^4*q[3]^2 + 1//24*q[1]^2*q[2]^4 + 1//12*q[1]^2*q[2]^2*q[3]^2 + 1//24*q[1]^2*q[2]^2 + 1//24*q[1]^2*q[3]^4 + 1//24*q[1]^2*q[3]^2 + 1//24*q[2]^4*q[3]^2 + 1//24*q[2]^2*q[3]^4 + 1//24*q[2]^2*q[3]^2 + 115//6*q[3]^6 + 19//8*q[3]^4 + 1//24*q[3]^2\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.filter_term-Tuple{Union{Int64, Nemo.QQMPolyRingElem, Nemo.QQPolyRingElem}, Union{Vector{Nemo.QQMPolyRingElem}, Vector{Nemo.QQPolyRingElem}, Nemo.QQMPolyRingElem, Nemo.QQPolyRingElem}, Union{Int64, Vector{Int64}}}","page":"Functions","title":"GromovWitten.filter_term","text":" filter_term(p::Union{QQMPolyRingElem, Int64}, variables::Vector{QQMPolyRingElem}, s::Vector{Int64})\n\nreplaces all terms of the polynomial p with zero whenever the variables raised to a power of s1 exceed the specified power s.\n\nExamples\n\njulia> R,x=polynomial_ring(QQ, :q=>1:4)\njulia> p= 8*q[1]^6*q[2]^2 + 8*q[1]^6*q[3]^2 + 8*q[1]^6*q[4]^2 + 54*q[1]^4*q[2]^4 + 18*q[1]^4*q[2]^2*q[3]^2 + 18*q[1]^4*q[2]^2*q[4]^2 +54*q[1]^4*q[3]^4 + 18*q[1]^4*q[3]^2*q[4]^2 + 54*q[1]^4*q[4]^4 + 56*q[1]^2*q[2]^6 + 6*q[1]^2*q[2]^4*q[3]^2 + 6*q[1]^2*q[2]^4*q[4]^2 +6*q[1]^2*q[2]^2*q[3]^4 + 12*q[1]^2*q[2]^2*q[3]^2*q[4]^2 + 6*q[1]^2*q[2]^2*q[4]^4 + 56*q[1]^2*q[3]^6 + 6*q[1]^2*q[3]^4*q[4]^2 + 6*q[1]^2*q[3]^2*q[4]^4 + 56*q[1]^2*q[4]^6\n\nwe replace all term in p with q[1]^a*q[2]^b*q[3]^c > q[1]*q[2]*q[3] by zero,this means all power (abc)(222)\n\njulia> filter_term(p,[q[1],q[2],q[3]],[2,2,2])\n12*q[1]^2*q[2]^2*q[3]^2*q[4]^2 + 6*q[1]^2*q[2]^2*q[4]^4 + 6*q[1]^2*q[3]^2*q[4]^4 + 56*q[1]^2*q[4]^6\n\nalso\n\njulia> filter_term(p,[q[1],q[2]],[2,2])\n6*q[1]^2*q[2]^2*q[3]^4 + 12*q[1]^2*q[2]^2*q[3]^2*q[4]^2 + 6*q[1]^2*q[2]^2*q[4]^4 + 56*q[1]^2*q[3]^6 + 6*q[1]^2*q[3]^4*q[4]^2 + 6*q[1]^2*q[3]^2*q[4]^4 + 56*q[1]^2*q[4]^6 + q[1]\n\njulia> filter_term(p,q[1],1)\nq[1]\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.filter_vector-Tuple{Vector{Nemo.QQMPolyRingElem}, Union{Nemo.QQMPolyRingElem, Vector{Nemo.QQMPolyRingElem}}, Union{Int64, Vector{Int64}}}","page":"Functions","title":"GromovWitten.filter_vector","text":"filter_vector(polyvector::Vector{QQMPolyRingElem}, variables::Union{Vector{QQMPolyRingElem}, QQMPolyRingElem}, power::Union{Vector{Int64}, Int64})\n\nreturns the number filter_term of function in a vector of polynomial.\n\nExample\n\njulia> R,q=polynomial_ring(QQ,[\"q\"])\n\njulia> v=[-122976*q[1]^6 - 16632*q[1]^4 - 504*q[1]^2 + 1, -645120*q[1]^12 - 691200*q[1]^10 - 339840*q[1]^8 - 62496*q[1]^6 - 3672*q[1]^4 + 216*q[1]^2 + 1, -884736*q[1]^18 - 1990656*q[1]^16 - 2156544*q[1]^14 - 1340928*q[1]^12 - 497664*q[1]^10 - 95040*q[1]^8 - 3744*q[1]^6 + 1512*q[1]^4 - 72*q[1]^2 + 1]\n\njulia> filter_vector(v,q,6)\n3-element Vector{QQMPolyRingElem}:\n -122976*q[1]^6 - 16632*q[1]^4 - 504*q[1]^2 + 1\n -62496*q[1]^6 - 3672*q[1]^4 + 216*q[1]^2 + 1\n -3744*q[1]^6 + 1512*q[1]^4 - 72*q[1]^2 + 1\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.flip_signature-Tuple{FeynmanGraph, Vector{Int64}, Vector{Int64}}","page":"Functions","title":"GromovWitten.flip_signature","text":"flip_signature(F::FeynmanGraph ,p::Vector{Int64},a::Vector{Int64})\n\nLet Ω=[x1,...,xn] be a given Order and a a branche type,flipsignature returns -1 if xi R,x=polynomial_ring(QQ,:x=>1:1); # using Nemo\njulia> inv_sfunction(x[1],4)\n7//5760*x[1]^4 - 1//24*x[1]^2 + 1\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.loopterm-Tuple{Nemo.QQMPolyRingElem, Nemo.QQMPolyRingElem, Integer, Integer}","page":"Functions","title":"GromovWitten.loopterm","text":"loopterm( z::QQMPolyRingElem, q::QQMPolyRingElem, m::Integer, a::Integer)\n\nreturns loop contribution with nonzero genus gi at a vertex i. \n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.matrix_of_integral-Tuple{Nemo.QQMPolyRingElem}","page":"Functions","title":"GromovWitten.matrix_of_integral","text":" polynomial_to_matrix(vect::Vector{QQMPolyRingElem})\n\nreturns a matrix from a given polynomial. The returned matrix is of type QQMatrix.\n\njulia> Iq=25344*q[1]^8 + 1792*q[1]^6 +32q[1]^4\n\njulia> matrix_of_integral(Iq)\n[ 0]\n[ 0]\n[ 0]\n[ 0]\n[ 32]\n[ 0]\n[ 1792]\n[ 0]\n[25344]\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.next_partition-Tuple{Vector{Int64}}","page":"Functions","title":"GromovWitten.next_partition","text":"combination(f::Function, k::Int, d::Int)\nnext_partition(a::Vector{Int})\n\n#Examples\n\nThis function returns the number of partitions of n into fixed k parts. \n\njulia> using GromovWitten\n\njulia> combination(next_partition,3, 4)\n15-element Vector{Vector{Int64}}:\n [4, 0, 0]\n [3, 1, 0]\n [3, 0, 1]\n [2, 2, 0]\n [2, 1, 1]\n [2, 0, 2]\n [1, 3, 0]\n [1, 2, 1]\n [1, 1, 2]\n [1, 0, 3]\n [0, 4, 0]\n [0, 3, 1]\n [0, 2, 2]\n [0, 1, 3]\n [0, 0, 4]\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.polynomial_to_matrix-Tuple{Vector{Nemo.QQMPolyRingElem}}","page":"Functions","title":"GromovWitten.polynomial_to_matrix","text":" polynomial_to_matrix(vect::Vector{QQMPolyRingElem})\n\nreturns a matrix fromed by the coefficients of a given vector of polynomials with same degree. The returned matrix is of type QQMatrix.\n\njulia> vp=[ -122976*q[1]^6 - 16632*q[1]^4 - 504*q[1]^2 + 1, -62496*q[1]^6 - 3672*q[1]^4 + 216*q[1]^2 + 1,-3744*q[1]^6 + 1512*q[1]^4 - 72*q[1]^2 + 1]\n\njulia> polynomial_to_matrix(vp)\n[ 1 1 1]\n[ 0 0 0]\n[ -504 216 -72]\n[ 0 0 0]\n[ -16632 -3672 1512]\n[ 0 0 0]\n[-122976 -62496 -3744]\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.proterm-Tuple{Nemo.QQMPolyRingElem, Nemo.QQMPolyRingElem, Nemo.QQMPolyRingElem, Integer, Integer}","page":"Functions","title":"GromovWitten.proterm","text":" proterm( x1::QQMPolyRingElem, x2::QQMPolyRingElem, q::QQMPolyRingElem, a::Integer, N::Integer)\n\nreturns the non constant term of the propagator\n\nExamples (without vertex contribution)\n\njulia> R,x,z=polynomial_ring(QQ,:x=>1:2,:q=>1:2); # using Nemo.\njulia> proterm(x[1],x[2],q[1],1,2)\nx[1]^3*x[2]*q[1]^2 + x[1]*x[2]^3*q[1]^2\n\nExamples (with vertex contribution)\n\n proterm( x1::QQMPolyRingElem, x2::QQMPolyRingElem,z1::QQMPolyRingElem, z2::QQMPolyRingElem, q::QQMPolyRingElem, a::Integer,aa::Integer, N::Integer)\n\njulia> R,x,q,z=polynomial_ring(QQ,:x=>1:2,:q=>1:2,:z=>1:2); # using Nemo.\njulia> proterm(x[1],x[2],z[1],z[2],q[1],1,1,2)\n1//576*x[1]^3*x[2]*q[1]^2*z[1]^2*z[2]^2 + 1//24*x[1]^3*x[2]*q[1]^2*z[1]^2 + 1//24*x[1]^3*x[2]*q[1]^2*z[2]^2 + x[1]^3*x[2]*q[1]^2 + 1//576*x[1]*x[2]^3*q[1]^2*z[1]^2*z[2]^2 + 1//24*x[1]*x[2]^3*q[1]^2*z[1]^2 + 1//24*x[1]*x[2]^3*q[1]^2*z[2]^2 + x[1]*x[2]^3*q[1]^2\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.quasimodularity_form-Tuple{Any, Int64}","page":"Functions","title":"GromovWitten.quasimodularity_form","text":"quasimodular_form(Iq, weightmax::Int64)\n\nexpress the Feynman Integral polynomial I(q) in terms of a polynomial in E_2 E_4 E_6 This leads to I(q)=sum_ijk b_ijk E_2^i E_4^j E_6^k\n\njulia> R,q=polynomial_ring(QQ,[\"q\"])\n\njulia> Iq=886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 +32q[1]^4\n\nWe define the polynomial ring in E2,E4,E6.\n\njulia> quasimodular_form(Iq,12)\n(1//93312, -3*E2^6 + 6*E2^4*E4 + 4*E2^3*E6 - 3*E2^2*E4^2 - 12*E2*E4*E6 + 4*E4^3 + 4*E6^2)\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.sfunction-Tuple{Nemo.QQMPolyRingElem, Int64}","page":"Functions","title":"GromovWitten.sfunction","text":"sfunction(z::QQMPolyRingElem,k::Int64)\n\nNote:The function sfunction(z,k) takes account vertex contributions. \n\nS(z m) = sum_n = 0^m dfrac2^- 1 - n (1 + (- 1)^n)\n(n + 1) z^n = sum_n = 0^m dfrac2^- 2 n (2 n + 1) \nz^n m rightarrow infty\n\nExamples\n\njulia> R,x=polynomial_ring(QQ,:x=>1:1); # using Nemo\njulia> sfunction(x[1],4)\n\n1//92897280*z[1]^8 + 1//322560*z[1]^6 + 1//1920*z[1]^4 + 1//24*z[1]^2 +1\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.signature_and_multiplicities-Tuple{FeynmanGraph, Vector{Int64}}","page":"Functions","title":"GromovWitten.signature_and_multiplicities","text":"signature_and_multiplicities( G::FeynmanGraph, a::Vector{Int64})\n\nreturns flip_signature and their multiplicities.\n\nExamples\n\njulia> using GromovWitten\n\njulia> G=FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])\nFeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])\n\njulia> a=[2,0,0,1];\n\njulia> signature_and_multiplicities(G,a)\n2-element Vector{Tuple{Int64, Vector{Int64}}}:\n (4, [-2, -1, 0, 1])\n (2, [-2, 0, 0, 1])\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.substitute-Tuple{Union{Int64, Nemo.QQMPolyRingElem}}","page":"Functions","title":"GromovWitten.substitute","text":" substitute(p::Union{QQMPolyRingElem, Int64})\n\nreplace all the variables by the first variable of p. With x=\\[x_1,x2,x3 \\] and p(x_1,x2,x3), substitute(x,p) returns p(x1,x_1,x_1)\n\njulia> f=x[1]*x[2]+x[1]^3*x[2]+5x[1]^6-2x[3]*x[2]\n 5*x[1]^6 + x[1]^3*x[2] + x[1]*x[2] - 2*x[2]*x[3]\n\njulia> substitute(f)\n 5*x[1]^6 + x[1]^4 - x[1]^2\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.sum_of_coeff-Tuple{Nemo.QQMPolyRingElem}","page":"Functions","title":"GromovWitten.sum_of_coeff","text":" sum_of_coeff(p::QQMPolyRingElem)\n\ncompute the sum of coefficient of the polynomial p. \n\njulia> f=3*x[1]^6 + 2*x[1]^5*x[2] + x[1]^4*x[2]^2\n\njulia> sum_of_coeff(f)\n 6\n\n\n\n\n\n\n\n","category":"method"},{"location":"Overview/#GromovWitten.sum_of_divisor_powers-Tuple{Int64, Int64}","page":"Functions","title":"GromovWitten.sum_of_divisor_powers","text":"sum_of_divisor_powers(n::Int, k::Int)\n\nσ_k(n)\n\nreturns the sum of the k^th powers of divisors of n. it returns also the number of divisors d(n) of n for k=0. \n\njulia>sum_of_divisor_powers(6,0) # number of divisors of 6 $d(6)$\n4\n\nsum of divisors of 6.\njulia> sum_of_divisor_powers(6,1)\n12\n\n\n\n\n\n","category":"method"},{"location":"SmallExample/","page":"First example","title":"First example","text":"CurrentModule = GromovWitten\nDocTestSetup = quote\n using GromovWitten\nend","category":"page"},{"location":"SmallExample/#First-example","page":"First example","title":"First example","text":"","category":"section"},{"location":"SmallExample/","page":"First example","title":"First example","text":"(Image: alt text)","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"To provide an example on how to use our package, we define a Feynman graph G from a list of edges:","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"julia> G=FeynmanGraph([(1, 2), (1,2),(1,2)])\nFeynmanGraph([(1, 2), (1, 2), (1, 2)])","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"We then define Feynman integral which includes polynomial with all variables required by our implementation:","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 2), (1, 2), (1, 2)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 7 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2]], Nemo.QQMPolyRingElem[q[1], q[2], q[3]], Nemo.QQMPolyRingElem[z[1], z[2]]))","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"We compute then the Feynman Integral of degree 3.","category":"page"},{"location":"SmallExample/","page":"First example","title":"First example","text":"julia> f = feynman_integral_degree(F, 3)\n24*q[1]^6 + 20*q[1]^4*q[2]^2 + 20*q[1]^4*q[3]^2 + 20*q[1]^2*q[2]^4 + 20*q[1]^2*q[3]^4 + 24*q[2]^6 + 20*q[2]^4*q[3]^2 + 20*q[2]^2*q[3]^4 + 24*q[3]^6","category":"page"},{"location":"Hurwitz/#Examples-Hurwitz-numbers.","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"","category":"section"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"(Image: alt text)","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"To provide an example on how to use our package, we define a graph G from a list of edges:","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> G = FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3,4)] )\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"We then define a polynomial ring with all variables required by our implementation:","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> F=FeynmanIntegral(G)","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"Here, the indexed variables x correspond to the vertices of the graph, the indexed variables y to the edges of the graph, and the indexed variables z again to the vertices of the graph (the latter to be used in the context of Gromov-Witten invariants with non-trivial Psi-classes).","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"To compute a Feynman iuntegral, we define a partition a = 0 2 1 0 0 1 of degree d=3, a fixed order of vertex $ o=[1,3,4,2. We have then","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> a = [0, 2, 1, 0, 0, 1];","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> o=[1,3,4,2];","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"The Feynman Integral branch type for a fixed ordering is","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> feynman_integral_branch_type_order(F,a,o) \n128*q[2]^4*q[3]^2*q[6]^2","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"The Feynman Integral branch type for all ordering is","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> feynman_integral_branch_type(F, a) \n256*q[2]^4*q[3]^2*q[6]^2","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"also we can compute Feynman Integral of degree 3","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> f = feynman_integral_degree(F, 3)\n288*q[1]^6 + 32*q[1]^4*q[2]^2 + 32*q[1]^4*q[3]^2 + 32*q[1]^4*q[5]^2 + 32*q[1]^4*q[6]^2 + 8*q[1]^2*q[2]^2*q[5]^2 + 8*q[1]^2*q[2]^2*q[6]^2 + 8*q[1]^2*q[3]^2*q[5]^2 + 8*q[1]^2*q[3]^2*q[6]^2 + 24*q[2]^6 + 152*q[2]^4*q[3]^2 + 8*q[2]^4*q[5]^2 + 8*q[2]^4*q[6]^2 + 152*q[2]^2*q[3]^4 + 32*q[2]^2*q[3]^2*q[5]^2 + 32*q[2]^2*q[3]^2*q[6]^2 + 32*q[2]^2*q[4]^4 + 8*q[2]^2*q[4]^2*q[5]^2 + 8*q[2]^2*q[4]^2*q[6]^2 + 8*q[2]^2*q[5]^4 + 32*q[2]^2*q[5]^2*q[6]^2 + 8*q[2]^2*q[6]^4 + 24*q[3]^6 + 8*q[3]^4*q[5]^2 + 8*q[3]^4*q[6]^2 + 32*q[3]^2*q[4]^4 + 8*q[3]^2*q[4]^2*q[5]^2 + 8*q[3]^2*q[4]^2*q[6]^2 + 8*q[3]^2*q[5]^4 + 32*q[3]^2*q[5]^2*q[6]^2 + 8*q[3]^2*q[6]^4 + 288*q[4]^6 + 32*q[4]^4*q[5]^2 + 32*q[4]^4*q[6]^2 + 24*q[5]^6 + 152*q[5]^4*q[6]^2 + 152*q[5]^2*q[6]^4 + 24*q[6]^6","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"Finally we substitute all q variables by q_1 after computing the sum of all Feynman Integral of degree up to 8.","category":"page"},{"location":"Hurwitz/","page":"Examples Hurwitz numbers.","title":"Examples Hurwitz numbers.","text":"julia> substitute(q,feynman_integral_degree_sum(F,8))\n10246144*q[1]^16 + 3294720*q[1]^14 + 886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 + 32*q[1]^4","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"CurrentModule = GromovWitten\nDocTestSetup = quote\nusing GromovWitten\nend","category":"page"},{"location":"quasimodular/#Quasimodular","page":"Quasimodular","title":"Quasimodular","text":"","category":"section"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"In this module, we compute the solution of the system Ax=b, where A is a matrix from homogeneous Eisenstein series E_2 E_4 E_6 and b from the Feynman Integral I(q) The solution is of the form (factor, coefficients) where coefficients is a vector of rationals numbers. Given a Feynman Integral","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"I(q)=sum_n=1^d a_i q^d","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"we compute the coefficients b_ijk such that","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"I(q)=sum_substackijk in mathbbN_0 2i+4j+6k=d b_ijk E_2^i E_4^j E_6^k","category":"page"},{"location":"quasimodular/#Example","page":"Quasimodular","title":"Example","text":"","category":"section"},{"location":"quasimodular/#Caterpillar-genus-3","page":"Quasimodular","title":"Caterpillar genus 3","text":"","category":"section"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"Consider the Caterpillar 3 graph","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"(Image: alt text)","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We define first a polynomial ring in one variable q.","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> R,q=polynomial_ring(QQ,[\"q\"])\n(Multivariate polynomial ring in 1 variable over QQ, Nemo.QQMPolyRingElem[q])","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> G = FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3,4)] )\nFeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We then define the FeynmanIntegral type.","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 14 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3], x[4]], Nemo.QQMPolyRingElem[q[1], q[2], q[3], q[4], q[5], q[6]], Nemo.QQMPolyRingElem[z[1], z[2], z[3], z[4]]))","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We compute the sum of all Feynman Integral of degree up to m=textnumber_of_monomials(textweightmax) where weightmax=6g-6$ where g is the genus of the graph . Here g=3 so weightmax=6g-6=12","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> weightmax=12;","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> m = number_of_monomial(weightmax)\n22 \n","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"Since m=22, we need to compute the Feynman integral degree sum up to at least degree m=22. This results in Iq=substitute(feynmanintegraldegree_sum(F,m)). We get Iq as following ","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> Iq=61425005056*q[1]^46+43646419584*q[1]^44+29331341312*q[1]^42+20067375616*q[1]^40 + 12961886976*q[1]^38 + 8490271392*q[1]^36 + 5225373696*q[1]^34 + 3233267712*q[1]^32 + 1875116544*q[1]^30 + 1079026432*q[1]^28 + 577972224*q[1]^26 + 302347264*q[1]^24 + 145337600*q[1]^22 + 66497472*q[1]^20 + 27353088*q[1]^18 + 10246144*q[1]^16 + 3294720*q[1]^14 + 886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 + 32*q[1]^4;","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We can now express the Feynman Integral Iq in term of Eisenstein series E_2 E_4 E_6 by call the quasimodular form of Iq :","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> quasimodularity_form(Iq,weightmax)\n(1//93312, -3*E2^6 + 6*E2^4*E4 + 4*E2^3*E6 - 3*E2^2*E4^2 - 12*E2*E4*E6 + 4*E4^3 + 4*E6^2)","category":"page"},{"location":"quasimodular/#Star-graph-K_-{1,3}","page":"Quasimodular","title":"Star graph K_ 13","text":"","category":"section"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"Consider the Star graph K_ 13 .","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"(Image: alt text)","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We want to find the quasimodular form of the sum of Feynman Integral Iq up to degree 22.","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"We define first a polynomial ring in one variable q.","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> R,q=polynomial_ring(QQ,[\"q\"])\n(Multivariate polynomial ring in 1 variable over QQ, Nemo.QQMPolyRingElem[q])","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"The sum of Feynman Integral up to degree 6 is:","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> Iq=67007616768*q[1]^46+47407680000*q[1]^44+31871766528*q[1]^42+21710052864*q[1]^40 + 14037577344*q[1]^38 + 9136115712*q[1]^36 + 5629741056*q[1]^34 + 3459760128*q[1]^32 + 2005675776*q[1]^30 + 1145207808*q[1]^28 + 612956160*q[1]^26 + 317058048*q[1]^24 + 152150400*q[1]^22 + 68594688*q[1]^20 + 28035072*q[1]^18 + 10285056*q[1]^16 + 3255552*q[1]^14 + 843264*q[1]^12 + 165888*q[1]^10 + 20736*q[1]^8 + 1152*q[1]^6;","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"The quasimodular form of Iq is then:","category":"page"},{"location":"quasimodular/","page":"Quasimodular","title":"Quasimodular","text":"julia> quasimodular_form(Iq,12)\n(1//20736, -E2^6 + 3*E2^4*E4 - 3*E2^2*E4^2 + E4^3)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"CurrentModule = GromovWitten","category":"page"},{"location":"Example/#Example-of-graph-with-vertex-contribution","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"","category":"section"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"(Image: alt text)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"To provide an example on how to use our package, we define a graph G from a list of edges:","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> ve = [ (1, 2), (2, 3), (3, 1)] \njulia> G = FeynmanGraph(ve)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"We then define the Feynman integral type F:","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 2), (2, 3), (3, 1)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 9 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3]], Nemo.QQMPolyRingElem[q[1], q[2], q[3]], Nemo.QQMPolyRingElem[z[1], z[2], z[3]]))","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"Here, the indexed variables x correspond to the vertices of the graph, the indexed variables y to the edges of the graph, and the indexed variables z again to the vertices of the graph (the latter to be used in the context of Gromov-Witten invariants with non-trivial Psi-classes).","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"To compute a Feynman iuntegral, we define a partition a=003 of degree d=3, a fixed order of vertex o=123 and the genus function g=100. The leak in G is L=000 , m=1 is the order of the sfunction.","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> g=[1,0,0];\njulia> a=[0,0,3];\njulia> o=[1,2,3]; ","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"We have then","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type_order(F,a,o,g)\n115//6*q[3]^6","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"The Feynman Integral branch type for all ordering with genus function g is","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type(F,a,g)\n115//3*q[3]^6","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"also we can compute Feynman Integral of degree 4","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":" julia> feynman_integral_degree(F,4,g)\n2041//12*q[1]^8 + 1//4*q[1]^6*q[2]^2 + 1//4*q[1]^6*q[3]^2 + 57//4*q[1]^4*q[2]^4 + 1//2*q[1]^4*q[2]^2*q[3]^2 + 57//4*q[1]^4*q[3]^4 + 1//4*q[1]^2*q[2]^6 + 1//2*q[1]^2*q[2]^4*q[3]^2 + 1//2*q[1]^2*q[2]^2*q[3]^4 + 1//4*q[1]^2*q[3]^6 + 2041//12*q[2]^8 + 1//4*q[2]^6*q[3]^2 + 57//4*q[2]^4*q[3]^4 + 1//4*q[2]^2*q[3]^6 + 2041//12*q[3]^8","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"Finally we substitute all q variables by q_1","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> substitute(feynman_integral_degree(F,4,g))\n556*q[1]^8","category":"page"},{"location":"Example/#Example-of-graph-without-vertex-contribution-and-loop.","page":"Example of graph with vertex contribution","title":"Example of graph without vertex contribution and loop.","text":"","category":"section"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"(Image: alt text)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> G = FeynmanGraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3,4)] )\ngraph([(1, 3), (1, 2), (1, 2), (2, 4), (3, 4), (3, 4)])","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> F=FeynmanIntegral(G)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> a = [0, 2, 1, 0, 0, 1];","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> o=[1,3,4,2];","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"\njulia> feynman_integral_branch_type_order(F,a,o) \n128*q[2]^4*q[3]^2*q[6]^2","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type(F, a) \n256*q[2]^4*q[3]^2*q[6]^2","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"also we can compute Feynman Integral of degree 3","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> f = feynman_integral_degree(F, 3)\n288*q[1]^6 + 32*q[1]^4*q[2]^2 + 32*q[1]^4*q[3]^2 + 32*q[1]^4*q[5]^2 + 32*q[1]^4*q[6]^2 + 8*q[1]^2*q[2]^2*q[5]^2 + 8*q[1]^2*q[2]^2*q[6]^2 + 8*q[1]^2*q[3]^2*q[5]^2 + 8*q[1]^2*q[3]^2*q[6]^2 + 24*q[2]^6 + 152*q[2]^4*q[3]^2 + 8*q[2]^4*q[5]^2 + 8*q[2]^4*q[6]^2 + 152*q[2]^2*q[3]^4 + 32*q[2]^2*q[3]^2*q[5]^2 + 32*q[2]^2*q[3]^2*q[6]^2 + 32*q[2]^2*q[4]^4 + 8*q[2]^2*q[4]^2*q[5]^2 + 8*q[2]^2*q[4]^2*q[6]^2 + 8*q[2]^2*q[5]^4 + 32*q[2]^2*q[5]^2*q[6]^2 + 8*q[2]^2*q[6]^4 + 24*q[3]^6 + 8*q[3]^4*q[5]^2 + 8*q[3]^4*q[6]^2 + 32*q[3]^2*q[4]^4 + 8*q[3]^2*q[4]^2*q[5]^2 + 8*q[3]^2*q[4]^2*q[6]^2 + 8*q[3]^2*q[5]^4 + 32*q[3]^2*q[5]^2*q[6]^2 + 8*q[3]^2*q[6]^4 + 288*q[4]^6 + 32*q[4]^4*q[5]^2 + 32*q[4]^4*q[6]^2 + 24*q[5]^6 + 152*q[5]^4*q[6]^2 + 152*q[5]^2*q[6]^4 + 24*q[6]^6","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"Finally we substitute all q variables by q_1 after computing the sum of all Feynman Integral of degree up to 8.","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> substitute(feynman_integral_degree_sum(F,8))\n10246144*q[1]^16 + 3294720*q[1]^14 + 886656*q[1]^12 + 182272*q[1]^10 + 25344*q[1]^8 + 1792*q[1]^6 + 32*q[1]^4","category":"page"},{"location":"Example/#Example-of-graph-with-loop.","page":"Example of graph with vertex contribution","title":"Example of graph with loop.","text":"","category":"section"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"(Image: alt text)","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> G=FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])\ngraph([(1, 1), (1, 2), (2, 3), (3, 1)])","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> F=FeynmanIntegral(G);","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> O=[1,2,3] \n3-element Vector{Int64}:\n 1\n 2\n 3","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> a=[ 2, 0, 0, 1]\n 4-element Vector{Int64}:\n 2\n 0\n 0\n 1","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type_order(F, a, O)\n3*q[1]^4*q[4]^2","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_branch_type(F, a) \n6*q[1]^4*q[4]^2","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> feynman_integral_degree(F, 3)\n6*q[1]^4*q[2]^2 + 6*q[1]^4*q[3]^2 + 6*q[1]^4*q[4]^2 + 18*q[1]^2*q[2]^4 + 6*q[1]^2*q[2]^2*q[3]^2 + 6*q[1]^2*q[2]^2*q[4]^2 + 18*q[1]^2*q[3]^4 + 6*q[1]^2*q[3]^2*q[4]^2 + 18*q[1]^2*q[4]^4","category":"page"},{"location":"Example/","page":"Example of graph with vertex contribution","title":"Example of graph with vertex contribution","text":"julia> substitute(feynman_integral_sum(F, 8))\n20640*q[1]^16 + 9996*q[1]^14 + 4320*q[1]^12 + 1650*q[1]^10 + 456*q[1]^8 + 90*q[1]^6 + 6*q[1]^4","category":"page"},{"location":"Feynman Integral/Feynman/#Feynman-Integral","page":"Feynman Integral","title":"Feynman Integral","text":"","category":"section"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"CurrentModule = GromovWitten\nDocTestSetup = quote\n using GromovWitten\nend","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"using GromovWitten","category":"page"},{"location":"Feynman Integral/Feynman/#Graph","page":"Feynman Integral","title":"Graph","text":"","category":"section"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"A Feynman graph is a (non-metrized) graph Γ without ends with n vertices which are labeled x_1 x_n and with labeled edges q_1 q_r. The graph G is represented as a collection of vertices V and edges E. Each edge is a pair (vw) where both v and w are elements of the set of vertices V.","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> ve=[(1, 1), (1, 2), (2, 3), (3, 1)]\n4-element Vector{Tuple{Int64, Int64}}:\n (1, 1)\n (1, 2)\n (2, 3)\n (3, 1)","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"and","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> G=FeynmanGraph(ve)\nFeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"We define the Feynman integral type, which contains the polynomial Ring and the graph G.","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 10 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3]], Nemo.QQMPolyRingElem[q[1], q[2], q[3], q[4]], Nemo.QQMPolyRingElem[z[1], z[2], z[3]]))","category":"page"},{"location":"Feynman Integral/Feynman/#Feynman-Integral-branche-type","page":"Feynman Integral","title":"Feynman Integral branche type","text":"","category":"section"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"For a given branch type a, we compute the Specific Feynman Integral of the labeled Graph. a is a list of partition of degree d=3 of Gamma.","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> a=[2,0,0,1]\n4-element Vector{Int64}:\n 2\n 0\n 0\n 1","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"o","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"is a fixed order of vertices.","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> o=[1,2,3]\n3-element Vector{Int64}:\n 1\n 2\n 3","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"We compute the Specific Feynman Integral for the Graph G given a fixed vertex ordering o and the partition of degree a. Here we have the defaults values of the leak vector and the genus function l=[0,0,0], g=[0,0,0] and we set the order of Sfunction $ m=0$","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> feynman_integral_branch_type_order(F,a,o)\n3*q[1]^4*q[4]^2","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"Here we have the defaults values of the leak vector and the genus function l=[0,0,0], g=[0,0,0] and we set the order of S-function $ m=0$\n","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"jldoctest graph julia> feynmanintegralbranch_type(F,a) 6q[1]^4q[4]^2","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"\n## Feynman Integral\n\nWe compute the Feynman Integral of the graph G over all partitions of the degree d=3 for a fixed ordering $o$.\n","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"jldoctest graph julia> feynmanintegraldegree_order(F,o,3) # here d=3 3q[1]^4q[4]^2 + q[1]^2q[2]^2q[3]^2 + q[1]^2q[2]^2q[4]^2 + q[1]^2q[3]^2q[4]^2 + 9q[1]^2q[4]^4","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"\nWe compute the Feynman integral over all the partitions of the degree d of graph G for all vertex ordering.\n","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"jldoctest graph julia> feynmanintegraldegree(F,3) # here d=3 6q[1]^4q[2]^2 + 6q[1]^4q[3]^2 + 6q[1]^4q[4]^2 + 18q[1]^2q[2]^4 + 6q[1]^2q[2]^2q[3]^2 + 6q[1]^2q[2]^2q[4]^2 + 18q[1]^2q[3]^4 + 6q[1]^2q[3]^2q[4]^2 + 18q[1]^2*q[4]^4","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"\nWe compute the sum of coefficients.\n","category":"page"},{"location":"Feynman Integral/Feynman/","page":"Feynman Integral","title":"Feynman Integral","text":"julia> sumofcoeff( feynmanintegraldegree(F,3)) 90 ```","category":"page"},{"location":"Gromov/#Examples-Gromov-Witten-invariants","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"","category":"section"},{"location":"Gromov/#Graph-with-vertex-contribution","page":"Examples Gromov-Witten invariants","title":"Graph with vertex contribution","text":"","category":"section"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"(Image: alt text)","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"To provide an example on how to use our package, we define a graph G from a list of edges:","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> ve = [ (1, 2), (2, 3), (3, 1)] \njulia> G = FeynmanGraph(ve);","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"We then define a polynomial ring with all variables required by our implementation:","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> F=FeynmanIntegral(G);","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"To compute a Feynman iuntegral, we define a partition a=003 of degree d=3, a fixed order of vertex o=123 and the genus function g=100. The leak in G is L=000 , m=1 is the default order of the sfunction. We have then","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> g=[1,0,0];\njulia> a=[0,0,3];\njulia> o=[1,2,3]; ","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":" julia> feynman_integral_branch_type_order(F,a,o,g)\n115//6*q[3]^6","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"The Feynman Integral branch type for all ordering with genus function g is","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> feynman_integral_branch_type(F,a,g)\n115//3*q[3]^6","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"also we can compute Feynman Integral of degree 4","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":" julia> feynman_integral_degree(F,4,g)\n2041//12*q[1]^8 + 1//4*q[1]^6*q[2]^2 + 1//4*q[1]^6*q[3]^2 + 57//4*q[1]^4*q[2]^4 + 1//2*q[1]^4*q[2]^2*q[3]^2 + 57//4*q[1]^4*q[3]^4 + 1//4*q[1]^2*q[2]^6 + 1//2*q[1]^2*q[2]^4*q[3]^2 + 1//2*q[1]^2*q[2]^2*q[3]^4 + 1//4*q[1]^2*q[3]^6 + 2041//12*q[2]^8 + 1//4*q[2]^6*q[3]^2 + 57//4*q[2]^4*q[3]^4 + 1//4*q[2]^2*q[3]^6 + 2041//12*q[3]^8","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"Finally we substitute all q variables by q_1","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> substitute(feynman_integral_degree(F,4,g))\n556*q[1]^8","category":"page"},{"location":"Gromov/#Graph-with-loops.","page":"Examples Gromov-Witten invariants","title":"Graph with loops.","text":"","category":"section"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"(Image: alt text) We have a here a loop at (1,1).","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> G=FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])\nFeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> F=FeynmanIntegral(G);","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> O=[1,2,3]; # vertices order","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> a=[ 2, 0, 0, 1] # branch type.\n 4-element Vector{Int64}:\n 2\n 0\n 0\n 1","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> feynman_integral_branch_type_order(F, a, O)\n3*q[1]^4*q[4]^2","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> feynman_integral_branch_type(F, a) \n6*q[1]^4*q[4]^2","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> feynman_integral_degree(F, 3)\n6*q[1]^4*q[2]^2 + 6*q[1]^4*q[3]^2 + 6*q[1]^4*q[4]^2 + 18*q[1]^2*q[2]^4 + 6*q[1]^2*q[2]^2*q[3]^2 + 6*q[1]^2*q[2]^2*q[4]^2 + 18*q[1]^2*q[3]^4 + 6*q[1]^2*q[3]^2*q[4]^2 + 18*q[1]^2*q[4]^4","category":"page"},{"location":"Gromov/","page":"Examples Gromov-Witten invariants","title":"Examples Gromov-Witten invariants","text":"julia> substitute(q,feynman_integral_sum(F, 8))\n20640*q[1]^16 + 9996*q[1]^14 + 4320*q[1]^12 + 1650*q[1]^10 + 456*q[1]^8 + 90*q[1]^6 + 6*q[1]^4","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"CurrentModule = GromovWitten\nDocTestSetup = quote\nusing GromovWitten\nend","category":"page"},{"location":"quasimodular_psi/#Quasimodular","page":"Quasimodular","title":"Quasimodular","text":"","category":"section"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"In this module, we compute the solution of the system Ax=b, where A is a matrix from homogeneous Eisenstein series E_2 E_4 E_6 and b from the Feynman Integral I(q) The solution is of the form (factor, coefficients) where coefficients is a vector of rationals numbers. Given a Feynman Integral","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"I(q)=sum_n=1^d a_i q^d","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"we compute the coefficients b_ijk such that","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"I(q)=sum_substackijk in mathbbN_0 2i+4j+6k=d b_ijk E_2^i E_4^j E_6^k","category":"page"},{"location":"quasimodular_psi/#Example","page":"Quasimodular","title":"Example","text":"","category":"section"},{"location":"quasimodular_psi/#Graph-with-vertex-contribution","page":"Quasimodular","title":"Graph with vertex contribution","text":"","category":"section"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"Consider the Graph with vertex contribution","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"(Image: alt text)","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> G = FeynmanGraph( [(1, 2), (2, 3), (3, 1)])\nFeynmanGraph([(1, 2), (2, 3), (3, 1)])","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"We then define the FeynmanIntegral type.","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 2), (2, 3), (3, 1)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 9 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3]], Nemo.QQMPolyRingElem[q[1], q[2], q[3]], Nemo.QQMPolyRingElem[z[1], z[2], z[3]]))","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"We compute the sum of all Feynman Integral of degree up to m=textnumber_of_monomials(textweightmax) where weightmax=2(r+\\sum{i=1}^{n} gi)$ with r the number of edges and g_i satifying h^1(Gamma)+sum_i=1^n g_i=g . Suppose gg=100, we have r=3; so weightmax=2(3+1)=8","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> g =[1,0,0];","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> weightmax=8;","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> m = number_of_monomial(weightmax)\n10 ","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"We computed then the Feynman Integral sum up to the degree m=10","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> Iq=substitute(feynman_integral_degree_sum(F, m,g))\n56250*q[1]^20 + 121581//4*q[1]^18 + 18480*q[1]^16 + 8330*q[1]^14 + 4428*q[1]^12 + 3075//2*q[1]^10 + 556*q[1]^8 + 117*q[1]^6 + 15*q[1]^4 + 1//4*q[1]^2","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"We can now express the Feynman Integral Iq in term of Eisenstein series E_2 E_4 E_6 by call the","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"we compute quasimodular form of Iq :","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> quasimodularity_form(Iq,weightmax)\n(1//6912, E2^3 + 2*E2^2*E4 - 3*E2*E4 - 4*E2*E6 + 2*E4^2 + 2*E6)","category":"page"},{"location":"quasimodular_psi/#Graph-with-loop-at-the-vertex-1","page":"Quasimodular","title":"Graph with loop at the vertex 1","text":"","category":"section"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"Consider the Graph with loop at the vertex 1 .","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"(Image: alt text)","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> G = FeynmanGraph( [(1, 1),(1, 2), (2, 3), (3, 1)])\nFeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)])","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"We then define the FeynmanIntegral type.","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> F=FeynmanIntegral(G)\nFeynmanIntegral(FeynmanGraph([(1, 1), (1, 2), (2, 3), (3, 1)]), Dict{Symbol, Dict{Vector{Int64}, Nemo.QQMPolyRingElem}}(), (Multivariate polynomial ring in 10 variables over QQ, Nemo.QQMPolyRingElem[x[1], x[2], x[3]], Nemo.QQMPolyRingElem[q[1], q[2], q[3], q[4]], Nemo.QQMPolyRingElem[z[1], z[2], z[3]]))","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"We compute the sum of all Feynman Integral of degree up to m=textnumber_of_monomials(textweightmax) Here gg=000, and r=4; so weightmax=2(4+0)=8.","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> weightmax=8;","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> m=number_of_monomial(weightmax)\n10","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"We computed then the Feynman Integral sum up to the degree m=10","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> Iq=substitute(feynman_integral_degree_sum(F, m))\n67500*q[1]^20 + 36774*q[1]^18 + 20640*q[1]^16 + 9996*q[1]^14 + 4320*q[1]^12 + 1650*q[1]^10 + 456*q[1]^8 + 90*q[1]^6 + 6*q[1]^4","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"We can now express the Feynman Integral Iq in term of Eisenstein series E_2 E_4 E_6 by call the","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"we compute quasimodular form of Iq :","category":"page"},{"location":"quasimodular_psi/","page":"Quasimodular","title":"Quasimodular","text":"julia> quasimodularity_form(Iq,weightmax)\n(1//6912, E2^4 - E2^3 - 3*E2^2*E4 + 3*E2*E4 + 2*E2*E6 - 2*E6)","category":"page"},{"location":"#GromovWitten","page":"GromovWitten","title":"GromovWitten","text":"","category":"section"},{"location":"","page":"GromovWitten","title":"GromovWitten","text":"Documentation for GromovWitten.","category":"page"},{"location":"","page":"GromovWitten","title":"GromovWitten","text":"The package GromovWitten computes generating series for tropical Hurwitz numbers of elliptic curves via mirror symmetry and Feynman integrals, and thus, by a correspondence theorem, Hurwitz numbers in the sense algebraic geometry. Generalizations of the method also allow for the computation of Gromov-Witten invariants for ellptic curves, and are also implemented in the package. GromovWitten is based on the computeralgebra system OSCAR and is provided as a package for the Julia programming language.","category":"page"},{"location":"Installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"Installation/","page":"Installation","title":"Installation","text":"We assume that Julia is installed in a recent enough version to run OSCAR. Navigate in a terminal to the folder where you want to install the package and pull the package from Github:","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"git pull https://github.com/singular-gpispace/GromovWitten.git","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"In the same folder execute the following command:","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"julia --project","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"This will activate the environment for our package. In Julia install missing packages:","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"import Pkg; Pkg.instantiate()","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"and load our package. On the first run this may take some time.","category":"page"},{"location":"Installation/","page":"Installation","title":"Installation","text":"using GromovWitten ","category":"page"}]
}