? test(2,20)
[a^2 + a + 1, a^19 + a^18 + a^17 + a^15 + a^14 + a^13 + a^12 + a^8 + a^7 + a
^6 + a^4 + a^2 + 1, 0, a + 1, 0, 0, 0, 0, a^19 + a^16 + a^15 + a^11 + a^8 + 
a^5 + a^4 + a^3 + a^2 + a, a, a^2, a^12 + a^9 + a^6 + a^4 + a^3 + a^2 + a, a
^18 + a^17 + a^16 + a^14 + a^13 + a^12 + a^11 + a^10 + a^9 + a^8 + a^7 + a^4
 + a^3 + a^2 + 1, a^18 + a^17 + a^16 + a^14 + a^13 + a^12 + a^11 + a^10 + a^
9 + a^8 + a^7 + a^4 + a^3 + a^2 + 1, a^16 + a^12 + a^9 + a^6 + a^4 + a^3 + a
^2 + a + 1, 0, Mod(1, 2), Mod(0, 2), Mod(1, 2)*x^20 + Mod(1, 2)*x^17 + Mod(1
, 2)*x^16 + Mod(1, 2)*x^12 + Mod(1, 2)*x^9 + Mod(1, 2)*x^6 + Mod(1, 2)*x^5 +
 Mod(1, 2)*x^4 + Mod(1, 2)*x^3 + Mod(1, 2)*x^2 + Mod(1, 2), Mod(1, 2)*x^20 +
 Mod(1, 2)*x^17 + Mod(1, 2)*x^16 + Mod(1, 2)*x^12 + Mod(1, 2)*x^9 + Mod(1, 2
)*x^6 + Mod(1, 2)*x^5 + Mod(1, 2)*x^4 + Mod(1, 2)*x^3 + Mod(1, 2)*x^2 + Mod(
1, 2), [a, a^2, a^4, a^8, a^16, a^16 + a^12 + a^9 + a^6 + a^4 + a^3 + a^2, a
^16 + a^12 + a^9 + a^6 + a^4 + a^3 + a + 1, a^16 + a^12 + a^9 + a^6 + a^3 + 
a^2 + a, a^16 + a^12 + a^9 + a^8 + a^6 + a^4 + a^3 + a^2 + a + 1, a^12 + a^9
 + a^6 + a^4 + a^3 + a^2 + a, a + 1, a^2 + 1, a^4 + 1, a^8 + 1, a^16 + 1, a^
16 + a^12 + a^9 + a^6 + a^4 + a^3 + a^2 + 1, a^16 + a^12 + a^9 + a^6 + a^4 +
 a^3 + a, a^16 + a^12 + a^9 + a^6 + a^3 + a^2 + a + 1, a^16 + a^12 + a^9 + a
^8 + a^6 + a^4 + a^3 + a^2 + a]~, [x^3 + (a^17 + a^16 + a^10 + a^7 + a^3), 1
; x^3 + (a^17 + a^16 + a^10 + a^7 + a^3 + a), 1], [], a/x, 1, a^19 + a^17 + 
a^16 + a^14 + a^13 + a^12 + a^8 + a^6 + a^3 + a^2 + 1, 1048575, a, [x + (a^1
8 + a^16 + a^13 + a^9 + a^8 + a^7 + a^6 + a^4 + a^2 + a), 1; x + (a^18 + a^1
6 + a^13 + a^9 + a^8 + a^7 + a^6 + a^4 + a^2 + a + 1), 1], [a^18 + a^16 + a^
13 + a^9 + a^8 + a^7 + a^6 + a^4 + a^2 + a, a^18 + a^16 + a^13 + a^9 + a^8 +
 a^7 + a^6 + a^4 + a^2 + a + 1]~]
