FUNCTION : CUSPSANDWIDMAKE1 - set of inequivalent cusps for Gamma[1](N)
with corresponding widths
CALLING SEQUENCE : CUSPSANDWIDMAKE1()
CUSPSANDWIDMAKE1(N)
PARAMETERS : N - positive integer
GLOBAL VARIABLES : CUSPMAKEERROR
SYNOPSIS : Returns a set of inequivalent cusps for Gamma[1](N),
and corresponding widths.
Output has the form [CUSPLIST,WIDTHLIST].
This proc uses cuspmake1 and cuspwid1.
In this version cusps are written as fractions
with the first cusp being oo. If oo is not found
as a cusp the global var CUSPMAKEERROR = 1.
EXAMPLES :
> with(thetaids):
> cuspmake1();
---------------------------------------------------------
cuspmake1(N)
Returns a set of inequivalent cusps
for Gamma[1](N).
Each cusp a/c in the list is represented by [a,c]
so that oo is represented by [1,0]
---------------------------------------------------------
> CUSPSANDWIDMAKE1(40);
[[oo, 0, 1/3, 1/7, 1/9, 1/11, 1/13, 1/17, 1/19, 1/2, 1/6, 1/14, 1/18, 1/4, 3/4,
13
1/12, 7/12, 1/5, 3/5, 2/5, 4/5, 1/15, --, 7/15, 4/15, 1/8, 3/8, 7/8, 5/8,
15
13
1/16, 3/16, 7/16, --, 1/10, 3/10, 7/10, 9/10, 1/20, 3/20, 7/20, 9/20, 3/40,
16
11 13 17 19
7/40, 9/40, --, --, --, --], [1, 40, 40, 40, 40, 40, 40, 40, 40, 20, 20,
40 40 40 40
20, 20, 10, 10, 10, 10, 8, 8, 8, 8, 8, 8, 8, 8, 5, 5, 5, 5, 5, 5, 5, 5, 4,
4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1]]
> CW12:=CUSPSANDWIDMAKE1(12);
CW12 := [[oo, 0, 1/2, 1/3, 1/4, 1/5, 1/6, 2/3, 3/4, 5/12],
[1, 12, 6, 4, 3, 12, 2, 4, 3, 1]]
> nc12:=nops(CW12[1]);
nc12 := 10
> for j from 1 to nc12 do printf("%a %a\n",CW12[1][j],CW12[2][j]);od;
oo 1
0 12
1/2 6
1/3 4
1/4 3
1/5 12
1/6 2
2/3 4
3/4 3
5/12 1
DISCUSSION :
First we computed the cusps and their widths for GAMMA[1](40).
Then for GAMMA[1](12) we have the table:
cusp width
oo 1
0 12
1/2 6
1/3 4
1/4 3
1/5 12
1/6 2
2/3 4
3/4 3
SEE ALSO : cuspmake1,
cuspwid1