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