]>
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 The function used to turn SageMath's output into the appropriate input
9 can be found in the eja_utils module.
11 The simple algebras _not_ represented here all have rank two or less,
12 and are "easy" to compute even over the algebraic reals.
15 def real_symmetric_eja_coeffs(J
):
16 X
= J
.coordinate_polynomial_ring().gens()
18 if J
.dimension() == 3: # n == 2
19 a0
= -X
[1]**2 + X
[0]*X
[2]
23 elif J
.dimension() == 6: # n == 3
24 a0
= ( X
[2]*X
[3]**2 - 2*X
[1]*X
[3]*X
[4] + X
[0]*X
[4]**2 +
25 X
[1]**2*X
[5] - X
[0]*X
[2]*X
[5] )
26 a1
= ( -X
[1]**2 + X
[0]*X
[2] - X
[3]**2 - X
[4]**2 +
27 X
[0]*X
[5] + X
[2]*X
[5] )
28 a2
= -X
[0] - X
[2] - X
[5]
31 elif J
.dimension() == 10: # n == 4
32 a0
= ( X
[4]**2*X
[6]**2 - X
[2]*X
[5]*X
[6]**2 -
33 2*X
[3]*X
[4]*X
[6]*X
[7] + 2*X
[1]*X
[5]*X
[6]*X
[7] +
34 X
[3]**2*X
[7]**2 - X
[0]*X
[5]*X
[7]**2 +
35 2*X
[2]*X
[3]*X
[6]*X
[8] - 2*X
[1]*X
[4]*X
[6]*X
[8] -
36 2*X
[1]*X
[3]*X
[7]*X
[8] + 2*X
[0]*X
[4]*X
[7]*X
[8] +
37 X
[1]**2*X
[8]**2 - X
[0]*X
[2]*X
[8]**2 -
38 X
[2]*X
[3]**2*X
[9] + 2*X
[1]*X
[3]*X
[4]*X
[9] -
39 X
[0]*X
[4]**2*X
[9] - X
[1]**2*X
[5]*X
[9] +
42 a1
= ( X
[2]*X
[3]**2 - 2*X
[1]*X
[3]*X
[4] + X
[0]*X
[4]**2 +
43 X
[1]**2*X
[5] - X
[0]*X
[2]*X
[5] + X
[2]*X
[6]**2 +
44 X
[5]*X
[6]**2 - 2*X
[1]*X
[6]*X
[7] + X
[0]*X
[7]**2 +
45 X
[5]*X
[7]**2 - 2*X
[3]*X
[6]*X
[8] - 2*X
[4]*X
[7]*X
[8] +
46 X
[0]*X
[8]**2 + X
[2]*X
[8]**2 + X
[1]**2*X
[9] -
47 X
[0]*X
[2]*X
[9] + X
[3]**2*X
[9] + X
[4]**2*X
[9] -
48 X
[0]*X
[5]*X
[9] - X
[2]*X
[5]*X
[9] )
50 a2
= ( -X
[1]**2 + X
[0]*X
[2] - X
[3]**2 - X
[4]**2 +
51 X
[0]*X
[5] + X
[2]*X
[5] - X
[6]**2 - X
[7]**2 -
52 X
[8]**2 + X
[0]*X
[9] + X
[2]*X
[9] + X
[5]*X
[9] )
54 a3
= -X
[0] - X
[2] - X
[5] - X
[9]
62 def complex_hermitian_eja_coeffs(J
):
63 X
= J
.coordinate_polynomial_ring().gens()
65 if J
.dimension() == 4: # n == 2
66 a0
= -X
[1]**2 - X
[2]**2 + X
[0]*X
[3]
70 elif J
.dimension() == 9: # n == 3
71 a0
= ( X
[3]*X
[4]**2 + X
[3]*X
[5]**2 - 2*X
[1]*X
[4]*X
[6] -
72 2*X
[2]*X
[5]*X
[6] + X
[0]*X
[6]**2 + 2*X
[2]*X
[4]*X
[7] -
73 2*X
[1]*X
[5]*X
[7] + X
[0]*X
[7]**2 + X
[1]**2*X
[8] +
74 X
[2]**2*X
[8] - X
[0]*X
[3]*X
[8] )
76 a1
= ( -X
[1]**2 - X
[2]**2 + X
[0]*X
[3] - X
[4]**2 - X
[5]**2 -
77 X
[6]**2 - X
[7]**2 + X
[0]*X
[8] + X
[3]*X
[8] )
79 a2
= -X
[0] - X
[3] - X
[8]
83 elif J
.dimension() == 16: # n == 4
84 a0
= ( X
[6]**2*X
[9]**2 + X
[7]**2*X
[9]**2 - X
[3]*X
[8]*X
[9]**2 +
85 X
[6]**2*X
[10]**2 + X
[7]**2*X
[10]**2 - X
[3]*X
[8]*X
[10]**2 -
86 2*X
[4]*X
[6]*X
[9]*X
[11] - 2*X
[5]*X
[7]*X
[9]*X
[11] +
87 2*X
[1]*X
[8]*X
[9]*X
[11] - 2*X
[5]*X
[6]*X
[10]*X
[11] +
88 2*X
[4]*X
[7]*X
[10]*X
[11] + 2*X
[2]*X
[8]*X
[10]*X
[11] +
89 X
[4]**2*X
[11]**2 + X
[5]**2*X
[11]**2 - X
[0]*X
[8]*X
[11]**2 +
90 2*X
[5]*X
[6]*X
[9]*X
[12] - 2*X
[4]*X
[7]*X
[9]*X
[12] -
91 2*X
[2]*X
[8]*X
[9]*X
[12] - 2*X
[4]*X
[6]*X
[10]*X
[12] -
92 2*X
[5]*X
[7]*X
[10]*X
[12] + 2*X
[1]*X
[8]*X
[10]*X
[12] +
93 X
[4]**2*X
[12]**2 + X
[5]**2*X
[12]**2 - X
[0]*X
[8]*X
[12]**2 +
94 2*X
[3]*X
[4]*X
[9]*X
[13] - 2*X
[1]*X
[6]*X
[9]*X
[13] +
95 2*X
[2]*X
[7]*X
[9]*X
[13] + 2*X
[3]*X
[5]*X
[10]*X
[13] -
96 2*X
[2]*X
[6]*X
[10]*X
[13] - 2*X
[1]*X
[7]*X
[10]*X
[13] -
97 2*X
[1]*X
[4]*X
[11]*X
[13] - 2*X
[2]*X
[5]*X
[11]*X
[13] +
98 2*X
[0]*X
[6]*X
[11]*X
[13] + 2*X
[2]*X
[4]*X
[12]*X
[13] -
99 2*X
[1]*X
[5]*X
[12]*X
[13] + 2*X
[0]*X
[7]*X
[12]*X
[13] +
100 X
[1]**2*X
[13]**2 + X
[2]**2*X
[13]**2 - X
[0]*X
[3]*X
[13]**2 -
101 2*X
[3]*X
[5]*X
[9]*X
[14] + 2*X
[2]*X
[6]*X
[9]*X
[14] +
102 2*X
[1]*X
[7]*X
[9]*X
[14] + 2*X
[3]*X
[4]*X
[10]*X
[14] -
103 2*X
[1]*X
[6]*X
[10]*X
[14] + 2*X
[2]*X
[7]*X
[10]*X
[14] -
104 2*X
[2]*X
[4]*X
[11]*X
[14] + 2*X
[1]*X
[5]*X
[11]*X
[14] -
105 2*X
[0]*X
[7]*X
[11]*X
[14] - 2*X
[1]*X
[4]*X
[12]*X
[14] -
106 2*X
[2]*X
[5]*X
[12]*X
[14] + 2*X
[0]*X
[6]*X
[12]*X
[14] +
107 X
[1]**2*X
[14]**2 + X
[2]**2*X
[14]**2 - X
[0]*X
[3]*X
[14]**2 -
108 X
[3]*X
[4]**2*X
[15] - X
[3]*X
[5]**2*X
[15] +
109 2*X
[1]*X
[4]*X
[6]*X
[15] + 2*X
[2]*X
[5]*X
[6]*X
[15] -
110 X
[0]*X
[6]**2*X
[15] - 2*X
[2]*X
[4]*X
[7]*X
[15] +
111 2*X
[1]*X
[5]*X
[7]*X
[15] - X
[0]*X
[7]**2*X
[15] -
112 X
[1]**2*X
[8]*X
[15] - X
[2]**2*X
[8]*X
[15] +
113 X
[0]*X
[3]*X
[8]*X
[15] )
115 a1
= ( X
[3]*X
[4]**2 + X
[3]*X
[5]**2 - 2*X
[1]*X
[4]*X
[6] -
116 2*X
[2]*X
[5]*X
[6] + X
[0]*X
[6]**2 + 2*X
[2]*X
[4]*X
[7] -
117 2*X
[1]*X
[5]*X
[7] + X
[0]*X
[7]**2 + X
[1]**2*X
[8] +
118 X
[2]**2*X
[8] - X
[0]*X
[3]*X
[8] + X
[3]*X
[9]**2 +
119 X
[8]*X
[9]**2 + X
[3]*X
[10]**2 + X
[8]*X
[10]**2 -
120 2*X
[1]*X
[9]*X
[11] - 2*X
[2]*X
[10]*X
[11] + X
[0]*X
[11]**2 +
121 X
[8]*X
[11]**2 + 2*X
[2]*X
[9]*X
[12] - 2*X
[1]*X
[10]*X
[12] +
122 X
[0]*X
[12]**2 + X
[8]*X
[12]**2 - 2*X
[4]*X
[9]*X
[13] -
123 2*X
[5]*X
[10]*X
[13] - 2*X
[6]*X
[11]*X
[13] -
124 2*X
[7]*X
[12]*X
[13] + X
[0]*X
[13]**2 + X
[3]*X
[13]**2 +
125 2*X
[5]*X
[9]*X
[14] - 2*X
[4]*X
[10]*X
[14] +
126 2*X
[7]*X
[11]*X
[14] - 2*X
[6]*X
[12]*X
[14] + X
[0]*X
[14]**2 +
127 X
[3]*X
[14]**2 + X
[1]**2*X
[15] + X
[2]**2*X
[15] -
128 X
[0]*X
[3]*X
[15] + X
[4]**2*X
[15] + X
[5]**2*X
[15] +
129 X
[6]**2*X
[15] + X
[7]**2*X
[15] - X
[0]*X
[8]*X
[15] -
132 a2
= ( -X
[1]**2 - X
[2]**2 + X
[0]*X
[3] - X
[4]**2 - X
[5]**2 -
133 X
[6]**2 - X
[7]**2 + X
[0]*X
[8] + X
[3]*X
[8] - X
[9]**2 -
134 X
[10]**2 - X
[11]**2 - X
[12]**2 - X
[13]**2 - X
[14]**2 +
135 X
[0]*X
[15] + X
[3]*X
[15] + X
[8]*X
[15] )
137 a3
= -X
[0] - X
[3] - X
[8] - X
[15]
145 def quaternion_hermitian_eja_coeffs(J
):
146 X
= J
.coordinate_polynomial_ring().gens()
148 if J
.dimension() == 6: # n == 2
149 a0
= -X
[1]**2 - X
[2]**2 - X
[3]**2 - X
[4]**2 + X
[0]*X
[5]
153 elif J
.dimension() == 15: # n == 3
154 a0
= ( X
[5]*X
[6]**2 + X
[5]*X
[7]**2 + X
[5]*X
[8]**2 + X
[5]*X
[9]**2 -
155 2*X
[1]*X
[6]*X
[10] - 2*X
[2]*X
[7]*X
[10] - 2*X
[3]*X
[8]*X
[10] -
156 2*X
[4]*X
[9]*X
[10] + X
[0]*X
[10]**2 + 2*X
[2]*X
[6]*X
[11] -
157 2*X
[1]*X
[7]*X
[11] + 2*X
[4]*X
[8]*X
[11] - 2*X
[3]*X
[9]*X
[11] +
158 X
[0]*X
[11]**2 + 2*X
[3]*X
[6]*X
[12] - 2*X
[4]*X
[7]*X
[12] -
159 2*X
[1]*X
[8]*X
[12] + 2*X
[2]*X
[9]*X
[12] + X
[0]*X
[12]**2 +
160 2*X
[4]*X
[6]*X
[13] + 2*X
[3]*X
[7]*X
[13] - 2*X
[2]*X
[8]*X
[13] -
161 2*X
[1]*X
[9]*X
[13] + X
[0]*X
[13]**2 + X
[1]**2*X
[14] +
162 X
[2]**2*X
[14] + X
[3]**2*X
[14] + X
[4]**2*X
[14] -
164 a1
= ( -X
[1]**2 - X
[2]**2 - X
[3]**2 - X
[4]**2 + X
[0]*X
[5] -
165 X
[6]**2 - X
[7]**2 - X
[8]**2 - X
[9]**2 - X
[10]**2 -
166 X
[11]**2 - X
[12]**2 - X
[13]**2 + X
[0]*X
[14] + X
[5]*X
[14] )
168 a2
= -X
[0] - X
[5] - X
[14]
175 def octonion_hermitian_eja_coeffs(J
):
176 X
= J
.coordinate_polynomial_ring().gens()
178 if J
.dimension() == 10: # n == 2
179 a0
= ( -X
[1]**2 - X
[2]**2 - X
[3]**2 - X
[4]**2 - X
[5]**2 -
180 X
[6]**2 - X
[7]**2 - X
[8]**2 + X
[0]*X
[9] )
184 elif J
.dimension() == 27: # n == 3
185 a0
= ( X
[9]*X
[10]**2 + X
[9]*X
[11]**2 + X
[9]*X
[12]**2 + X
[9]*X
[13]**2 +
186 X
[9]*X
[14]**2 + X
[9]*X
[15]**2 + X
[9]*X
[16]**2 + X
[9]*X
[17]**2 -
187 2*X
[1]*X
[10]*X
[18] - 2*X
[2]*X
[11]*X
[18] - 2*X
[3]*X
[12]*X
[18] -
188 2*X
[4]*X
[13]*X
[18] - 2*X
[5]*X
[14]*X
[18] - 2*X
[6]*X
[15]*X
[18] -
189 2*X
[7]*X
[16]*X
[18] - 2*X
[8]*X
[17]*X
[18] + X
[0]*X
[18]**2 +
190 2*X
[2]*X
[10]*X
[19] - 2*X
[1]*X
[11]*X
[19] + 2*X
[4]*X
[12]*X
[19] -
191 2*X
[3]*X
[13]*X
[19] + 2*X
[6]*X
[14]*X
[19] - 2*X
[5]*X
[15]*X
[19] -
192 2*X
[8]*X
[16]*X
[19] + 2*X
[7]*X
[17]*X
[19] + X
[0]*X
[19]**2 +
193 2*X
[3]*X
[10]*X
[20] - 2*X
[4]*X
[11]*X
[20] - 2*X
[1]*X
[12]*X
[20] +
194 2*X
[2]*X
[13]*X
[20] + 2*X
[7]*X
[14]*X
[20] + 2*X
[8]*X
[15]*X
[20] -
195 2*X
[5]*X
[16]*X
[20] - 2*X
[6]*X
[17]*X
[20] + X
[0]*X
[20]**2 +
196 2*X
[4]*X
[10]*X
[21] + 2*X
[3]*X
[11]*X
[21] - 2*X
[2]*X
[12]*X
[21] -
197 2*X
[1]*X
[13]*X
[21] + 2*X
[8]*X
[14]*X
[21] - 2*X
[7]*X
[15]*X
[21] +
198 2*X
[6]*X
[16]*X
[21] - 2*X
[5]*X
[17]*X
[21] + X
[0]*X
[21]**2 +
199 2*X
[5]*X
[10]*X
[22] - 2*X
[6]*X
[11]*X
[22] - 2*X
[7]*X
[12]*X
[22] -
200 2*X
[8]*X
[13]*X
[22] - 2*X
[1]*X
[14]*X
[22] + 2*X
[2]*X
[15]*X
[22] +
201 2*X
[3]*X
[16]*X
[22] + 2*X
[4]*X
[17]*X
[22] + X
[0]*X
[22]**2 +
202 2*X
[6]*X
[10]*X
[23] + 2*X
[5]*X
[11]*X
[23] - 2*X
[8]*X
[12]*X
[23] +
203 2*X
[7]*X
[13]*X
[23] - 2*X
[2]*X
[14]*X
[23] - 2*X
[1]*X
[15]*X
[23] -
204 2*X
[4]*X
[16]*X
[23] + 2*X
[3]*X
[17]*X
[23] + X
[0]*X
[23]**2 +
205 2*X
[7]*X
[10]*X
[24] + 2*X
[8]*X
[11]*X
[24] + 2*X
[5]*X
[12]*X
[24] -
206 2*X
[6]*X
[13]*X
[24] - 2*X
[3]*X
[14]*X
[24] + 2*X
[4]*X
[15]*X
[24] -
207 2*X
[1]*X
[16]*X
[24] - 2*X
[2]*X
[17]*X
[24] + X
[0]*X
[24]**2 +
208 2*X
[8]*X
[10]*X
[25] - 2*X
[7]*X
[11]*X
[25] + 2*X
[6]*X
[12]*X
[25] +
209 2*X
[5]*X
[13]*X
[25] - 2*X
[4]*X
[14]*X
[25] - 2*X
[3]*X
[15]*X
[25] +
210 2*X
[2]*X
[16]*X
[25] - 2*X
[1]*X
[17]*X
[25] + X
[0]*X
[25]**2 +
211 X
[1]**2*X
[26] + X
[2]**2*X
[26] + X
[3]**2*X
[26] + X
[4]**2*X
[26] +
212 X
[5]**2*X
[26] + X
[6]**2*X
[26] + X
[7]**2*X
[26] + X
[8]**2*X
[26] -
215 a1
= ( -X
[1]**2 - X
[2]**2 - X
[3]**2 - X
[4]**2 - X
[5]**2 - X
[6]**2 -
216 X
[7]**2 - X
[8]**2 + X
[0]*X
[9] - X
[10]**2 - X
[11]**2 -
217 X
[12]**2 - X
[13]**2 - X
[14]**2 - X
[15]**2 - X
[16]**2 -
218 X
[17]**2 - X
[18]**2 - X
[19]**2 - X
[20]**2 - X
[21]**2 -
219 X
[22]**2 - X
[23]**2 - X
[24]**2 - X
[25]**2 + X
[0]*X
[26] +
222 a2
= -X
[0] - X
[9] - X
[26]