EXPLICIT MATRIX MODELS FOR IRREPS OF WEYL GROUPS
For Use with Maple
Contents of this directory
A8_data  models for A1,...,A8
B8_data  models for B2,...,B8
D8_data  models for D4,...,D8
E6_data  models for E6
E7_data  models for E6, E7
E8_data  models for E6, E7, E8
E8_data.m  models for E6, E7, E8 in Maple's '.m' format
F4_data  models for F4
G2_data  models for G2
unpack  Maple programs for unpacking the data
md5sums.txt  if you don't know what this is, don't worry about it
READ_ME  this file
The data files are in Maple text format, except for `E8_data.m`.
This '.m' file should be readable by Maple 6 or later versions.
Be sure to read all of the WARNINGS below.
For more information about the notation and terminology,
see .

I. Introduction
The files *_data contain  in a highly compressed format  explicit
orthogonal and rational seminormal models for all of the irreducible
representations of these Weyl groups, and recursively, all smaller groups
in a parabolic chain obtained by repeatedly deleting the last node in the
the following numberings of the Dynkin diagrams:
A8: 12345678
B8: 1=<=2345678
2

D8: 1345678
2

E8: 1345678 F4: 12=<=34
So in particular, the E7 file includes everything in the E6 file,
and the E8 file includes everything in the E7 file.
To use the data, you need to "unpack" it. In a Maple session, try
read unpack;
read E7_data;
At this point, several procedures from the 'unpack' file, and three tables
from the data file named 'Rep', 'Semi', and 'Branch', will have been loaded.
Understanding the internal structure of these tables is not necessary
for use of the database, but a description is provided in Sec. IV below
for completeness.
II. The Orthogonal Models
Matrices are represented in a sparse format consisting of lists of
linear polynomials in the variables e1,e2,.... (an orthonormal basis).
Each linear form represents a row.
Example: the 2x2 matrix [ 5 6 ] is [5*e1 + 6*e2, 7*e1 + 8*e2].
[ 7 8 ]
Continuing the above Maple session, the command
a:=unpack(12,7);
will assign to the variable 'a' a list of 7 orthogonal matrices for the
generators in the 12th irrep of E7. (See IV for information about how the
irreps have been numbered. For the exceptional groups, it is in order of
increasing dimension.) So
a[5];
is the representing matrix for the action of s[5], and a[5][16] is
the 16th row of that matrix.
The tables for a given group also contain complete information about
all previous groups in the parabolic chain, so
unpack(15,6);
will unpack the 15th irrep of E6, and so on.
NOTE: in these models, the square of every matrix entry is rational.
NOTE^2: The plain text `E8_data` file loads slowly, and forces allocation of
a large chunk of memory (1015MB). It is preferable to use the '.m' version
of the E8 fileit will load faster and use significantly less memory.
WARNING: Versions of Maple older than Maple 6 use an incompatible '.m'
format. To create an `E8_data.m` file that is compatible with your
version of Maple, do the following in a fresh Maple session:
read E8_data;
save Rep, Semi, Branch, `E8_data.m`;
quit;
III. The Seminormal Models
Each of the irreps also has a *rational* matrix model that is "seminormal"
in the sense that the positive definite quadratic form preserved by the
model is a diagonal (rational) matrix D (so A * D * A^T = D for each
matrix A in the representation).
Continuing the above Maple session, the command
a:=unpack(12,7,'semi');
will unpack and assign to 'a' a list of *8* matrices. The first 7 are
rational seminormal matrices for the generators in the 12th irrep of E7,
and the 8th is the diagonal matrix D defining the quadratic form.
The third argument to 'unpack' can be anything. The mere presence of any
third argument suffices to specify the rational seminormal form.
NOTE: The positive square root of D is the change of basis between the
orthogonal and seminormal models; i.e.,
D^{1/2} * Ortho * D^{1/2} = Seminormal.
NOTE^2: The largest E8 models take up to 12 GHzminutes to unpack,
and require allocation of ~10MB of memory. The seminormal models unpack
more rapidly and in less space.
WARNING: If you later switch to the models from a second data file during
the same Maple session, then you will need to erase a remember table that
is used by 'unpack'. This can be accomplished either by using the command
`unpack/erase`();
or simply by rereading the 'unpack' file. These measures can be taken
either before or after reading the second data file.
IV. Lowlevel Information About The Data Files
Each of the data files consists of three Maple tables
named 'Rep', 'Branch', and 'Semi'.

