All Cartan matrices
This commit is contained in:
parent
fc4ee42646
commit
32d0dc8da1
64
weyl.c
64
weyl.c
@ -229,28 +229,26 @@ int weyl_opposition(semisimple_type_t type, int simple_root)
|
|||||||
r = simple_root - offset;
|
r = simple_root - offset;
|
||||||
|
|
||||||
switch(type.factors[factor].series) {
|
switch(type.factors[factor].series) {
|
||||||
|
case 'B': case 'C': case 'F': case 'G':
|
||||||
|
iota_r = r;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'A':
|
case 'A':
|
||||||
iota_r = type.factors[factor].rank - 1 - r;
|
iota_r = type.factors[factor].rank - 1 - r;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'B': case 'C':
|
|
||||||
iota_r = r;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'D':
|
case 'D':
|
||||||
ERROR(1, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[factor].series, type.factors[factor].rank);
|
if(type.factors[factor].rank % 2 == 0)
|
||||||
|
iota_r = r;
|
||||||
|
else
|
||||||
|
iota_r = r == 0 ? 1 : r == 1 ? 0 : r;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'E':
|
case 'E':
|
||||||
ERROR(1, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[factor].series, type.factors[factor].rank);
|
if(type.factors[factor].rank == 6)
|
||||||
break;
|
iota_r = r;
|
||||||
|
else
|
||||||
case 'F':
|
iota_r = r == 3 || r == 4 ? r : 5 - r;
|
||||||
ERROR(1, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[factor].series, type.factors[factor].rank);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'G':
|
|
||||||
ERROR(1, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[factor].series, type.factors[factor].rank);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -275,50 +273,46 @@ void weyl_cartan_matrix(semisimple_type_t type, int *m)
|
|||||||
for(int i = 0; i < type.factors[k].rank; i++) // A is the submatrix corresponding to the current simple factor
|
for(int i = 0; i < type.factors[k].rank; i++) // A is the submatrix corresponding to the current simple factor
|
||||||
A[i] = &m[(i+offset)*rank + offset];
|
A[i] = &m[(i+offset)*rank + offset];
|
||||||
|
|
||||||
switch(type.factors[k].series) {
|
|
||||||
case 'A':
|
|
||||||
for(int i = 1; i < type.factors[k].rank; i++) {
|
for(int i = 1; i < type.factors[k].rank; i++) {
|
||||||
A[i][i-1] = -1;
|
A[i][i-1] = -1;
|
||||||
A[i-1][i] = -1;
|
A[i-1][i] = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
switch(type.factors[k].series) {
|
||||||
|
case 'A':
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'B': // not sure at all about the order of B and C
|
case 'B':
|
||||||
if(type.factors[k].rank >= 2) {
|
ERROR(type.factors[k].rank < 2, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
||||||
A[0][1] = -2;
|
A[0][1] = -2;
|
||||||
A[1][0] = -1;
|
|
||||||
}
|
|
||||||
for(int i = 2; i < type.factors[k].rank; i++) {
|
|
||||||
A[i][i-1] = -1;
|
|
||||||
A[i-1][i] = -1;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'C':
|
case 'C':
|
||||||
if(type.factors[k].rank >= 2) {
|
ERROR(type.factors[k].rank < 2, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
||||||
A[0][1] = -1;
|
|
||||||
A[1][0] = -2;
|
A[1][0] = -2;
|
||||||
}
|
|
||||||
for(int i = 2; i < type.factors[k].rank; i++) {
|
|
||||||
A[i][i-1] = -1;
|
|
||||||
A[i-1][i] = -1;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'D':
|
case 'D':
|
||||||
ERROR(1, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
ERROR(type.factors[k].rank < 3, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
||||||
|
A[0][1] = A[1][0] = 0;
|
||||||
|
A[0][2] = A[2][0] = -1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'E':
|
case 'E':
|
||||||
ERROR(1, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
ERROR(type.factors[k].rank < 6 || type.factors[k].rank > 8, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
||||||
|
A[1][2] = A[2][1] = 0;
|
||||||
|
A[1][3] = A[3][1] = -1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'F':
|
case 'F':
|
||||||
ERROR(1, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
ERROR(type.factors[k].rank != 4, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
||||||
|
A[3][2] = -2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G':
|
case 'G':
|
||||||
ERROR(1, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
ERROR(type.factors[k].rank != 2, "A Weyl group of type %c%d does not exist or is not implemented!\n", type.factors[k].series, type.factors[k].rank);
|
||||||
|
A[1][0] = -3;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user