]>
gitweb.michael.orlitzky.com - sage.d.git/blob - mjo/eja/eja_cache.py
2 Cached characteristic polynomial coefficients for a few of the
3 example algebras. These take a long time to compute, so it makes more
4 sense to cache them and then only test that the cached values are
5 correct every once in a while. And they're in this separate file
6 because they are visually horrific.
8 SageMath's output can be converted back into "input form" using a sed
11 $ sed -e 's/\^/\*\*/g' -e 's/X\([0-9][0-9]*\)/X\[\1\]/g' <input>
13 The simple algebras _not_ represented here all have rank two or less,
14 and are "easy" to compute even over the algebraic reals.
17 def real_symmetric_eja_coeffs(J
):
18 X
= J
.coordinate_polynomial_ring().gens()
20 if J
.dimension() == 3: # n == 2
21 a0
= -X
[1]**2 + X
[0]*X
[2]
25 elif J
.dimension() == 6: # n == 3
26 a0
= ( X
[2]*X
[3]**2 - 2*X
[1]*X
[3]*X
[4] + X
[0]*X
[4]**2 +
27 X
[1]**2*X
[5] - X
[0]*X
[2]*X
[5] )
28 a1
= ( -X
[1]**2 + X
[0]*X
[2] - X
[3]**2 - X
[4]**2 +
29 X
[0]*X
[5] + X
[2]*X
[5] )
30 a2
= -X
[0] - X
[2] - X
[5]
33 elif J
.dimension() == 10: # n == 4
34 a0
= ( X
[4]**2*X
[6]**2 - X
[2]*X
[5]*X
[6]**2 -
35 2*X
[3]*X
[4]*X
[6]*X
[7] + 2*X
[1]*X
[5]*X
[6]*X
[7] +
36 X
[3]**2*X
[7]**2 - X
[0]*X
[5]*X
[7]**2 +
37 2*X
[2]*X
[3]*X
[6]*X
[8] - 2*X
[1]*X
[4]*X
[6]*X
[8] -
38 2*X
[1]*X
[3]*X
[7]*X
[8] + 2*X
[0]*X
[4]*X
[7]*X
[8] +
39 X
[1]**2*X
[8]**2 - X
[0]*X
[2]*X
[8]**2 -
40 X
[2]*X
[3]**2*X
[9] + 2*X
[1]*X
[3]*X
[4]*X
[9] -
41 X
[0]*X
[4]**2*X
[9] - X
[1]**2*X
[5]*X
[9] +
44 a1
= ( X
[2]*X
[3]**2 - 2*X
[1]*X
[3]*X
[4] + X
[0]*X
[4]**2 +
45 X
[1]**2*X
[5] - X
[0]*X
[2]*X
[5] + X
[2]*X
[6]**2 +
46 X
[5]*X
[6]**2 - 2*X
[1]*X
[6]*X
[7] + X
[0]*X
[7]**2 +
47 X
[5]*X
[7]**2 - 2*X
[3]*X
[6]*X
[8] - 2*X
[4]*X
[7]*X
[8] +
48 X
[0]*X
[8]**2 + X
[2]*X
[8]**2 + X
[1]**2*X
[9] -
49 X
[0]*X
[2]*X
[9] + X
[3]**2*X
[9] + X
[4]**2*X
[9] -
50 X
[0]*X
[5]*X
[9] - X
[2]*X
[5]*X
[9] )
52 a2
= ( -X
[1]**2 + X
[0]*X
[2] - X
[3]**2 - X
[4]**2 +
53 X
[0]*X
[5] + X
[2]*X
[5] - X
[6]**2 - X
[7]**2 -
54 X
[8]**2 + X
[0]*X
[9] + X
[2]*X
[9] + X
[5]*X
[9] )
56 a3
= -X
[0] - X
[2] - X
[5] - X
[9]
64 def complex_hermitian_eja_coeffs(J
):
65 X
= J
.coordinate_polynomial_ring().gens()
67 if J
.dimension() == 4: # n == 2
68 a0
= -X
[1]**2 - X
[2]**2 + X
[0]*X
[3]
72 elif J
.dimension() == 9: # n == 3
73 a0
= ( X
[3]*X
[4]**2 + X
[3]*X
[5]**2 - 2*X
[1]*X
[4]*X
[6] -
74 2*X
[2]*X
[5]*X
[6] + X
[0]*X
[6]**2 + 2*X
[2]*X
[4]*X
[7] -
75 2*X
[1]*X
[5]*X
[7] + X
[0]*X
[7]**2 + X
[1]**2*X
[8] +
76 X
[2]**2*X
[8] - X
[0]*X
[3]*X
[8] )
78 a1
= ( -X
[1]**2 - X
[2]**2 + X
[0]*X
[3] - X
[4]**2 - X
[5]**2 -
79 X
[6]**2 - X
[7]**2 + X
[0]*X
[8] + X
[3]*X
[8] )
81 a2
= -X
[0] - X
[3] - X
[8]
85 elif J
.dimension() == 16: # n == 4
86 a0
= ( X
[6]**2*X
[9]**2 + X
[7]**2*X
[9]**2 - X
[3]*X
[8]*X
[9]**2 +
87 X
[6]**2*X
[10]**2 + X
[7]**2*X
[10]**2 - X
[3]*X
[8]*X
[10]**2 -
88 2*X
[4]*X
[6]*X
[9]*X
[11] - 2*X
[5]*X
[7]*X
[9]*X
[11] +
89 2*X
[1]*X
[8]*X
[9]*X
[11] - 2*X
[5]*X
[6]*X
[10]*X
[11] +
90 2*X
[4]*X
[7]*X
[10]*X
[11] + 2*X
[2]*X
[8]*X
[10]*X
[11] +
91 X
[4]**2*X
[11]**2 + X
[5]**2*X
[11]**2 - X
[0]*X
[8]*X
[11]**2 +
92 2*X
[5]*X
[6]*X
[9]*X
[12] - 2*X
[4]*X
[7]*X
[9]*X
[12] -
93 2*X
[2]*X
[8]*X
[9]*X
[12] - 2*X
[4]*X
[6]*X
[10]*X
[12] -
94 2*X
[5]*X
[7]*X
[10]*X
[12] + 2*X
[1]*X
[8]*X
[10]*X
[12] +
95 X
[4]**2*X
[12]**2 + X
[5]**2*X
[12]**2 - X
[0]*X
[8]*X
[12]**2 +
96 2*X
[3]*X
[4]*X
[9]*X
[13] - 2*X
[1]*X
[6]*X
[9]*X
[13] +
97 2*X
[2]*X
[7]*X
[9]*X
[13] + 2*X
[3]*X
[5]*X
[10]*X
[13] -
98 2*X
[2]*X
[6]*X
[10]*X
[13] - 2*X
[1]*X
[7]*X
[10]*X
[13] -
99 2*X
[1]*X
[4]*X
[11]*X
[13] - 2*X
[2]*X
[5]*X
[11]*X
[13] +
100 2*X
[0]*X
[6]*X
[11]*X
[13] + 2*X
[2]*X
[4]*X
[12]*X
[13] -
101 2*X
[1]*X
[5]*X
[12]*X
[13] + 2*X
[0]*X
[7]*X
[12]*X
[13] +
102 X
[1]**2*X
[13]**2 + X
[2]**2*X
[13]**2 - X
[0]*X
[3]*X
[13]**2 -
103 2*X
[3]*X
[5]*X
[9]*X
[14] + 2*X
[2]*X
[6]*X
[9]*X
[14] +
104 2*X
[1]*X
[7]*X
[9]*X
[14] + 2*X
[3]*X
[4]*X
[10]*X
[14] -
105 2*X
[1]*X
[6]*X
[10]*X
[14] + 2*X
[2]*X
[7]*X
[10]*X
[14] -
106 2*X
[2]*X
[4]*X
[11]*X
[14] + 2*X
[1]*X
[5]*X
[11]*X
[14] -
107 2*X
[0]*X
[7]*X
[11]*X
[14] - 2*X
[1]*X
[4]*X
[12]*X
[14] -
108 2*X
[2]*X
[5]*X
[12]*X
[14] + 2*X
[0]*X
[6]*X
[12]*X
[14] +
109 X
[1]**2*X
[14]**2 + X
[2]**2*X
[14]**2 - X
[0]*X
[3]*X
[14]**2 -
110 X
[3]*X
[4]**2*X
[15] - X
[3]*X
[5]**2*X
[15] +
111 2*X
[1]*X
[4]*X
[6]*X
[15] + 2*X
[2]*X
[5]*X
[6]*X
[15] -
112 X
[0]*X
[6]**2*X
[15] - 2*X
[2]*X
[4]*X
[7]*X
[15] +
113 2*X
[1]*X
[5]*X
[7]*X
[15] - X
[0]*X
[7]**2*X
[15] -
114 X
[1]**2*X
[8]*X
[15] - X
[2]**2*X
[8]*X
[15] +
115 X
[0]*X
[3]*X
[8]*X
[15] )
117 a1
= ( X
[3]*X
[4]**2 + X
[3]*X
[5]**2 - 2*X
[1]*X
[4]*X
[6] -
118 2*X
[2]*X
[5]*X
[6] + X
[0]*X
[6]**2 + 2*X
[2]*X
[4]*X
[7] -
119 2*X
[1]*X
[5]*X
[7] + X
[0]*X
[7]**2 + X
[1]**2*X
[8] +
120 X
[2]**2*X
[8] - X
[0]*X
[3]*X
[8] + X
[3]*X
[9]**2 +
121 X
[8]*X
[9]**2 + X
[3]*X
[10]**2 + X
[8]*X
[10]**2 -
122 2*X
[1]*X
[9]*X
[11] - 2*X
[2]*X
[10]*X
[11] + X
[0]*X
[11]**2 +
123 X
[8]*X
[11]**2 + 2*X
[2]*X
[9]*X
[12] - 2*X
[1]*X
[10]*X
[12] +
124 X
[0]*X
[12]**2 + X
[8]*X
[12]**2 - 2*X
[4]*X
[9]*X
[13] -
125 2*X
[5]*X
[10]*X
[13] - 2*X
[6]*X
[11]*X
[13] -
126 2*X
[7]*X
[12]*X
[13] + X
[0]*X
[13]**2 + X
[3]*X
[13]**2 +
127 2*X
[5]*X
[9]*X
[14] - 2*X
[4]*X
[10]*X
[14] +
128 2*X
[7]*X
[11]*X
[14] - 2*X
[6]*X
[12]*X
[14] + X
[0]*X
[14]**2 +
129 X
[3]*X
[14]**2 + X
[1]**2*X
[15] + X
[2]**2*X
[15] -
130 X
[0]*X
[3]*X
[15] + X
[4]**2*X
[15] + X
[5]**2*X
[15] +
131 X
[6]**2*X
[15] + X
[7]**2*X
[15] - X
[0]*X
[8]*X
[15] -
134 a2
= ( -X
[1]**2 - X
[2]**2 + X
[0]*X
[3] - X
[4]**2 - X
[5]**2 -
135 X
[6]**2 - X
[7]**2 + X
[0]*X
[8] + X
[3]*X
[8] - X
[9]**2 -
136 X
[10]**2 - X
[11]**2 - X
[12]**2 - X
[13]**2 - X
[14]**2 +
137 X
[0]*X
[15] + X
[3]*X
[15] + X
[8]*X
[15] )
139 a3
= -X
[0] - X
[3] - X
[8] - X
[15]
147 def quaternion_hermitian_eja_coeffs(J
):
148 X
= J
.coordinate_polynomial_ring().gens()
150 if J
.dimension() == 6: # n == 2
151 a0
= -X
[1]**2 - X
[2]**2 - X
[3]**2 - X
[4]**2 + X
[0]*X
[5]
155 elif J
.dimension() == 15: # n == 3
156 a0
= ( X
[5]*X
[6]**2 + X
[5]*X
[7]**2 + X
[5]*X
[8]**2 + X
[5]*X
[9]**2 -
157 2*X
[1]*X
[6]*X
[10] - 2*X
[2]*X
[7]*X
[10] - 2*X
[3]*X
[8]*X
[10] -
158 2*X
[4]*X
[9]*X
[10] + X
[0]*X
[10]**2 + 2*X
[2]*X
[6]*X
[11] -
159 2*X
[1]*X
[7]*X
[11] + 2*X
[4]*X
[8]*X
[11] - 2*X
[3]*X
[9]*X
[11] +
160 X
[0]*X
[11]**2 + 2*X
[3]*X
[6]*X
[12] - 2*X
[4]*X
[7]*X
[12] -
161 2*X
[1]*X
[8]*X
[12] + 2*X
[2]*X
[9]*X
[12] + X
[0]*X
[12]**2 +
162 2*X
[4]*X
[6]*X
[13] + 2*X
[3]*X
[7]*X
[13] - 2*X
[2]*X
[8]*X
[13] -
163 2*X
[1]*X
[9]*X
[13] + X
[0]*X
[13]**2 + X
[1]**2*X
[14] +
164 X
[2]**2*X
[14] + X
[3]**2*X
[14] + X
[4]**2*X
[14] -
166 a1
= ( -X
[1]**2 - X
[2]**2 - X
[3]**2 - X
[4]**2 + X
[0]*X
[5] -
167 X
[6]**2 - X
[7]**2 - X
[8]**2 - X
[9]**2 - X
[10]**2 -
168 X
[11]**2 - X
[12]**2 - X
[13]**2 + X
[0]*X
[14] + X
[5]*X
[14] )
170 a2
= -X
[0] - X
[5] - X
[14]
177 def octonion_hermitian_eja_coeffs(J
):
178 X
= J
.coordinate_polynomial_ring().gens()
180 if J
.dimension() == 10: # n == 2
181 a0
= ( -X
[1]**2 - X
[2]**2 - X
[3]**2 - X
[4]**2 - X
[5]**2 -
182 X
[6]**2 - X
[7]**2 - X
[8]**2 + X
[0]*X
[9] )
186 elif J
.dimension() == 27: # n == 3
187 a0
= ( X
[9]*X
[10]**2 + X
[9]*X
[11]**2 + X
[9]*X
[12]**2 + X
[9]*X
[13]**2 +
188 X
[9]*X
[14]**2 + X
[9]*X
[15]**2 + X
[9]*X
[16]**2 + X
[9]*X
[17]**2 -
189 2*X
[1]*X
[10]*X
[18] - 2*X
[2]*X
[11]*X
[18] - 2*X
[3]*X
[12]*X
[18] -
190 2*X
[4]*X
[13]*X
[18] - 2*X
[5]*X
[14]*X
[18] - 2*X
[6]*X
[15]*X
[18] -
191 2*X
[7]*X
[16]*X
[18] - 2*X
[8]*X
[17]*X
[18] + X
[0]*X
[18]**2 +
192 2*X
[2]*X
[10]*X
[19] - 2*X
[1]*X
[11]*X
[19] + 2*X
[4]*X
[12]*X
[19] -
193 2*X
[3]*X
[13]*X
[19] + 2*X
[6]*X
[14]*X
[19] - 2*X
[5]*X
[15]*X
[19] -
194 2*X
[8]*X
[16]*X
[19] + 2*X
[7]*X
[17]*X
[19] + X
[0]*X
[19]**2 +
195 2*X
[3]*X
[10]*X
[20] - 2*X
[4]*X
[11]*X
[20] - 2*X
[1]*X
[12]*X
[20] +
196 2*X
[2]*X
[13]*X
[20] + 2*X
[7]*X
[14]*X
[20] + 2*X
[8]*X
[15]*X
[20] -
197 2*X
[5]*X
[16]*X
[20] - 2*X
[6]*X
[17]*X
[20] + X
[0]*X
[20]**2 +
198 2*X
[4]*X
[10]*X
[21] + 2*X
[3]*X
[11]*X
[21] - 2*X
[2]*X
[12]*X
[21] -
199 2*X
[1]*X
[13]*X
[21] + 2*X
[8]*X
[14]*X
[21] - 2*X
[7]*X
[15]*X
[21] +
200 2*X
[6]*X
[16]*X
[21] - 2*X
[5]*X
[17]*X
[21] + X
[0]*X
[21]**2 +
201 2*X
[5]*X
[10]*X
[22] - 2*X
[6]*X
[11]*X
[22] - 2*X
[7]*X
[12]*X
[22] -
202 2*X
[8]*X
[13]*X
[22] - 2*X
[1]*X
[14]*X
[22] + 2*X
[2]*X
[15]*X
[22] +
203 2*X
[3]*X
[16]*X
[22] + 2*X
[4]*X
[17]*X
[22] + X
[0]*X
[22]**2 +
204 2*X
[6]*X
[10]*X
[23] + 2*X
[5]*X
[11]*X
[23] - 2*X
[8]*X
[12]*X
[23] +
205 2*X
[7]*X
[13]*X
[23] - 2*X
[2]*X
[14]*X
[23] - 2*X
[1]*X
[15]*X
[23] -
206 2*X
[4]*X
[16]*X
[23] + 2*X
[3]*X
[17]*X
[23] + X
[0]*X
[23]**2 +
207 2*X
[7]*X
[10]*X
[24] + 2*X
[8]*X
[11]*X
[24] + 2*X
[5]*X
[12]*X
[24] -
208 2*X
[6]*X
[13]*X
[24] - 2*X
[3]*X
[14]*X
[24] + 2*X
[4]*X
[15]*X
[24] -
209 2*X
[1]*X
[16]*X
[24] - 2*X
[2]*X
[17]*X
[24] + X
[0]*X
[24]**2 +
210 2*X
[8]*X
[10]*X
[25] - 2*X
[7]*X
[11]*X
[25] + 2*X
[6]*X
[12]*X
[25] +
211 2*X
[5]*X
[13]*X
[25] - 2*X
[4]*X
[14]*X
[25] - 2*X
[3]*X
[15]*X
[25] +
212 2*X
[2]*X
[16]*X
[25] - 2*X
[1]*X
[17]*X
[25] + X
[0]*X
[25]**2 +
213 X
[1]**2*X
[26] + X
[2]**2*X
[26] + X
[3]**2*X
[26] + X
[4]**2*X
[26] +
214 X
[5]**2*X
[26] + X
[6]**2*X
[26] + X
[7]**2*X
[26] + X
[8]**2*X
[26] -
217 a1
= ( -X
[1]**2 - X
[2]**2 - X
[3]**2 - X
[4]**2 - X
[5]**2 - X
[6]**2 -
218 X
[7]**2 - X
[8]**2 + X
[0]*X
[9] - X
[10]**2 - X
[11]**2 -
219 X
[12]**2 - X
[13]**2 - X
[14]**2 - X
[15]**2 - X
[16]**2 -
220 X
[17]**2 - X
[18]**2 - X
[19]**2 - X
[20]**2 - X
[21]**2 -
221 X
[22]**2 - X
[23]**2 - X
[24]**2 - X
[25]**2 + X
[0]*X
[26] +
224 a2
= -X
[0] - X
[9] - X
[26]