1\\package:galdata
2test(a)=
3{ my(x, y, z);
4  for (i=1, 10000,
5    z = eval(Str("T", a, "_", i));
6    if (poldegree(z) == 1, break); \\ undefined
7    x = polgalois(z);
8    y = polgalois(poltschirnhaus( poltschirnhaus(z) ));
9    print(x, x==y)
10  );
11}
12
13{
14T1_1 = x;
15
16T2_1 = x^2+x+1;
17
18T3_1 = x^3+x^2-2*x-1;
19T3_2 = x^3+2;
20
21T4_1 = x^4+x^3+x^2+x+1;
22T4_2 = x^4+1;
23T4_3 = x^4-2;
24T4_4 = x^4+8*x+12;
25T4_5 = x^4+x+1;
26
27T5_1 = x^5+x^4-4*x^3-3*x^2+3*x+1;
28T5_2 = x^5-5*x+12;
29T5_3 = x^5+2;
30T5_4 = x^5+20*x+16;
31T5_5 = x^5-x+1;
32
33T6_1 = x^6+x^5+x^4+x^3+x^2+x+1;
34T6_2 = x^6+108;
35T6_3 = x^6+2;
36T6_4 = x^6-3*x^2-1;
37T6_5 = x^6+3*x^3+3;
38T6_6 = x^6-3*x^2+1;
39T6_7 = x^6-4*x^2-1;
40T6_8 = x^6-3*x^5+6*x^4-7*x^3+2*x^2+x-4;
41T6_9 = x^6+2*x^3-2;
42T6_10= x^6+6*x^4+2*x^3+9*x^2+6*x-4;
43T6_11= x^6+2*x^2+2;
44T6_12= x^6-2*x^5-5*x^2-2*x-1;
45T6_13= x^6+2*x^4+2*x^3+x^2+2*x+2;
46T6_14= x^6-x^5-10*x^4+30*x^3-31*x^2+7*x+9;
47T6_15= x^6+24*x-20;
48T6_16= x^6+x+1;
49
50T7_1 = x^7+x^6-12*x^5-7*x^4+28*x^3+14*x^2-9*x+1;
51T7_2 = x^7+7*x^3+7*x^2+7*x-1;
52T7_3 = x^7-14*x^5+56*x^3-56*x+22;
53T7_4 = x^7+2;
54T7_5 = x^7-7*x^3+14*x^2-7*x+1;
55T7_6 = x^7+7*x^4+14*x+3;
56T7_7 = x^7+x+1;
57
58T8_50 = x^8-x-1;
59T8_49 = x^8-2*x^6-2*x^5-x^4-x^3+4*x^2+4*x-2;
60T8_48 = x^8-2*x^6-2*x^5+2*x^4+4*x^2+2;
61T8_47 = x^8+x^2+2*x+1;
62T8_46 = x^8-4*x^5-9*x^4-16*x^2-12*x+9;
63T8_45 = x^8-2*x^6-2*x^5+4*x^3+2*x^2+2;
64T8_44 = x^8+x^2-1;
65T8_43 = x^8-x^7+7*x^2-x+1;
66T8_42 = x^8-2*x^6+2*x^5+3*x^4-2*x^3+x^2+4*x+2;
67T8_41 = x^8-4*x^5+3*x^4+16*x^2+12*x+9;
68T8_40 = x^8+8*x^6+18*x^4-1;
69T8_39 = x^8+x^2+1;
70T8_38 = x^8-4*x^6+28;
71T8_37 = x^8-4*x^7+28*x^5-21*x^4-70*x^3+189*x^2-173*x+69;
72T8_36 = x^8-4*x^7+112*x^4+224*x^3-112*x^2-736*x+536;
73T8_35 = x^8+4*x^2-1;
74T8_34 = x^8+4*x^7+5*x^6+x^5+x^4-2*x^3-x^2+3*x+2;
75T8_33 = x^8-8*x^6+18*x^4-16*x^3-40*x^2+8*x+23;
76T8_32 = x^8-8*x^6+18*x^4+4;
77T8_31 = x^8+2*x^6+x^4+14;
78T8_30 = x^8+4*x^6+4*x^4-2;
79T8_29 = x^8+x^4+2*x^2+1;
80T8_28 = x^8+4*x^6+2;
81T8_27 = x^8+5*x^6+3*x^4-6*x^2-4;
82T8_26 = x^8+2*x^4-2;
83T8_25 = x^8-x^7+29*x^2+29;
84T8_24 = x^8-4*x^2+4;
85T8_23 = x^8-8*x^6+12*x^4-12;
86T8_22 = x^8+x^4+4;
87T8_21 = x^8+2*x^4+4*x^2+2;
88T8_20 = x^8+x^6-6*x^4-x^2+1;
89T8_19 = x^8+4*x^4+4*x^2+1;
90T8_18 = x^8+2*x^6+2*x^2+1;
91T8_17 = x^8+2*x^4+2;
92T8_16 = x^8+4*x^4+2;
93T8_15 = x^8+3;
94T8_14 = x^8+2*x^7+4*x^6-2*x^5+2*x^4-2*x^3+4*x^2+2*x+1;
95T8_13 = x^8+4*x^6+8*x^4+4;
96T8_12 = x^8-22*x^6+135*x^4-150*x^2+1;
97T8_11 = x^8+9;
98T8_10 = x^8+2*x^6+4*x^4+3*x^2+1;
99T8_9  = x^8+4*x^4+1;
100T8_8  = x^8-2;
101T8_7  = x^8+x^7-28*x^6-7*x^5+70*x^4+7*x^3-28*x^2-x+1;
102T8_6  = x^8+2;
103T8_5  = x^8-12*x^6+36*x^4-36*x^2+9;
104T8_4  = x^8+3*x^4+1;
105T8_3  = x^8-x^4+1;
106T8_2  = x^8+1;
107T8_1  = x^8+x^7-7*x^6-6*x^5+15*x^4+10*x^3-10*x^2-4*x+1;
108
109T9_34 = x^9-x-1;
110T9_33 = x^9+27*x-24;
111T9_32 = x^9+x^7+2*x^5+4*x^3-x^2+x+1;
112T9_31 = x^9-2*x^7-2*x^6-x^5-x^4+4*x^3+5*x^2+4*x+1;
113T9_30 = x^9+2*x^5+4*x^4+4*x^3+4*x^2+x+1;
114T9_29 = x^9-6*x^6-18*x^5+36*x^4-36*x^3+108*x^2-144*x+48;
115T9_28 = x^9-2*x^7-2*x^6-x^5-2*x^4+3*x^2+3*x+1;
116T9_27 = x^9-36*x^6-54*x^5+432*x^3+324*x^2-243*x-1152;
117T9_26 = x^9-x^7+5*x^6+x^5-2*x^4+4*x^3+3*x^2-x-1;
118T9_25 = x^9-9*x^6-9*x^4+24*x^3+9*x^2-9*x+1;
119T9_24 = x^9-2*x^6-2*x^3-2;
120T9_23 = x^9+9*x^7-60*x^6+72*x^5+354*x^3-495*x^2+2124*x-845;
121T9_22 = x^9-12*x^6-27*x^5-18*x^4+9*x^3+36*x-8;
122T9_21 = x^9+3*x^6+3*x^3-2;
123T9_20 = x^9-2*x^7-2*x^6-2*x^5+x^4+4*x^3+3*x^2+3*x+1;
124T9_19 = x^9-3*x^8-24*x^5-24*x^4-48*x+16;
125T9_18 = x^9-2*x^6-2*x^3-1;
126T9_17 = x^9-17*x^7-6*x^6+87*x^5+47*x^4-143*x^3-69*x^2+72*x+27;
127T9_16 = x^9-2*x^7+3*x^6+x^5-x^4-2*x^3+x+1;
128T9_15 = x^9-9*x^7-21*x^6+72*x^5+99*x^4-99*x^3-585*x^2+549*x+166;
129T9_14 = x^9-30*x^6+45*x^5+126*x^4-240*x^3-90*x^2+405*x+80;
130T9_13 = x^9-2*x^6-x^3+1;
131T9_12 = x^9+x^8+x^7+4*x^6-2*x^5-x^4+3*x^3+x^2-1;
132T9_11 = x^9-x^6+5*x^3+1;
133T9_10 = x^9-2;
134T9_9  = x^9-3*x^8+3*x^7-15*x^6+33*x^5-3*x^4+24*x^3+6*x^2-4;
135T9_8  = x^9-6*x^6+8*x^3-8;
136T9_7  = x^9-232*x^7-9*x^6+7485*x^5+8631*x^4-3097*x^3-738*x^2+325*x-27;
137T9_6  = x^9+x^8-32*x^7-84*x^6-14*x^5+112*x^4+84*x^3+4*x^2-8*x-1;
138T9_5  = x^9+3*x^6+3*x^3-1;
139T9_4  = x^9+4*x^6+3*x^3-1;
140T9_3  = x^9+9*x^7-6*x^6+27*x^5-36*x^4+27*x^3-54*x^2-32;
141T9_2  = x^9-15*x^7+4*x^6+54*x^5-12*x^4-38*x^3+9*x^2+6*x-1;
142T9_1  = x^9-9*x^7+27*x^5-30*x^3+9*x-1;
143
144T10_45 = x^10-x-1;
145T10_44 = x^10-2*x^8-2*x^7-2*x^3+2*x^2+x-1;
146T10_43 = x^10-2*x^8-2*x^7-2*x^6-2*x^5-x^4-2*x^3+3*x^2-2*x+1;
147T10_42 = x^10-32*x^5-200*x^2+256;
148T10_41 = x^10+2*x^9+4*x^8-x^6+x^4-2*x-1;
149T10_40 = x^10+x^9-x^8-x^7-2*x^6+2*x^3+3*x^2+x+1;
150T10_39 = x^10-2*x^8-2*x^7-2*x^6-2*x^5+2*x^4-2*x^3+2*x^2-1;
151T10_38 = x^10-2*x^8-x^6-2*x^4+2*x^2-2;
152T10_37 = x^10-2*x^8-2*x^7-x^6-x^5-x^4-2*x^3-2*x^2+1;
153T10_36 = x^10-2*x^8-x^6+3*x^4-x^2+2;
154T10_35 = x^10+300*x^6-18*x^5+10000*x^2-200*x+81;
155T10_34 = x^10-x^8-2*x^6-x^4+x^2-1;
156T10_33 = x^10-2*x^9+12*x^8-20*x^7+66*x^6-20*x^5+228*x^4+84*x^3+276*x^2+120*x+100;
157T10_32 = x^10-9*x^8+27*x^6+2*x^5-27*x^4-9*x^3+8*x+1;
158T10_31 = x^10-1800*x^8-24000*x^7+1422000*x^6+30960000*x^5-462480000*x^4-14500800000*x^3+12996000000*x^2+2414368000000*x-12197187420489;
159T10_30 = x^10+90*x^6-648*x^5+1080*x^4-2160*x^3+3645*x^2+5400*x+12960;
160T10_29 = x^10+2*x^8-2*x^6-x^2+2;
161T10_28 = x^10-10*x^7+10*x^6+36*x^5+50*x^4-10*x^3-1;
162T10_27 = x^10+3*x^6-2*x^5+x^2+2*x+1;
163T10_26 = x^10-15*x^8-75*x^6-6*x^5-165*x^4-30*x^3-180*x^2-50*x-90;
164T10_25 = x^10-2*x^8-2*x^6-x^2-2;
165T10_24 = x^10+x^8-x^4+3*x^2-1;
166T10_23 = x^10-2*x^8-x^7+3*x^6+2*x^5-2*x^4-2*x^3+2*x^2+3*x+1;
167T10_22 = x^10-2*x^8-2*x^7-x^6+x^4-2*x^3+2*x^2-1;
168T10_21 = x^10+x^6-2*x^5-x^4+3*x^2-2*x+1;
169T10_20 = x^10-3*x^9+x^8+36*x^7-39*x^6-105*x^5+99*x^4+180*x^3-45*x^2-135*x-45;
170T10_19 = x^10-10*x^8+35*x^6-2*x^5-50*x^4+10*x^3+25*x^2-10*x+2;
171T10_18 = x^10+60*x^6-240*x^5+850*x^2-5440*x-1088;
172T10_17 = x^10-2*x^5-2;
173T10_16 = x^10+7*x^8+17*x^6-31*x^4-40*x^2+127;
174T10_15 = x^10-x^8-2*x^6+x^4+3*x^2-1;
175T10_14 = x^10+x^8-4*x^6-3*x^4+3*x^2+1;
176T10_13 = x^10-2*x^8-x^7-2*x^6+x^5+3*x^4-2*x^3-x^2+x+1;
177T10_12 = x^10+2*x^9+3*x^8-x^6-2*x^5-x^4+3*x^2+2*x+1;
178T10_11 = x^10+10*x^6+25*x^2-8;
179T10_10 = x^10-2*x^5-4;
180T10_9  = x^10-50*x^8-100*x^7+865*x^6+4036*x^5+4100*x^4+16400*x^2+13120*x+2624;
181T10_8  = x^10-4*x^8+2*x^6+5*x^4-2*x^2-1;
182T10_7  = x^10-2*x^5-15*x^4-10*x^3-15*x^2-5;
183T10_6  = x^10+5*x^8-33*x^7-67*x^6+132*x^5-375*x^4+1551*x^3+5505*x^2-8987*x+4291;
184T10_5  = x^10-2;
185T10_4  = x^10-x^5-1;
186T10_3  = x^10-x^8-x^6+3*x^4+2*x^2+1;
187T10_2  = x^10-35*x^6+130*x^4+160;
188T10_1  = x^10-x^9+x^8-x^7+x^6-x^5+x^4-x^3+x^2-x+1;
189
190T11_8 = x^11-x-1;
191T11_7 = x^11+x^10+2*x^9+2*x^8+x^6-x^5+2*x^4+2*x^3+x^2-1;
192T11_6 = x^11-x^10-121*x^9+65*x^8+5345*x^7-481*x^6-96739*x^5-23689*x^4+413690*x^3-493810*x^2+26910*x-856170;
193T11_5 = x^11-898*x^9-3080*x^8+293480*x^7+4185984*x^6-145552352*x^5+1474999680*x^4-16923164544*x^3+177410331648*x^2-709199732736*x+63589515264;
194T11_4 = x^11-2;
195T11_3 = x^11-33*x^9+396*x^7-2079*x^5+4455*x^3-2673*x-243;
196T11_2 = x^11-x^10+5*x^8+8*x^5+6*x^4-x^3+x^2+3*x+1;
197T11_1 = x^11+x^10-10*x^9-9*x^8+36*x^7+28*x^6-56*x^5-35*x^4+35*x^3+15*x^2-6*x-1;
198}
199
200default(realprecision, 38);
201default(new_galois_format, 1)
202for (i = 1, 11, test(i))
203
204default(new_galois_format, 0)
205for (i = 1, 7, test(i))
206
207\\ miscellaneous tests
208setrand(3);polgalois(x^8-24447832222819253258096747170722821932737551721814653244372785289945042560370884249414339208601850*x^4+24447832222819253258096747170722821932737551721825709426404304862673539625219608619381278993545125*x^2+24447832222819253258096747170722821932737551721825709426404304862673539625219608619381278993545125)
209
210polgalois(polzagier(11,0)/polzagier(1,0))
211
212polgalois(x^8-1864259299553450972214799899167226732549697977945716*x^6+331143259018657601105207922631212331088735421305543663274125986698777318014979969*x^4-2225286541902342283500014249183311190477390*x^2+5)
213
214polgalois(x^8+162644002617632464507038884216211529274267271168000002)
215
216polgalois(x^8+2^2^12)
217
218setrand(5);polgalois(x^8-3911867303938246274330482940384509030446487325649036998411199166662010711465575565062431210085563041214249877058238647352476889609806751307308111079477582030570450*x^4-3911867303938246274330482940384509030446487325649036998411199166662010711465575569485025077906938222890835591100732814736005780908137290944485033156820540880540405*x^2+3911867303938246274330482940384509030446487325649036998411199166662010711465575569485025077906938222890835591100732814736005780908137290944485033156820540880540405)
219
220setrand(15);polgalois(x^8-1642492255488433999638100059165477791152530*x^4-1642492255488433999640965798385546876573045*x^2+1642492255488433999640965798385546876573045)
221
222setrand(4);polgalois(x^8-264*x^6+25410*x^4-1054152*x^2+15856203)
223
224setrand(15);polgalois(x^8-3512859249280433994187541000*x^6+1542522513156886787688759313741174472421584953335229070*x^4-60930543678769127629182898645000*x^2+300849025)
225
226setrand(1); polgalois(x^11+627*x^4-584)
227