OFFSET
1,2
COMMENTS
When transposed, displayed as an upper right triangle, the first line g = 0 of the table gives the number of immersions of a circle with n double points in a sphere (spherical curves) starting with n=1, the second line g = 1 gives immersions in a torus, etc.
Row g=0 is A008988 starting with n = 1.
For g > 0 the immersions are understood up to stable geotopy equivalence (the counted curves cannot be immersed in a surface of smaller genus). - Robert Coquereaux, Nov 23 2015
LINKS
R. Coquereaux, J.-B. Zuber, Maps, immersions and permutations, arXiv preprint arXiv:1507.03163, 2015. Also J. Knot Theory Ramifications 25, 1650047 (2016), DOI: http://dx.doi.org/10.1142/S0218216516500474
EXAMPLE
The transposed triangle starts:
1 2 6 21 97 579 3812 27328 206410
1 6 62 559 5614 56526 580860 6020736
2 37 788 14558 246331 3900740 58842028
0 112 7223 277407 8179658 203974134
0 0 34748 3534594 198559566
0 0 0 22524176
0 0 0
0 0
PROG
(Magma) /* Example n := 6 */
n:=6;
n; // n: number of crossings
G:=Sym(2*n);
doubleG := Sym(4*n);
genH:={};
for j in [1..(n-1)] do v := G!(1, 2*j+1)(2, 2*j+2); Include(~genH, v) ; end for;
H := PermutationGroup< 2*n |genH>; // The H=S(n) subgroup of S(2n)
cardH:=#H;
cardH;
rho:=Identity(G); for j in [0..(n-1)] do v := G!(2*j+1, 2*j+2) ; rho := rho*v ; end for;
cycrho := PermutationGroup< 2*n |{rho}>; // The cyclic subgroup Z2 generated by rho (mirroring)
Hcycrho:=sub<G|[H, cycrho]>; // The subgroup generated by H and cycrho
cardZp:= Factorial(2*n-1);
beta:=G!Append([2..2*n], 1); // A typical circular permutation
Cbeta:=Centralizer(G, beta);
bool, rever := IsConjugate(G, beta, beta^(-1));
cycbeta := PermutationGroup< 2*n |{rever}>;
Cbetarev := sub<G|[Cbeta, cycbeta]>;
psifct := function(per);
perinv:=per^(-1);
res:= [IsOdd(j) select (j+1)^per else j-1 + 2*n : j in [1..2*n] ];
resbis := [IsOdd((j-2*n)^perinv) select (j-2*n)^perinv +1 +2*n else ((j-2*n)^perinv -1)^per : j in [2*n+1..4*n] ];
res cat:= resbis;
return doubleG!res;
end function;
numberofcycles := function(per); ess := CycleStructure(per); return &+[ess[i, 2]: i in [1..#ess]]; end function;
supernumberofcycles := function(per); return numberofcycles(psifct(per)) ; end function;
// result given as a list genuslist (n+2-2g)^^multiplicity where g is the genus
// Case OU
dbl, dblsize := DoubleCosetRepresentatives(G, Hcycrho, Cbeta); #dblsize;
genuslist := {* supernumberofcycles(beta^(dbl[j]^(-1))) : j in [1..#dblsize] *}; genuslist;
quit;
# Robert Coquereaux, Nov 23 2015
CROSSREFS
KEYWORD
AUTHOR
Robert Coquereaux, Aug 02 2015
STATUS
approved