Example on how to use the matrix programs

The matrix programs are constructed in order make the computation of the dimension of a weight space in the irreducible of a certain highest weight parallel. You may split up the computation of the N-matrix (see the Gilkey-Seitz paper) in blocks. Once the N-matrix is found, the weight multiplicity is simply the rank.

Suppose we want to calculate weight multiplicities in the irreducible restricted modules in the A3, p=5 case. We can start by determining the relevant restricted alcoves:

   % intweights a3-5
    0 0 0
    1 1 3
    2 0 2
    2 2 2
    3 1 1
    3 2 3
Let's focus on the highest weight (2,2,2) (which is (p-2)rho). We use reduinfo:
   % reduinfo a3-5 2 2 2
    0 0 0 :  26
    0 0 4 :  3
    0 1 2 :  7
    0 2 0 :  10
    0 3 2 :  1
    0 4 0 :  1
    1 0 1 :  13
    1 1 3 :  2
    1 2 1 :  4
    2 0 2 :  5
    2 1 0 :  7
    2 2 2 :  1
    2 3 0 :  1
    3 0 3 :  1
    3 1 1 :  2
    4 0 0 :  3
This shows the relevant dominant subweights (in the Weyl module of highest weight (2,2,2)) and the dimensions of the matrices that needs to be calculated. To calculate the multiplicity for the subweight (0, 0, 0), we need a 26 by 26 matrix. Since it is symmetric, we need to calculate 26*27/2 = 351 entries. These are numbered 0 to 350. Now redumat or redumat2 are used to calculate any subrange. To calculate the first 100 entries in the range, type:
   % redumat2 a3-5  2 2 2  0 0 0  0 99
This generates a file called A3-5-222-000-0-99.mat.
   % ls -l
   -rw-r--r--   1 abuch      matphd     62 Feb  8 16:56 A3-5-222-000-0-99.mat
To check that the matrix is ok, use matcheck:
   % matcheck A3-5-222-000-0-99.mat
   Root system:  A3, p = 5
   lambda = 222 ;  mu = 000
   Matrix dimension:  26
   First entry:       0  (0,0)
   Last entry:        99  (13,8)
   Entries in file:   100  of  351   (28.4%)
Then calculate the rest of the entries. Note that this can be done on different computers.
   % redumat2 a3-5  2 2 2  0 0 0  100 199
   % redumat2 a3-5  2 2 2  0 0 0  200 299
   % redumat2 a3-5  2 2 2  0 0 0  300 350

   % ls -l
   -rw-r--r--   1 abuch      matphd     62 Feb  8 16:56 A3-5-222-000-0-99.mat
   -rw-r--r--   1 abuch      matphd     62 Feb  8 16:57 A3-5-222-000-100-199.mat
   -rw-r--r--   1 abuch      matphd     62 Feb  8 16:57 A3-5-222-000-200-299.mat
   -rw-r--r--   1 abuch      matphd     46 Feb  8 16:57 A3-5-222-000-300-350.mat
Now use matmerge to combine the pieces into one file:
   % matmerge A3-5-222-000-*.mat -o A3-5-222-000.mat
   Root system:  A3, p = 5
   lambda = 222 ;  mu = 000
   Matrix dimension:  26

The result is saved in A3-5-222-000.mat.  You can check
this file with matcheck.  Finally, calculate the rank of
the matrix:

   % matrank2 A3-5-222-000.mat 
   A3
   (2, 2, 2)
   (0, 0, 0)
   dim = 26
   matrix read from file.
   rank: 3
So the result is 3. Since A3 is a relatively small root system, you could also have gotten this information with the redu command.
   % redu a3-5 2 2 2
    0 0 0 :  3
    0 0 4 :  1
    0 1 2 :  2
    ...