Rep: lowlevel data structures encoding orthogonal matrices
For each k from 1 up to the top rank n,
Rep[k] is the character table of W[k] = .
It is a list of lists. The ith list is the ith row of the character
table. The ordering within each row follows the ordering of conjugacy
classes in the coxeter package .
In particular, the trivial conjugacy class is always first.
So in the file E8_data,
Rep[6] is the character table of E6
Rep[6][12] is the 12th irreducible character of E6
Rep[6][12][1] is the degree of the 12th irrep of E6
In addition to the character table,
Rep[0,k] is the largest r <= k such that s[k] centralizes W[r].
Rep[i,k][j] is a list indexing all of the copies of the jth irrep of W[r]
in the ith irrep of W[k]. Each item in the list represents a
chain in the Bratteli diagram.
Example: Rep[17,7][12] = [[12,3,17], [12,11,17], [12,16,17]] means that
there are 3 copies of the 12th irrep of E5 = W[r] in the 17th irrep of E7,
and these copies are found in the 3rd, 11th and 16th irreps of E6.
If the jth irrep of W[r] does not occur in the ith irrep of W[k],
then Rep[i,k][j] is not assigned.
In a hereditary model, s[k] may be represented as a direct sum of many
copies of a set of operators indexed by W[r]irreps. In the ith irrep
of W[k], the operator indexed by the jth irrep of W[r] has rows and
columns indexed by the list Rep[i,k][j], and for each item L in this list,
Rep[L,k] represents a row of the matrix for this operator.

Branch: information about branching of irreps from one group in
the parabolic chain to the next.
For each k from 1 up to the top rank n,
Branch[k] is a branching matrix for restriction from W[k] to W[k1].
If ch is a (column) vector of character values on W[k]conjugacy classes,
then the matrixvector product Branch[k]*ch is the vector of irreducible
multiplicities for ch as a W[k1]character.
Branch[i,k] is a list that indicates which irreps appear (with
repetitions for multiplicity > 1) when the ith irrep of W[k]
is restricted to W[k1].
Example: Branch[31,7] = [10, 13, 17, 21] means that the 31st irrep of E7
decomposes as the sum of the 10th, 13th, 17th, and 21st irreps of E6.
NOTE: if an irrep j occurs with multiplicity 2, then the second occurrence
of the irrep is listed as i. (None of the models provided involve
branching multiplicities greater than 2.)
Branch[0,k] is a list of representatives from the conjugacy classes of
W[k] of paraCoxeter type (i.e., products of distinct simple
reflections) that include s[k] at least once. The format
is a list of items of the form [i,w], where w is a class
representative, and i is the position of w within the listing
of conjugacy classes used by the coxeter package.
If no irreps of W[k] have clones, Branch[0,k] is not assigned.

Semi: data encoding the seminormal forms for each irrep.
For each k from 1 up to the top rank n, and for each irrep j of W[k1]
that occurs in the ith irrep of W[k], (i.e., for each j in Branch[i,k]),
Semi[j,i,k] is a rescaling factor for rationalizing the ith irrep
of W[k1] in the jth irrep of W[k].
Each scaling factor is the (positive) square root of a rational.
The rows and columns of the matrices for the ith irrep of W[n] may be
represented by chains in the Bratteli diagram; i.e., (n+1)tuples
[i[0],...,i[n]], where i[0]=1, i[n]=i, and i[k1] is an item of
Branch[i[k],k] for each k=1,...,n.
If D is the diagonal matrix whose entry in position [i[0],...,i[n]] is
Semi[i[0],i[1],1] * ... * Semi[i[n1],i[n],n],
then D is the change of basis needed to convert the orthogonal model
to the rational seminormal model; i.e., D * Ortho * D^{1} = Seminormal.
Semi[k] is a set of indices that indicates for which irreps of W[k]
a seminormal has been constructed.
This is useful only during the process of building the models; all of
the data files provided have seminormal data for all irreps.