Computation Files
There are five additional files included here. These are text versions of Maple 9
programs, namely:
G2.txt
F4.txt
E6O3.txt
E7O4.txt
E8O5.txt
Hopefully, Maple 9 will accept these as text input. The programs have been run on
Maple 9, but use nothing special from this new version. So they should run on
Maple 5-8 also. Since these Maple files are uncommented, they are briefly
described below.
G2.txt: As in Section 6 of the paper, the matrix A describes all positive roots in
terms of a basis of L. However here we add an extra row of zeros at the bottom.
This will be explained later. The parameters a and b are the values modulo 6 taken
on by the the functional lambda on the two basis elements, so a and b are integers
between 0 and 5. We form the column matrix B with entries a and b, and compute
the product AB=C. Thus C is a column matrix with entries that are the values of
lambda on the positive roots. Since the last row of A is zero, the last entry of C is
zero.
The function f takes on values which are the row indices of A and C. If the entry
C[x,1] is divisible by 6, then lambda(the root) is an integer and we take f(x)=x. If not,
we let f(x)=7 point to the last row. The sequence S then contains all the row indices
where lambda(the root) is an integer. We convert S to a list [S], and truncate it to L
by deleting all multiple entries (only the 7s). M is then the submatrix of A,
corresponding to the row list L. Hence M is the submatrix of all roots with
lambda(the root) an integer, plus the zero row at the end, which does not effect the
rank. If rank M=2, then (a,b) is an appropriate coset representative, so we print
(a,b) and increase the Count by 1.
F4.txt: In this case, it is more convenient to describe the roots in terms of
e_1,e_2,e_3,e_4. So the matrix A lists these roots, again with an appended last row
of zeros. The value of lambda on the basis roots are now a,b,c,d, and these are
integers modulo 12. We then compute e1,e2,e3,e4, the values of lambda on the
e-basis, form the column matrix B having the latter four entries, and again find
AB=C. Note that the function f is suitably changed to check whether C[x,1] is
divisible by 12, and the test for a coset representative is whether rank M is equal to
8 or not.
E8O5.txt: Here the matrix A has size 120 x 8 with an additional row of zeros. It is
constructed based on e_1,e_2,...,e_8. Since Maple does not seem to print hard
copies of an output matrix that extends beyond one page, the matrix A is
constructed from seven smaller matrices A1,A2,...,A7, each of which fits on a page,
and then stacked together. The eight values for lambda on the basis are
a,b,c,d,e,f,g,h modulo 60. Since lambda is to have order 5 or 1, these values are
either 0, 12, 24, 26 or 48. Hence, in the do loop, we step by 12. Because f is used
above, the function f has been renamed ff, and Count is now Cnt. The program
ran in 6 hours and 40 minutes on my MacG4.
E6O3.txt: This is similar to the E8 file above. We count the number of functionals
lambda of order 1 or 3. The matrix A is constructed from the basis e_1,e_2,...,e_5
and the last basis element e_8-e_7-e_6, which we call e_6 in the file. The six
values for lambda on the root basis are a,b,c,d,e,f modulo 6, so we do a step by 2.
E7O4.txt: Again this is similar to the E8 file. We count the number of functionals
lambda of order dividing 4. The matrix A is constructed from the basis
e_1,e_2,...,e_5,e_6 and the last basis element e_8-e_7, which we call e_7 in
the file. The seven values for lambda on the root basis are a,b,c,d,e,f,g modulo 12,
so we do a step by 3 to handle elements of order dividing 4.
The E files are easily modified to count the number of lambdas of different orders.
One merely changes the step size. In the case of E8 and order dividing 6, I split
the problem into the four separate runs with a=0, 10, 20 and 30. Each took about
3 hours on my Mac. Of course, the answer for a=40 is the same as for a=20.
Similarly a=50 and a=10 correspond.