18namespace layer1_foundations {
19namespace linear_algebra {
35 int f_v = (verbose_level >= 1);
38 cout <<
"representation_theory_domain::init" << endl;
42 cout <<
"representation_theory_domain::init done" << endl;
48 int q,
int a,
int b,
int c,
int d)
54 A[0 * 8 + 0] =
m_term(q, d, d, d);
55 A[0 * 8 + 1] =
m_term(q, c, c, c);
56 A[0 * 8 + 2] =
m_term(q, d, d, c);
57 A[0 * 8 + 3] =
m_term(q, d, c, d);
58 A[0 * 8 + 4] =
m_term(q, c, d, d);
59 A[0 * 8 + 5] =
m_term(q, d, c, c);
60 A[0 * 8 + 6] =
m_term(q, c, c, d);
61 A[0 * 8 + 7] =
m_term(q, c, d, c);
63 A[1 * 8 + 0] =
m_term(q, b, b, b);
64 A[1 * 8 + 1] =
m_term(q, a, a, a);
65 A[1 * 8 + 2] =
m_term(q, b, b, a);
66 A[1 * 8 + 3] =
m_term(q, b, a, b);
67 A[1 * 8 + 4] =
m_term(q, a, b, b);
68 A[1 * 8 + 5] =
m_term(q, b, a, a);
69 A[1 * 8 + 6] =
m_term(q, a, a, b);
70 A[1 * 8 + 7] =
m_term(q, a, b, a);
72 A[2 * 8 + 0] =
m_term(q, d, d, b);
73 A[2 * 8 + 1] =
m_term(q, c, c, a);
74 A[2 * 8 + 2] =
m_term(q, d, d, a);
75 A[2 * 8 + 3] =
m_term(q, d, c, b);
76 A[2 * 8 + 4] =
m_term(q, c, d, b);
77 A[2 * 8 + 5] =
m_term(q, d, c, a);
78 A[2 * 8 + 6] =
m_term(q, c, c, b);
79 A[2 * 8 + 7] =
m_term(q, c, d, a);
81 A[3 * 8 + 0] =
m_term(q, d, b, d);
82 A[3 * 8 + 1] =
m_term(q, c, a, c);
83 A[3 * 8 + 2] =
m_term(q, d, b, c);
84 A[3 * 8 + 3] =
m_term(q, d, a, d);
85 A[3 * 8 + 4] =
m_term(q, c, b, d);
86 A[3 * 8 + 5] =
m_term(q, d, a, c);
87 A[3 * 8 + 6] =
m_term(q, c, a, d);
88 A[3 * 8 + 7] =
m_term(q, c, b, c);
90 A[4 * 8 + 0] =
m_term(q, b, d, d);
91 A[4 * 8 + 1] =
m_term(q, a, c, c);
92 A[4 * 8 + 2] =
m_term(q, b, d, c);
93 A[4 * 8 + 3] =
m_term(q, b, c, d);
94 A[4 * 8 + 4] =
m_term(q, a, d, d);
95 A[4 * 8 + 5] =
m_term(q, b, c, c);
96 A[4 * 8 + 6] =
m_term(q, a, c, d);
97 A[4 * 8 + 7] =
m_term(q, a, d, c);
99 A[5 * 8 + 0] =
m_term(q, d, b, b);
100 A[5 * 8 + 1] =
m_term(q, c, a, a);
101 A[5 * 8 + 2] =
m_term(q, d, b, a);
102 A[5 * 8 + 3] =
m_term(q, d, a, b);
103 A[5 * 8 + 4] =
m_term(q, c, b, b);
104 A[5 * 8 + 5] =
m_term(q, d, a, a);
105 A[5 * 8 + 6] =
m_term(q, c, a, b);
106 A[5 * 8 + 7] =
m_term(q, c, b, a);
108 A[6 * 8 + 0] =
m_term(q, b, b, d);
109 A[6 * 8 + 1] =
m_term(q, a, a, c);
110 A[6 * 8 + 2] =
m_term(q, b, b, c);
111 A[6 * 8 + 3] =
m_term(q, b, a, d);
112 A[6 * 8 + 4] =
m_term(q, a, b, d);
113 A[6 * 8 + 5] =
m_term(q, b, a, c);
114 A[6 * 8 + 6] =
m_term(q, a, a, d);
115 A[6 * 8 + 7] =
m_term(q, a, b, c);
117 A[7 * 8 + 0] =
m_term(q, b, d, b);
118 A[7 * 8 + 1] =
m_term(q, a, c, a);
119 A[7 * 8 + 2] =
m_term(q, b, d, a);
120 A[7 * 8 + 3] =
m_term(q, b, c, b);
121 A[7 * 8 + 4] =
m_term(q, a, d, b);
122 A[7 * 8 + 5] =
m_term(q, b, c, a);
123 A[7 * 8 + 6] =
m_term(q, a, c, b);
124 A[7 * 8 + 7] =
m_term(q, a, d, a);
130 int q,
int a,
int b,
int c,
int d)
142 A[0 * 9 + 0] =
term1(d,tq2);
143 A[0 * 9 + 1] =
term2(c,d,q1,q1);
144 A[0 * 9 + 2] =
term1(c,tq2);
145 A[0 * 9 + 3] =
term2(c,d,q,q2);
146 A[0 * 9 + 4] =
term2(c,d,1,tq1);
147 A[0 * 9 + 5] =
term2(c,d,tq,2);
148 A[0 * 9 + 6] =
term2(c,d,2,tq);
149 A[0 * 9 + 7] =
term2(c,d,tq1,1);
150 A[0 * 9 + 8] =
term2(c,d,q2,q);
153 A[1 * 9 + 1] =
add(
add(
add(
term2(a,d,q1,q1),
term4(a,b,c,d,q,1,1,q)),
term4(a,b,c,d,1,q,q,1)),
term2(b,c,q1,q1));
155 A[1 * 9 + 3] =
twice(
add(
term3(a,b,d,q,1,q1),
term3(b,c,d,q1,q,1)));
156 A[1 * 9 + 4] =
twice(
add(
term3(a,b,d,1,q,q1),
term3(b,c,d,q1,1,q)));
159 A[1 * 9 + 7] =
twice(
add(
term3(a,b,c,q,1,q1),
term3(a,c,d,q1,q,1)));
160 A[1 * 9 + 8] =
twice(
add(
term3(a,c,d,q1,1,q),
term3(a,b,c,1,q,q1)));
162 A[2 * 9 + 0] =
term1(b,tq2);
163 A[2 * 9 + 1] =
term2(a,b,q1,q1);
164 A[2 * 9 + 2] =
term1(a,tq2);
165 A[2 * 9 + 3] =
term2(a,b,q,q2);
166 A[2 * 9 + 4] =
term2(a,b,1,tq1);
167 A[2 * 9 + 5] =
term2(a,b,tq,2);
168 A[2 * 9 + 6] =
term2(a,b,2,tq);
169 A[2 * 9 + 7] =
term2(a,b,tq1,1);
170 A[2 * 9 + 8] =
term2(a,b,q2,q);
173 A[3 * 9 + 1] =
add(
term3(a,c,d,q,1,q1),
term3(b,c,d,q,q1,1));
183 A[4 * 9 + 1] =
add(
term3(a,c,d,1,q,q1),
term3(b,c,d,1,q1,q));
192 A[5 * 9 + 0] =
term2(b,d,tq,2);
193 A[5 * 9 + 1] =
term4(a,b,c,d,q,q,1,1);
194 A[5 * 9 + 2] =
term2(a,c,tq,2);
195 A[5 * 9 + 3] =
term3(a,b,d,q,q,2);
196 A[5 * 9 + 4] =
term3(b,c,d,tq,1,1);
197 A[5 * 9 + 5] =
term2(a,d,tq,2);
198 A[5 * 9 + 6] =
term2(b,c,tq,2);
199 A[5 * 9 + 7] =
term3(a,c,d,tq,1,1);
200 A[5 * 9 + 8] =
term3(a,b,c,q,q,2);
202 A[6 * 9 + 0] =
term2(b,d,2,tq);
203 A[6 * 9 + 1] =
term4(a,b,c,d,1,1,q,q);
204 A[6 * 9 + 2] =
term2(a,c,2,tq);
205 A[6 * 9 + 3] =
term3(b,c,d,2,q,q);
206 A[6 * 9 + 4] =
term3(a,b,d,1,1,tq);
207 A[6 * 9 + 5] =
term2(b,c,2,tq);
208 A[6 * 9 + 6] =
term2(a,d,2,tq);
209 A[6 * 9 + 7] =
term3(a,b,c,1,1,tq);
210 A[6 * 9 + 8] =
term3(a,c,d,2,q,q);
213 A[7 * 9 + 1] =
add(
term3(a,b,d,q1,q,1),
term3(a,b,c,q,q1,1));
223 A[8 * 9 + 1] =
add(
term3(a,b,d,q1,1,q),
term3(a,b,c,1,q1,q));
236 int a,
int b,
int c,
int d,
int beta)
238 int beta_q, delta, gamma;
239 int r, q, q1,q2,tq, tq1;
243 cout <<
"representation_theory_domain::representing_matrix9_U !F->f_has_table" << endl;
247 cout <<
"representation_theory_domain::representing_matrix9_U "
248 "field does not have a quadratic subfield" << endl;
260 gamma =
mult(delta, beta);
265 A[0 * 9 + 3] =
twice(
Term3(b,d,gamma,q,q2,1));
266 A[0 * 9 + 4] =
twice(
Term3(b,d,delta,1,tq1,1));
267 A[0 * 9 + 5] =
Term3(b,d,gamma,tq,2,1);
268 A[0 * 9 + 6] =
Term3(b,d,delta,2,tq,1);
269 A[0 * 9 + 7] =
twice(
Term3(b,d,gamma,tq1,1,1));
270 A[0 * 9 + 8] =
twice(
Term3(b,d,delta,q2,q,1));
272 A[1 * 9 + 0] =
N2(
mult(c,d));
273 A[1 * 9 + 1] =
add3(
N2(
mult(a,d)),
N2(
mult(b,c)),
T2(
term4(a,b,c,d,q,1,1,q)));
274 A[1 * 9 + 2] =
N2(
mult(a,b));
275 A[1 * 9 + 3] =
add(
Term4(a,c,d,gamma,q,1,q1,1),
Term4(b,c,d,gamma,q,q1,1,1));
276 A[1 * 9 + 4] =
add(
Term4(a,c,d,delta,1,q,q1,1),
Term4(b,c,d,delta,1,q1,q,1));
277 A[1 * 9 + 5] =
Term5(a,b,c,d,gamma,q,q,1,1,1);
278 A[1 * 9 + 6] =
Term5(a,b,c,d,delta,1,1,q,q,1);
279 A[1 * 9 + 7] =
add(
Term4(a,b,d,gamma,q1,q,1,1),
Term4(a,b,c,gamma,q,q1,1,1));
280 A[1 * 9 + 8] =
add(
Term4(a,b,c,delta,1,q1,q,1),
Term4(a,b,d,delta,q1,1,q,1));
285 A[2 * 9 + 3] =
twice(
Term3(a,c,gamma,q,q2,1));
286 A[2 * 9 + 4] =
twice(
Term3(a,c,delta,1,tq1,1));
287 A[2 * 9 + 5] =
Term3(a,c,gamma,tq,2,1);
288 A[2 * 9 + 6] =
Term3(a,c,delta,2,tq,1);
289 A[2 * 9 + 7] =
twice(
Term3(a,c,gamma,tq1,1,1));
290 A[2 * 9 + 8] =
twice(
Term3(a,c,delta,q2,q,1));
292 A[3 * 9 + 0] =
Term2(c,d,1,tq1);
293 A[3 * 9 + 1] =
twice(
add(
Term3(a,b,d,1,q,q1),
Term3(b,c,d,q1,1,q)));
294 A[3 * 9 + 2] =
Term2(a,b,1,tq1);
295 A[3 * 9 + 3] =
add3(
twice(
Term4(b,c,d,gamma,q,1,q1,1)),
Term3(a,d,gamma,q,q2,1),
Term4(b,c,d,gamma,q,q,2,1));
296 A[3 * 9 + 4] =
add3(
twice(
Term4(b,c,d,delta,1,q,q1,1)),
Term3(a,d,delta,1,tq1,1),
Term4(b,c,d,delta,1,1,tq,1));
297 A[3 * 9 + 5] =
add(
Term4(a,b,d,gamma,q,q,2,1),
Term4(b,c,d,gamma,tq,1,1,1));
298 A[3 * 9 + 6] =
add(
Term4(b,c,d,delta,2,q,q,1),
Term4(a,b,d,delta,1,1,tq,1));
299 A[3 * 9 + 7] =
add3(
twice(
Term4(a,b,d,gamma,q,q1,1,1)),
Term4(a,b,d,gamma,1,tq,1,1),
Term3(b,c,gamma,tq1,1,1));
300 A[3 * 9 + 8] =
add3(
twice(
Term4(a,b,d,delta,1,q1,q,1)),
Term4(a,b,d,delta,q,2,q,1),
Term3(b,c,delta,q2,q,1));
302 A[4 * 9 + 0] =
Term3(c,d,beta,1,tq1,1);
303 A[4 * 9 + 1] =
twice(
add(
Term4(a,b,d,beta,1,q,q1,1),
Term4(b,c,d,beta,q1,1,q,1)));
304 A[4 * 9 + 2] =
Term3(a,b,beta,1,tq1,1);
305 A[4 * 9 + 3] =
add3(
twice(
Term5(b,c,d,beta,gamma,q,1,q1,1,1)),
Term4(a,d,beta,gamma,q,q2,q,1),
Term5(b,c,d,beta,gamma,q,q,2,q,1));
306 A[4 * 9 + 4] =
add3(
twice(
Term5(b,c,d,beta,delta,1,q,q1,q,1)),
Term4(a,d,beta,delta,1,tq1,1,1),
Term5(b,c,d,beta,delta,1,1,tq,1,1));
307 A[4 * 9 + 5] =
add(
Term5(a,b,d,beta,gamma,q,q,2,q,1),
Term5(b,c,d,beta,gamma,tq,1,1,1,1));
308 A[4 * 9 + 6] =
add(
Term5(b,c,d,beta,delta,2,q,q,q,1),
Term5(a,b,d,beta,delta,1,1,tq,1,1));
309 A[4 * 9 + 7] =
add3(
twice(
Term5(a,b,d,beta,gamma,q,q1,1,q,1)),
Term5(a,b,d,beta,gamma,1,tq,1,1,1),
Term4(b,c,beta,gamma,tq1,1,1,1));
310 A[4 * 9 + 8] =
add3(
twice(
Term5(a,b,d,beta,delta,1,q1,q,1,1)),
Term5(a,b,d,beta,delta,q,2,q,q,1),
Term4(b,c,beta,delta,q2,q,q,1));
312 A[5 * 9 + 0] =
Term2(c,d,2,tq);
314 A[5 * 9 + 2] =
Term2(a,b,2,tq);
315 A[5 * 9 + 3] =
twice(
add(
Term4(a,c,d,gamma,q,q,2,1),
Term4(b,c,d,gamma,q,2,q,1)));
316 A[5 * 9 + 4] =
twice(
add(
Term4(b,c,d,delta,1,tq,1,1),
Term4(a,c,d,delta,1,1,tq,1)));
317 A[5 * 9 + 5] =
add(
Term3(a,d,gamma,tq,2,1),
Term3(b,c,gamma,tq,2,1));
318 A[5 * 9 + 6] =
add(
Term3(a,d,delta,2,tq,1),
Term3(b,c,delta,2,tq,1));
319 A[5 * 9 + 7] =
twice(
add(
Term4(a,b,d,gamma,tq,1,1,1),
Term4(a,b,c,gamma,1,tq,1,1)));
320 A[5 * 9 + 8] =
twice(
add(
Term4(a,b,c,delta,q,2,q,1),
Term4(a,b,d,delta,2,q,q,1)));
322 A[6 * 9 + 0] =
Term3(c,d,beta,2,tq,1);
324 A[6 * 9 + 2] =
Term3(a,b,beta,2,tq,1);
325 A[6 * 9 + 3] =
twice(
add(
Term5(a,c,d,beta,gamma,q,q,2,q,1),
Term5(b,c,d,beta,gamma,q,2,q,1,1)));
326 A[6 * 9 + 4] =
twice(
add(
Term5(b,c,d,beta,delta,1,tq,1,q,1),
Term5(a,c,d,beta,delta,1,1,tq,1,1)));
327 A[6 * 9 + 5] =
add(
Term4(a,d,beta,gamma,tq,2,q,1),
Term4(b,c,beta,gamma,tq,2,1,1));
328 A[6 * 9 + 6] =
add(
Term4(a,d,beta,delta,2,tq,1,1),
Term4(b,c,beta,delta,2,tq,q,1));
329 A[6 * 9 + 7] =
twice(
add(
Term5(a,b,d,beta,gamma,tq,1,1,q,1),
Term5(a,b,c,beta,gamma,1,tq,1,1,1)));
330 A[6 * 9 + 8] =
twice(
add(
Term5(a,b,c,beta,delta,q,2,q,q,1),
Term5(a,b,d,beta,delta,2,q,q,1,1)));
332 A[7 * 9 + 0] =
Term2(c,d,q2,q);
333 A[7 * 9 + 1] =
twice(
add(
Term3(a,c,d,q1,1,q),
Term3(a,b,c,1,q,q1)));
334 A[7 * 9 + 2] =
Term2(a,b,q2,q);
335 A[7 * 9 + 3] =
add3(
twice(
Term4(a,c,d,gamma,q,q1,1,1)),
Term4(a,c,d,gamma,q,2,q,1),
Term3(b,c,gamma,q,q2,1));
336 A[7 * 9 + 4] =
add3(
twice(
Term4(a,c,d,delta,1,q1,q,1)),
Term4(a,c,d,delta,1,tq,1,1),
Term3(b,c,delta,1,tq1,1));
337 A[7 * 9 + 5] =
add(
Term4(a,c,d,gamma,tq,1,1,1),
Term4(a,b,c,gamma,q,q,2,1));
338 A[7 * 9 + 6] =
add(
Term4(a,b,c,delta,1,1,tq,1),
Term4(a,c,d,delta,2,q,q,1));
339 A[7 * 9 + 7] =
add3(
twice(
Term4(a,b,c,gamma,q1,q,1,1)),
Term3(a,d,gamma,tq1,1,1),
Term4(a,b,c,gamma,tq,1,1,1));
340 A[7 * 9 + 8] =
add3(
twice(
Term4(a,b,c,delta,q1,1,q,1)),
Term3(a,d,delta,q2,q,1),
Term4(a,b,c,delta,2,q,q,1));
342 A[8 * 9 + 0] =
Term3(c,d,beta,q2,q,1);
343 A[8 * 9 + 1] =
twice(
add(
Term4(a,c,d,beta,q1,1,q,1),
Term4(a,b,c,beta,1,q,q1,1)));
344 A[8 * 9 + 2] =
Term3(a,b,beta,q2,q,1);
345 A[8 * 9 + 3] =
add3(
twice(
Term5(a,c,d,beta,gamma,q,q1,1,q,1)),
Term5(a,c,d,beta,gamma,q,2,q,1,1),
Term4(b,c,beta,gamma,q,q2,1,1));
346 A[8 * 9 + 4] =
add3(
twice(
Term5(a,c,d,beta,delta,1,q1,q,1,1)),
Term5(a,c,d,beta,delta,1,tq,1,q,1),
Term4(b,c,beta,delta,1,tq1,q,1));
347 A[8 * 9 + 5] =
add(
Term5(a,c,d,beta,gamma,tq,1,1,q,1),
Term5(a,b,c,beta,gamma,q,q,2,1,1));
348 A[8 * 9 + 6] =
add(
Term5(a,b,c,beta,delta,1,1,tq,q,1),
Term5(a,c,d,beta,delta,2,q,q,1,1));
349 A[8 * 9 + 7] =
add3(
twice(
Term5(a,b,c,beta,gamma,q1,q,1,1,1)),
Term4(a,d,beta,gamma,tq1,1,q,1),
Term5(a,b,c,beta,gamma,tq,1,1,q,1));
350 A[8 * 9 + 8] =
add3(
twice(
Term5(a,b,c,beta,delta,q1,1,q,q,1)),
Term4(a,d,beta,delta,q2,q,1,1),
Term5(a,b,c,beta,delta,2,q,q,1,1));
359 int beta_2, beta_11, beta_22, beta_21, beta_12, beta_123, beta_132;
360 int gamma3, gamma4, gamma5, gamma6, gamma7, gamma8;
369 cout <<
"representation_theory_domain::representing_matrix8_U "
370 "field does not have a cubic subfield" << endl;
404 M1[0 * 3 + 0] =
m_term(q, d, b, c);
405 M1[0 * 3 + 1] =
m_term(q, d, a, d);
406 M1[0 * 3 + 2] =
m_term(q, c, b, d);
407 M1[1 * 3 + 0] =
m_term(q, b, b, c);
408 M1[1 * 3 + 1] =
m_term(q, b, a, d);
409 M1[1 * 3 + 2] =
m_term(q, a, b, d);
411 M2[0 * 3 + 0] =
m_term(q, d, a, c);
412 M2[0 * 3 + 1] =
m_term(q, c, a, d);
413 M2[0 * 3 + 2] =
m_term(q, c, b, c);
414 M2[1 * 3 + 0] =
m_term(q, b, a, c);
415 M2[1 * 3 + 1] =
m_term(q, a, a, d);
416 M2[1 * 3 + 2] =
m_term(q, a, b, c);
440 int eta11, eta12, eta13;
441 int eta21, eta22, eta23;
442 int zeta11, zeta12, zeta13;
443 int zeta21, zeta22, zeta23;
450 zeta11 = zeta[0*3+0];
451 zeta12 = zeta[0*3+1];
452 zeta13 = zeta[0*3+2];
453 zeta21 = zeta[1*3+0];
454 zeta22 = zeta[1*3+1];
455 zeta23 = zeta[1*3+2];
460 A[0 * 8 + 0] =
N3(d);
461 A[0 * 8 + 1] =
N3(b);
469 A[1 * 8 + 0] =
N3(c);
470 A[1 * 8 + 1] =
N3(a);
478 A[2 * 8 + 0] =
T3(
m_term(q, d, d, c));
479 A[2 * 8 + 1] =
T3(
m_term(q, b, b, a));
532 for (j = 2; j <= 4; j++) {
533 for (i = 0; i < 8; i++) {
534 A[i * 8 + j] =
mult(A[i * 8 + j], delta1);
537 for (j = 5; j <= 7; j++) {
538 for (i = 0; i < 8; i++) {
539 A[i * 8 + j] =
mult(A[i * 8 + j], delta2);
553 int beta_21, beta_12, beta_123, beta_132;
561 cout <<
"representation_theory_domain::representing_matrix8_V "
562 "field does not have a cubic subfield" << endl;
599 for (j = 2; j <= 4; j++) {
600 for (i = 2; i <= 4; i++) {
601 A[i * 8 + j] =
mult(A[i * 8 + j], delta1);
604 for (j = 5; j <= 7; j++) {
605 for (i = 5; i <= 7; i++) {
606 A[i * 8 + j] =
mult(A[i * 8 + j], delta2);
614 int r, beta_q, delta, minus_one;
619 cout <<
"representation_theory_domain::representing_matrix9b field "
620 "does not have a quadratic subfield" << endl;
626 delta =
add(beta_q, beta);
646 A[4 * 9 + 3] = delta;
647 A[4 * 9 + 4] = minus_one;
649 A[6 * 9 + 5] = delta;
650 A[6 * 9 + 6] = minus_one;
652 A[8 * 9 + 7] = delta;
653 A[8 * 9 + 8] = minus_one;
659 A[4 * 9 + 4] = Tgamma;
660 A[4 * 9 + 3] = Tbetagamma;
661 A[6 * 9 + 6] = Tgamma;
662 A[6 * 9 + 5] = Tbetagamma;
663 A[3 * 9 + 3] = nTgamma;
664 A[8 * 9 + 8] = Tgamma;
665 A[8 * 9 + 7] = Tbetagamma;
666 A[5 * 9 + 5] = nTgamma;
667 A[7 * 9 + 7] = nTgamma;
672 int a,
int b,
int c,
int d,
int beta)
677 int delta, omega, gamma, eta, zeta, epsilon, xi, tau;
682 cout <<
"representation_theory_domain::representing_matrix8a "
683 "field does not have a cubic subfield" << endl;
707A[0 * 8 + 1] =
T3(
term3(beta,c,d,1,1,q*q+q));
708A[0 * 8 + 2] =
T3(
term2(c,d,1,q*q+q));
709A[0 * 8 + 3] =
T3(
term2(c,d,q+1,q*q));
710A[0 * 8 + 4] =
T3(
term3(beta,c,d,2,1,q*q+q));
711A[0 * 8 + 5] =
T3(
term3(beta,c,d,q+1,q+1,q*q));
712A[0 * 8 + 6] =
T3(
term3(beta,c,d,2*q+2,q+1,q*q));
715A[1*8+0]=
mult(delta,
T3(
term3(gamma,b,d,1,1,q*q+q)));
716A[1*8+1]=
mult(delta,
T3(
mult(beta,
add(
add(
term3(gamma,a,d,1,1,q*q+q),
term4(gamma,b,c,d,q,q,1,q*q)),
term4(gamma,b,c,d,q*q,q*q,1,q)))));
717A[1*8+2]=
mult(delta,
T3(
mult(gamma,
add(
add(
term2(a,d,1,q*q+q),
term3(b,c,d,1,q,q*q)),
term3(b,c,d,1,q*q,q)))));
718A[1*8+3]=
mult(delta,
T3(
mult(gamma,
add(
add(
term3(a,c,d,1,q,q*q),
term2(b,c,1,q*q+q)),
term3(a,c,d,1,q*q,q)))));
719A[1*8+4]=
mult(delta,
T3(
mult(
mult(beta,beta),
add(
add(
term3(gamma,a,d,1,1,q*q+q),
term4(gamma,b,c,d,q,q,1,q*q)),
term4(gamma,b,c,d,q*q,q*q,1,q)))));
720A[1*8+5]=
mult(delta,
T3(
mult(
power(beta,q+1),
add(
add(
term4(gamma,a,c,d,1,1,q,q*q),
term4(gamma,a,c,d,q,q,1,q*q)),
term3(gamma,b,c,q*q,q*q,q+1)))));
721A[1*8+6]=
mult(delta,
T3(
mult(
power(beta,2*q+2),
add(
add(
term4(gamma,a,c,d,1,1,q,q*q),
term4(gamma,a,c,d,q,q,1,q*q)),
term3(gamma,b,c,q*q,q*q,q+1)))));
722A[1*8+7]=
mult(delta,
T3(
term3(gamma,a,c,1,1,q*q+q)));
725A[2*8+1]=
mult(delta,
T3(
mult(beta,
add(
add(
term3(eta,a,d,1,1,q*q+q),
term4(eta,b,c,d,q,q,1,q*q)),
term4(eta,b,c,d,q*q,q*q,1,q)))));
726A[2*8+2]=
mult(delta,
T3(
mult(eta,
add(
add(
term3(b,c,d,1,q,q*q),
term2(a,d,1,q*q+q)),
term3(b,c,d,1,q*q,q)))));
727A[2*8+3]=
mult(delta,
T3(
mult(eta,
add(
add(
term3(a,c,d,1,q,q*q),
term2(b,c,1,q*q+q)),
term3(a,c,d,1,q*q,q)))));
728A[2*8+4]=
mult(delta,
T3(
mult(
power(beta,2),
add(
add(
term3(eta,a,d,1,1,q*q+q),
term4(eta,b,c,d,q,q,1,q*q)),
term4(eta,b,c,d,q*q,q*q,1,q)))));
729A[2*8+5]=
mult(delta,
T3(
mult(
power(beta,q+1),
add(
add(
term4(eta,a,c,d,1,1,q,q*q),
term4(eta,a,c,d,q,q,1,q*q)),
term3(eta,b,c,q*q,q*q,q+1)))));
730A[2*8+6]=
mult(delta,
T3(
mult(
power(beta,2*q+2),
add(
add(
term4(eta,a,c,d,1,1,q,q*q),
term4(eta,a,c,d,q,q,1,q*q)),
term3(eta,b,c,q*q,q*q,q+1)))));
733A[3*8+0]=
mult(omega,
T3(
term3(epsilon,b,d,1,q+1,q*q)));
734A[3*8+1]=
mult(omega,
T3(
mult(beta,
add(
add(
term4(epsilon,a,b,d,1,1,q,q*q),
term3(epsilon,b,c,q,q*q+q,1)),
term4(epsilon,a,b,d,q*q,1,q*q,q)))));
735A[3*8+2]=
mult(omega,
T3(
mult(epsilon,
add(
add(
term3(a,b,d,q,1,q*q),
term3(a,b,d,1,q,q*q)),
term2(b,c,q+1,q*q)))));
736A[3*8+3]=
mult(omega,
T3(
mult(epsilon,
add(
add(
term2(a,d,q+1,q*q),
term3(a,b,c,q,1,q*q)),
term3(a,b,c,1,q,q*q)))));
737A[3*8+4]=
mult(omega,
T3(
mult(
power(beta,2),
add(
add(
term4(epsilon,a,b,d,1,1,q,q*q),
term3(epsilon,b,c,q,q*q+q,1)),
term4(epsilon,a,b,d,q*q,1,q*q,q)))));
738A[3*8+5]=
mult(omega,
T3(
mult(
power(beta,q+1),
add(
add(
term3(epsilon,a,d,1,q+1,q*q),
term4(epsilon,a,b,c,q,q,q*q,1)),
term4(epsilon,a,b,c,q*q,1,q*q,q)))));
739A[3*8+6]=
mult(omega,
T3(
mult(
power(beta,2*q+2),
add(
add(
term3(epsilon,a,d,1,q+1,q*q),
term4(epsilon,a,b,c,q,q,q*q,1)),
term4(epsilon,a,b,c,q*q,1,q*q,q)))));
740A[3*8+7]=
mult(omega,
T3(
term3(epsilon,a,c,1,q+1,q*q)));
744A[4*8+1]=
mult(delta,
T3(
mult(beta,
add(
add(
term4(zeta,b,c,d,1,q*q,1,q),
term3(zeta,a,d,q,1,q*q+q)),
term4(zeta,b,c,d,q*q,q,1,q*q)))));
745A[4*8+2]=
mult(delta,
T3(
mult(zeta,
add(
add(
term3(b,c,d,q*q,q,1),
term3(b,c,d,q*q,1,q)),
term2(a,d,q*q,q+1)))));
746A[4*8+3]=
mult(delta,
T3(
mult(zeta,
add(
add(
term2(b,c,q*q,q+1),
term3(a,c,d,q*q,q,1)),
term3(a,c,d,q*q,1,q)))));
747A[4*8+4]=
mult(delta,
T3(
mult(
power(beta,2),
add(
add(
term4(zeta,b,c,d,1,q*q,1,q),
term3(zeta,a,d,q,1,q*q+q)),
term4(zeta,b,c,d,q*q,q,1,q*q)))));
748A[4*8+5]=
mult(delta,
T3(
mult(
power(beta,q+1),
add(
add(
term3(zeta,b,c,1,q*q,q+1),
term4(zeta,a,c,d,q,1,q,q*q)),
term4(zeta,a,c,d,q*q,q,1,q*q)))));
749A[4*8+6]=
mult(delta,
T3(
mult(
power(beta,2*q+2),
add(
add(
term3(zeta,b,c,1,q*q,q+1),
term4(zeta,a,c,d,q,1,q,q*q)),
term4(zeta,a,c,d,q*q,q,1,q*q)))));
753A[5*8+1]=
mult(omega,
T3(
mult(beta,
add(
add(
term4(xi,a,b,d,1,1,q,q*q),
term3(xi,b,c,q,q*q+q,1)),
term4(xi,a,b,d,q*q,1,q*q,q)))));
754A[5*8+2]=
mult(omega,
T3(
mult(xi,
add(
add(
term3(a,b,d,q,1,q*q),
term3(a,b,d,1,q,q*q)),
term2(b,c,q+1,q*q)))));
755A[5*8+3]=
mult(omega,
T3(
mult(xi,
add(
add(
term2(a,d,q+1,q*q),
term3(a,b,c,q,1,q*q)),
term3(a,b,c,1,q,q*q)))));
756A[5*8+4]=
mult(omega,
T3(
mult(
power(beta,2),
add(
add(
term4(xi,a,b,d,1,1,q,q*q),
term3(xi,b,c,q,q*q+q,1)),
term4(xi,a,b,d,q*q,1,q*q,q)))));
757A[5*8+5]=
mult(omega,
T3(
mult(
power(beta,q+1),
add(
add(
term3(xi,a,d,1,q+1,q*q),
term4(xi,a,b,c,q,q,q*q,1)),
term4(xi,a,b,c,q*q,1,q*q,q)))));
758A[5*8+6]=
mult(omega,
T3(
mult(
power(beta,2*q+2),
add(
add(
term3(xi,a,d,1,q+1,q*q),
term4(xi,a,b,c,q,q,q*q,1)),
term4(xi,a,b,c,q*q,1,q*q,q)))));
762A[6*8+1]=
mult(omega,
T3(
mult(beta,
add(
add(
term4(tau,a,b,d,1,1,q,q*q),
term3(tau,b,c,q,q*q+q,1)),
term4(tau,a,b,d,q*q,1,q*q,q)))));
763A[6*8+2]=
mult(omega,
T3(
mult(tau,
add(
add(
term3(a,b,d,q,1,q*q),
term3(a,b,d,1,q,q*q)),
term2(b,c,q+1,q*q)))));
764A[6*8+3]=
mult(omega,
T3(
mult(tau,
add(
add(
term2(a,d,q+1,q*q),
term3(a,b,c,q,1,q*q)),
term3(a,b,c,1,q,q*q)))));
765A[6*8+4]=
mult(omega,
T3(
mult(
power(beta,2),
add(
add(
term4(tau,a,b,d,1,1,q,q*q),
term3(tau,b,c,q,q*q+q,1)),
term4(tau,a,b,d,q*q,1,q*q,q)))));
766A[6*8+5]=
mult(omega,
T3(
mult(
power(beta,q+1),
add(
add(
term3(tau,a,d,1,q+1,q*q),
term4(tau,a,b,c,q,q,q*q,1)),
term4(tau,a,b,c,q*q,1,q*q,q)))));
767A[6*8+6]=
mult(omega,
T3(
mult(
power(beta,2*q+2),
add(
add(
term3(tau,a,d,1,q+1,q*q),
term4(tau,a,b,c,q,q,q*q,1)),
term4(tau,a,b,c,q*q,1,q*q,q)))));
771A[7 * 8 + 1] =
T3(
term3(beta,a,b,1,1,q*q+q));
772A[7 * 8 + 2] =
T3(
term2(a,b,1,q*q+q));
773A[7 * 8 + 3] =
T3(
term2(a,b,q+1,q*q));
774A[7 * 8 + 4] =
T3(
term3(beta,a,b,2,1,q*q+q));
775A[7 * 8 + 5] =
T3(
term3(beta,a,b,q+1,q+1,q*q));
776A[7 * 8 + 6] =
T3(
term3(beta,a,b,2*q+2,q+1,q*q));
783 int r, q, delta, omega;
788 cout <<
"representation_theory_domain::representing_matrix8b "
789 "field does not have a cubic subfield" << endl;
796 cout <<
"delta=" << delta << endl;
797 cout <<
"omega=" << omega << endl;
857 x =
term2(a1, a2, e1, e2);
865 x =
term3(a1, a2, a3, e1, e2, e3);
870 int e1,
int e2,
int e3,
int e4)
874 x =
term4(a1, a2, a3, a4, e1, e2, e3, e4);
879 int e1,
int e2,
int e3,
int e4,
int e5)
883 x =
term5(a1, a2, a3, a4, a5, e1, e2, e3, e4, e5);
930 int e1,
int e2,
int e3,
int e4)
951 int e1,
int e2,
int e3,
int e4,
int e5)
1006 return F->
add(a, b);
1011 return F->
add3(a, b, c);
1028 return F->
mult(a, b);
int frobenius_power(int a, int frob_power)
int add3(int i1, int i2, int i3)
linear_algebra::linear_algebra * Linear_algebra
int has_quadratic_subfield()
void mult_matrix_matrix(int *A, int *B, int *C, int m, int n, int o, int verbose_level)
void transpose_matrix_in_place(int *A, int m)
void representing_matrix8_U(int *A, int a, int b, int c, int d, int beta)
int term1(int a1, int e1)
void representing_matrix8a(int *A, int a, int b, int c, int d, int beta)
int Term1(int a1, int e1)
int Term2(int a1, int a2, int e1, int e2)
int beta_trinomial(int q, int beta, int a1, int a2, int a3)
int term4(int a1, int a2, int a3, int a4, int e1, int e2, int e3, int e4)
void representing_matrix8_R(int *A, int q, int a, int b, int c, int d)
void representing_matrix9_U(int *A, int a, int b, int c, int d, int beta)
int term2(int a1, int a2, int e1, int e2)
int Term5(int a1, int a2, int a3, int a4, int a5, int e1, int e2, int e3, int e4, int e5)
int Term3(int a1, int a2, int a3, int e1, int e2, int e3)
int add3(int a, int b, int c)
field_theory::finite_field * F
void representing_matrix9b(int *A, int beta)
int term5(int a1, int a2, int a3, int a4, int a5, int e1, int e2, int e3, int e4, int e5)
int m_term(int q, int a1, int a2, int a3)
representation_theory_domain()
void init(field_theory::finite_field *F, int verbose_level)
int Term4(int a1, int a2, int a3, int a4, int e1, int e2, int e3, int e4)
int T3product2(int a1, int a2)
int term3(int a1, int a2, int a3, int e1, int e2, int e3)
void representing_matrix8_V(int *A, int beta)
~representation_theory_domain()
void representing_matrix8b(int *A, int beta)
void representing_matrix9_R(int *A, int q, int a, int b, int c, int d)
basic number theoretic functions
int i_power_j(int i, int j)
#define Int_vec_zero(A, B)
the orbiter library for the classification of combinatorial objects