? test(7,7)
[a^2 + 3*a + 1, a^6 + 2*a^4 + 5*a^3 + 2*a^2 + 5*a + 1, 3*a + 3, a + 3, 5*a^6
 + 3*a^4 + 4*a^3 + 3*a^2 + 4*a, 2*a + 2, 2*a + 2, 4*a + 4, 6*a^6 + 6*a^5 + 5
*a^4 + 2, 6*a, a^2, 3*a^6 + 5*a^5 + 3*a^3 + a^2 + 2*a + 6, 4*a^2 + 4*a + 4, 
4*a^2 + 4*a + 4, 4, 3*a^6 + 3*a^5 + 5*a^4 + 2*a^3 + 3*a^2 + a + 4, Mod(1, 7)
, Mod(6, 7), Mod(1, 7)*x^7 + Mod(1, 7)*x^6 + Mod(2, 7)*x^5 + Mod(5, 7)*x + M
od(1, 7), Mod(1, 7)*x^7 + Mod(1, 7)*x^6 + Mod(2, 7)*x^5 + Mod(5, 7)*x + Mod(
1, 7), [a, 6*a^6 + 5*a^5 + 2*a + 6, 5*a^6 + 6*a^5 + 2*a^3 + 4*a^2 + 3*a + 5,
 3*a^6 + 5*a^2 + 5, 6*a^6 + 2*a^5 + 5*a^4 + 5*a^3 + 5*a^2 + a + 5, 2*a^6 + 5
*a^2 + 6, 6*a^6 + a^5 + 2*a^4 + 2*a^2]~, [x^2 + (a^6 + 6*a^5 + 4*a^4 + 5*a^3
 + 4)*x + 4, 1; x^2 + (2*a^6 + 5*a^5 + a^4 + 3*a^3 + 1)*x + 2, 1; x^2 + (4*a
^6 + 3*a^5 + 2*a^4 + 6*a^3 + 2)*x + 1, 1], a^6 + 4*a^5 + 4*a^4 + 6*a^2 + a +
 4, a/x, (x + a)/(x + 6*a), 3*a^6 + 3*a^4 + 4*a^3 + 5*a^2 + 3*a + 4, 274514,
 a, [x + (2*a^6 + 6*a^5 + 5*a^2 + 2*a + 1), 1; x + (5*a^6 + a^5 + 2*a^2 + 5*
a), 1], [2*a^6 + 6*a^5 + 5*a^2 + 2*a, 5*a^6 + a^5 + 2*a^2 + 5*a + 6]~]
? test(precprime(2^32),3)
[a^2 + 3*a + 1, 3435973833*a^2 + 3435973833, 2863311528*a + 2863311528, a + 
3435973833, 3579139409*a^2 + 2863311528, 3579139410*a + 3579139410, 1024*a +
 1024, 859832319*a + 859832319, 4294967290*a^2 + 4294967290*a + 4, 429496729
0*a, a^2, 3885163399*a^2 + 2553150559*a + 523234686, a^2 + a + 1, a^2 + a + 
1, 1, 4264202413*a^2 + 356078407*a + 3929909005, Mod(25, 4294967291), Mod(42
94967290, 4294967291), Mod(1, 4294967291)*x^3 + Mod(1, 4294967291)*x^2 + Mod
(4294967287, 4294967291)*x + Mod(1, 4294967291), Mod(1, 4294967291)*x^3 + Mo
d(1, 4294967291)*x^2 + Mod(4294967287, 4294967291)*x + Mod(1, 4294967291), [
a, a^2 + a + 4294967288, 4294967290*a^2 + 4294967289*a + 2]~, [x + (34444702
3*a^2 + 1616586690*a + 252460086), 1; x + (3340051543*a^2 + 1627577691*a + 2
021233148), 1; x^2 + (954915748*a^2 + 2667389600*a + 2273734143)*x + (816322
992*a^2 + 830924795*a + 1995175223), 1; x^2 + (3950520268*a^2 + 2678380601*a
 + 4042507205)*x + (1642837480*a^2 + 2548350348*a + 1670376662), 1], 3618892
287*a^2 + 1482857269*a + 1021597254, a/x, (x + a)/(x + 4294967290*a), 193102
0128*a^2 + 2510126022*a + 210458928, 36893488070109691946, a, [x + (13656704
90*a^2 + 3373566631*a + 4083593885), 1; x + (2929296801*a^2 + 921400660*a + 
211373407), 1], [1365670490*a^2 + 3373566631*a + 4083593884, 2929296801*a^2 
+ 921400660*a + 211373406]~]
? test(nextprime(2^32),3)
[a^2 + 3*a + 1, a^2 + 4294967310, 1431655771*a + 1431655771, a + 3435973849,
 3579139425*a^2 + 1431655772, 715827886*a + 715827886, 1024*a + 1024, 114504
4996*a + 1145044996, a^2 + a + 4294967309, 4294967310*a, a^2, 264190711*a^2 
+ 2629464558*a + 2494776416, 2086193154*a^2 + 2086193154*a + 2086193154, 220
8774156*a^2 + 2208774156*a + 2208774156, 2086193154, 996804783*a^2 + 2908221
018*a + 1206110100, Mod(13, 4294967311), Mod(4294967310, 4294967311), Mod(1,
 4294967311)*x^3 + Mod(1, 4294967311)*x^2 + Mod(4294967309, 4294967311)*x + 
Mod(4294967310, 4294967311), Mod(1, 4294967311)*x^3 + Mod(1, 4294967311)*x^2
 + Mod(4294967309, 4294967311)*x + Mod(4294967310, 4294967311), [a, a^2 + 42
94967309, 4294967310*a^2 + 4294967310*a + 1]~, [x^2 + (2086193155*a^2 + 1225
81001)*x + 2086193154, 1; x^2 + (2208774157*a^2 + 4172386308)*x + 2208774156
, 1; x^2 + (4294967310*a^2 + 2)*x + 1, 1], 1484088443*a^2 + 1141114953*a + 4
283364322, a/x, (x + a)/(x + 4294967310*a), 3579574627*a^2 + 2804395212*a + 
4147536492, 6148914735617846011, a, [x + (268392743*a^2 + 2459390605*a + 130
4316255), 1; x + (4026574568*a^2 + 1835576706*a + 2990651057), 1], [26839274
3*a^2 + 2459390605*a + 1304316254, 4026574568*a^2 + 1835576706*a + 299065105
6]~]
? ffgen(ffinit(2^32-5,101),'a)^10000
2904925334*a^100 + 700105542*a^99 + 1727200511*a^98 + 1173808205*a^97 + 9542
0994*a^96 + 3202419959*a^95 + 2481924190*a^94 + 3126863204*a^93 + 2955970830
*a^92 + 2548647191*a^91 + 1047527349*a^90 + 1607847794*a^89 + 1136036718*a^8
8 + 2224103182*a^87 + 234809824*a^86 + 1334629770*a^85 + 3694521682*a^84 + 2
888958800*a^83 + 2981717284*a^82 + 3586954794*a^81 + 956529198*a^80 + 193357
785*a^79 + 2461870083*a^78 + 2884929899*a^77 + 2136433918*a^76 + 3711607228*
a^75 + 332814573*a^74 + 2094440266*a^73 + 933657478*a^72 + 2778340755*a^71 +
 3169750773*a^70 + 2171979949*a^69 + 1221433421*a^68 + 901860002*a^67 + 2970
90232*a^66 + 3539970492*a^65 + 2076910613*a^64 + 2401092275*a^63 + 171183351
4*a^62 + 3584831951*a^61 + 2855998596*a^60 + 347617911*a^59 + 2423948087*a^5
8 + 2221962383*a^57 + 2749975174*a^56 + 1550735992*a^55 + 2529466701*a^54 + 
2598855843*a^53 + 4023905766*a^52 + 1486945524*a^51 + 2441781373*a^50 + 1138
122930*a^49 + 2066584358*a^48 + 1722922056*a^47 + 3744247345*a^46 + 29285190
73*a^45 + 1223452975*a^44 + 2713760803*a^43 + 2142407081*a^42 + 756824586*a^
41 + 3732788422*a^40 + 1164553813*a^39 + 771729217*a^38 + 3634297024*a^37 + 
2421113272*a^36 + 2598325671*a^35 + 3513778816*a^34 + 1539027125*a^33 + 3689
734857*a^32 + 4188593390*a^31 + 2825758998*a^30 + 3192363801*a^29 + 36501544
35*a^28 + 1334480978*a^27 + 2009094380*a^26 + 151875699*a^25 + 3435707889*a^
24 + 661453301*a^23 + 416421795*a^22 + 3246563523*a^21 + 985317917*a^20 + 33
10261776*a^19 + 4234321367*a^18 + 380085156*a^17 + 1049653093*a^16 + 6266755
65*a^15 + 1603594749*a^14 + 3130157282*a^13 + 844750099*a^12 + 3495279283*a^
11 + 1036502501*a^10 + 576151557*a^9 + 1040168751*a^8 + 1714788152*a^7 + 234
0199159*a^6 + 4175283296*a^5 + 2975302344*a^4 + 2428563952*a^3 + 443574314*a
^2 + 3215614405*a + 2183237283
? ffgen(ffinit(2^64-59,101),'a)^10000
11357361951151958121*a^100 + 5792035517727999732*a^99 + 7489923161672088612*
a^98 + 198291789480115765*a^97 + 7027135568582861768*a^96 + 7299386875942518
369*a^95 + 10681924511986429849*a^94 + 14721409711812770068*a^93 + 177845253
02221024156*a^92 + 7804341282953434235*a^91 + 6253292858501893536*a^90 + 375
2205311837838488*a^89 + 12205965799946763222*a^88 + 7579185967234550243*a^87
 + 7660231629286376323*a^86 + 8927589722637637677*a^85 + 6783475681455269614
*a^84 + 11968255844292754829*a^83 + 5819238353489370105*a^82 + 6918133330273
010048*a^81 + 8900778062932659277*a^80 + 15250824442906974876*a^79 + 2484274
759583929736*a^78 + 12662494501202465352*a^77 + 1658627870779087936*a^76 + 1
3011592420351927994*a^75 + 1429162280240510446*a^74 + 8085544061123262008*a^
73 + 12999730205733779276*a^72 + 14782490105219029716*a^71 + 970562341709006
1989*a^70 + 10676813376503700642*a^69 + 13433094161603852463*a^68 + 17199289
874783012603*a^67 + 4285333119776358644*a^66 + 16021251868058308047*a^65 + 1
5495498503350376322*a^64 + 5966197018829209744*a^63 + 12345332784539353625*a
^62 + 14865549204004875095*a^61 + 8272995682833482264*a^60 + 121032254702015
79677*a^59 + 17479835254811511245*a^58 + 3057285969116272639*a^57 + 14559795
162132711775*a^56 + 13046944472429221491*a^55 + 1019495020975929944*a^54 + 1
6803291081324517730*a^53 + 17710829803474400119*a^52 + 2594650197306879903*a
^51 + 12847996295434431851*a^50 + 9729674550253550622*a^49 + 109429518884359
53217*a^48 + 508631243443378452*a^47 + 4416164175737874514*a^46 + 4138550054
669964040*a^45 + 91535476336245596*a^44 + 11254247175995051473*a^43 + 336718
1085033412978*a^42 + 11302910178987761836*a^41 + 14219471129414354857*a^40 +
 3472640334363308855*a^39 + 44279726220391285*a^38 + 8772473950884549985*a^3
7 + 6773120702751407339*a^36 + 6996688466561413845*a^35 + 546584401725025696
5*a^34 + 7818703010175000236*a^33 + 13304920141834573258*a^32 + 114357960485
84276*a^31 + 4331469251417299625*a^30 + 17686902244060347692*a^29 + 17607783
19947200401*a^28 + 3012511890706784509*a^27 + 18319341252918336566*a^26 + 10
018340880050704466*a^25 + 3681292000887380307*a^24 + 6241896558174496327*a^2
3 + 9334414729239110374*a^22 + 14900454697774091776*a^21 + 77193581568725477
10*a^20 + 7957196232563221737*a^19 + 14008909657978711585*a^18 + 43480361564
79613902*a^17 + 1768274872694937073*a^16 + 6926632468462411736*a^15 + 138466
31025657876514*a^14 + 16445358444805977559*a^13 + 3015896265596741617*a^12 +
 3099427746327195442*a^11 + 7091419183460950797*a^10 + 13541704365745256080*
a^9 + 9319609099157088592*a^8 + 3845681432811214920*a^7 + 380965757660125686
6*a^6 + 14250915374958368396*a^5 + 5948030384875855137*a^4 + 434385110189972
4971*a^3 + 16736030436363202463*a^2 + 11764704170600631014*a + 1394491261297
3941130
? for(i=1,10,print(ffnbirred(11,i)));
11
55
440
3630
32208
295020
2783880
26793030
261994040
2593726344
? for(i=1,10,print(ffnbirred(11,i,1)));
11
66
506
4136
36344
331364
3115244
29908274
291902314
2885628658
? do(f,p,T)=centerlift(lift(polrootsff(f,p,T)));
? do(x^3+x^2+x-1,3,t^3+t^2+t-1)
[t, t^2 + 1, -t^2 - t + 1]~
? t=ffgen(3^3,'t);do((x^3+x^2+x-1)*t^0,t.p,t.mod)
[t, t^2 + 1, -t^2 - t + 1]~
? polrootsff(x^4+1,2,y^2+y+1)
[Mod(Mod(1, 2), Mod(1, 2)*y^2 + Mod(1, 2)*y + Mod(1, 2))]~
? t=ffgen(2^64)^((2^64-1)\5);1/t
x^58 + x^57 + x^56 + x^52 + x^51 + x^49 + x^46 + x^45 + x^42 + x^39 + x^36 +
 x^35 + x^32 + x^30 + x^29 + x^25 + x^23 + x^22 + x^21 + x^20 + x^19 + x^12 
+ x^8 + x^7 + x^6 + x^2
? t=ffgen(('t^2+'t+1)*Mod(1,2));
? factorff(x^12+t*x^10+x^6+(t+1)*x^2+1)

[x + 1 6]

[x + t 6]

? polrootsff(x^2-x-ffgen((v^2+1)*Mod(1,3)))
[]~
? polrootsff(2*x+1,2,y)
[]~
? sqrt(Mod(-1,4296540161))
Mod(1086811600, 4296540161)
? sqrt(Mod(-1,18446744073944432641))
Mod(6687681666819568403, 18446744073944432641)
? centerlift(factorcantor(prod(i=-10,10,(x^2-i)),2^64+13)[,1])
[x, x + 1, x + 2, x + 3, x + 248527397336721375, x + 2370518075556110396, x 
+ 2888582621843189425, x + 4741036151112220792, x + 5193293969518580612, x +
 6494187761904104278, x + 7111554226668331188, x + 7312212166335540022, x + 
7562574061564804959, x - 7562574061564804959, x - 7312212166335540022, x - 7
111554226668331188, x - 6494187761904104278, x - 5193293969518580612, x - 47
41036151112220792, x - 2888582621843189425, x - 2370518075556110396, x - 248
527397336721375, x - 3, x - 2, x - 1, x^2 + 2, x^2 + 3, x^2 + 8, x^2 + 10, x
^2 - 10, x^2 - 8, x^2 - 3, x^2 - 2]~
? #polrootsff(x^107+2*x^3+1,3,ffinit(3,107,'a))
107
? ffgen(x^2+x+Mod(1,3))
  ***   at top-level: ffgen(x^2+x+Mod(1,3)
  ***                 ^--------------------
  *** ffgen: not an irreducible polynomial in ffgen: x^2 + x + 1.
? conjvec(Mod(x,x^2+Mod(1,3)))
[Mod(Mod(1, 3)*x, Mod(1, 3)*x^2 + Mod(1, 3)), Mod(Mod(2, 3)*x, Mod(1, 3)*x^2
 + Mod(1, 3))]~
? t=ffgen(5^4,'t);
? factor((x^24-1)*t^0)

[                x + 1 1]

[                x + 2 1]

[                x + 3 1]

[                x + 4 1]

[      x + (t^3 + 4*t) 1]

[  x + (t^3 + 4*t + 1) 1]

[  x + (t^3 + 4*t + 2) 1]

[  x + (t^3 + 4*t + 3) 1]

[  x + (t^3 + 4*t + 4) 1]

[    x + (2*t^3 + 3*t) 1]

[x + (2*t^3 + 3*t + 1) 1]

[x + (2*t^3 + 3*t + 2) 1]

[x + (2*t^3 + 3*t + 3) 1]

[x + (2*t^3 + 3*t + 4) 1]

[    x + (3*t^3 + 2*t) 1]

[x + (3*t^3 + 2*t + 1) 1]

[x + (3*t^3 + 2*t + 2) 1]

[x + (3*t^3 + 2*t + 3) 1]

[x + (3*t^3 + 2*t + 4) 1]

[      x + (4*t^3 + t) 1]

[  x + (4*t^3 + t + 1) 1]

[  x + (4*t^3 + t + 2) 1]

[  x + (4*t^3 + t + 3) 1]

[  x + (4*t^3 + t + 4) 1]

? factorff(Pol(0),t.p,t.mod)

[0 1]

? factorff(Pol(1),t.p,t.mod)
[;]
? factorff(x^4-t,t.p,t.mod)

[Mod(Mod(1, 5), Mod(1, 5)*t^4 + Mod(1, 5)*t^3 + Mod(2, 5)*t^2 + Mod(1, 5)*t 
+ Mod(3, 5))*x^4 + Mod(Mod(0, 5), Mod(1, 5)*t^4 + Mod(1, 5)*t^3 + Mod(2, 5)*
t^2 + Mod(1, 5)*t + Mod(3, 5))*x^3 + Mod(Mod(0, 5), Mod(1, 5)*t^4 + Mod(1, 5
)*t^3 + Mod(2, 5)*t^2 + Mod(1, 5)*t + Mod(3, 5))*x^2 + Mod(Mod(0, 5), Mod(1,
 5)*t^4 + Mod(1, 5)*t^3 + Mod(2, 5)*t^2 + Mod(1, 5)*t + Mod(3, 5))*x + Mod(M
od(4, 5)*t, Mod(1, 5)*t^4 + Mod(1, 5)*t^3 + Mod(2, 5)*t^2 + Mod(1, 5)*t + Mo
d(3, 5)) 1]

? test(q)=my(t=ffgen(q,'t),m=[t,t^2,1+t^3;1+t,1+t^2,1+t^3]);print(matker(m));print(matimage(m));print(matrank(m));my(M=[t,2*t^0,3*t^0;t,t^2,1+t^3;1+t,1+t^2,1+t^3]);print(matdet(M));print(M^(-1)*M);my(v=[t^0,t^1,t^2]~);print(M*v);
? test(2^5)
[t^4 + t^3; t^4 + t^3; 1]
[t, t^2; t + 1, t^2 + 1]
2
t^4 + t^2
[1, 0, 0; 0, 1, 0; 0, 0, 1]
[t^2 + t, t^4 + t^3 + 1, t^4 + t^3 + t]~
? test(7^5)
[3*t^4 + 5*t^3 + 6*t^2 + 2*t; 4*t^4 + 2*t^3 + t^2 + 5*t; 1]
[t, t^2; t + 1, t^2 + 1]
2
6*t^4 + 2*t^3 + 4*t^2 + 2*t + 2
[1, 0, 0; 0, 1, 0; 0, 0, 1]
[3*t^2 + 3*t, 6*t^4 + 5*t^3 + 4*t^2 + 5*t + 6, 6*t^4 + 5*t^3 + 4*t^2 + 6*t]~
? test((2^64+13)^5)
[3*t^4 + 5*t^3 + 18446744073709551621*t^2 + 18446744073709551617*t; 18446744
073709551626*t^4 + 18446744073709551624*t^3 + 8*t^2 + 12*t; 1]
[t, t^2; t + 1, t^2 + 1]
2
18446744073709551628*t^4 + 2*t^3 + 18446744073709551626*t^2 + 2*t + 2
[1, 0, 0; 0, 1, 0; 0, 0, 1]
[3*t^2 + 3*t, 18446744073709551628*t^4 + 5*t^3 + 4*t^2 + 1844674407370955162
7*t + 18446744073709551628, 18446744073709551628*t^4 + 5*t^3 + 4*t^2 + 18446
744073709551628*t]~
? test(q)=my(t=ffgen(q,'t),M=matrix(10,10,i,j,random(t)));subst(charpoly(M),'x,M)==0;
? test(nextprime(2^7)^5)
1
? test(nextprime(2^15)^5)
1
? test(nextprime(2^31)^5)
1
? test(nextprime(2^63)^5)
1
? print("Total time spent: ",gettime);
Total time spent: 1480
