The case of bipartite maps (Thm 4.4)
> | # This is the explicit (non-polynomial) recurrence to compute the numbers of bipartite maps by edges and genus
#and with a weight u/v/z per white vx/black vx/face # This is Thm 4.4 in the paper. Bng:= proc(N,G) option remember; # Initial conditions if N<0 or G<0 or 2*G>N then return 0: elif G=0 and N=0 then return 0; elif G=0 and N=1 then return u*v*z; elif G=0 and N=2 then return u*v*z*(u+v+z); elif G=1/2 and N=1 then return 0; elif G=1/2 and N=2 then return u*v*z; elif G=1 and N=2 then return 0; # main case else 1/(N-2)/(N+1) * ( (N-2)*(2*N-1)*( (u+v+z)*Bng(N-1,G) - Bng(N-1,G-1/2) ) -(N-2)*psi(N)*Bng(N-2,G) +(N-2)*(2*N-1)*(2*N-3)*N*Bng(N-2,G-1) -(N-2)*6*(N-1)*(u+v-z)*Bng(N-2,G-1/2) +(N-2)*2*add(add( (6*n1*(N-n1)-2*N+1)*Bng(N-n1-1,G-G1/2)*Bng(n1-1,G1/2),G1=0..2*G),n1=0..N) -add(add(add(add(add(add( 2^(2+G1-G0)*(1+(-1)^(G0-G1))/2*binomial(p,i)*binomial(q,n1-G1-(n1+2-G0-p-q)-i) *coeff(coeff(coeff(Bngexclude(n1,G0/2,N,G),z,n1+2-G0-p-q),v,q),u,p)*z^(n1+2-G0-p-q)*u^(i)*v^(n1-G1-(n1+2-G0-p-q)-i) *(-(N-n1+1)*Bng((N-n1),G-G1/2) +(2*(N-n1)-1)*( (u+v+z)*Bng((N-n1)-1,(G-G1/2)) - Bng((N-n1)-1,G-G1/2-1/2) ) -psi(N-n1)*Bng((N-n1)-2,(G-G1/2)) +(2*(N-n1)-1)*(2*(N-n1)-3)*(N-n1)*Bng((N-n1)-2,(G-G1/2)-1) -6*((N-n1)-1)*(u+v-z)*Bng((N-n1)-2,(G-G1/2)-1/2) +deltabs(N-n1,G-G1/2) +2*add(add((6*n3*((N-n1)-n3)-2*(N-n1)+1)*Bng(n3-1,G3/2)*Bng(((N-n1)-n3)-1,G-G1/2-G3/2) ,n3=0..N-n1), G3=0..2*(G-G1/2)) ) ,i=0..n1-G1-(n1+2-G0-p-q)),q=1..n1+2-G0-1-p),p=1..n1+2-G0-2),G0=0..G1),G1=0..2*G),n1=1..N-1)) : return factor(%); fi: end: # Contribution of Kronecker deltas in the theorem deltabs:=proc(n2,G2) if n2=1 and G2=0 then return 2*u*v*z; elif n2=2 then if G2=0 then return 6*u*v*u*v; elif G2=1/2 then return -6*u*v*(u+v-z); elif G2=1 then return 6*u*v; fi; fi: return 0; end: # The term of index (N,G) appears in the RHS of the recurrence but is multiplied by 0. # In order to prevent Maple from trying to evaluate it (before multiplication) we use Bngexclude instead: Bngexclude:=proc(N,G,Nexclude, Gexclude) if N=Nexclude and G=Gexclude then return 0; else return Bng(N,G); fi; end: #Auxiliary function psi:=proc(N) return (N-2)*(u^2+v^2+z^2-14*u*v-2*u*z-2*v*z)-12*u*v; end: |
> | # Example with 10 edges and genus 7/2
Bng(10,7/2); |
(2.3.1) |