(* This file accompanies the paper "Frobenius classes in alternating groups", by David P. Roberts. The main command is FrobA, which computes not only standard factorization partitions for a given polynomial pol, but also some associated signs, these signs being what the paper is about. *) (* In FrobA, pol has to be a polynomial in the variable x with integer coefficients and square discriminant. The inputs _start_ and _stop_ index the first and last prime at which computations are to be done. As an example, In[1] := FrobA[x^7 - 7 x + 3,1,10] returns Out[1]//TableForm= 2 7 * 3 * 5 7 - 7 * 11 7 - 13 4 2 1 17 3 3 1 19 3 3 1 23 3 3 1 29 7 + At the primes 5, 11, and 29 the factor partition 7 is ambiguous and FrobA returns the factor partition and also the associated sign. At the primes, 13, 17, 19, and 23, the factor partition is not ambiguous and FrobA just returns it. The primes 3 and 7 divide the polynomial discriminant, so FrobA just returns "*". The star at the prime 2 indicates there is a sign to be computed; however FrobA does not compute signs at p=2. Note that we have tried only to keep the code short. FrobA is not at all optimized for run-time. *) FrobA[pol_,start_,stop_] := Module[{d}, d = Sqrt[disc[pol]]; TableForm[ Table[{Prime[k],FrobA1[pol,Prime[k],d]},{k,start,stop}], TableDirections->{Column,Row,Row},TableSpacing->{0,2,1}]] (*The next block of commands are called by FrobA. The commands disc and factorpattern are of independent interest *) FrobA1[pol_,p_,d_] := Module[{fp}, fp = factorpattern[pol,p]; Which[IntegerQ[d/p],{"*"}, ambig[fp] && p==2,Join[fp,{"*"}], ambig[fp],Join[fp,{sign[pol,p,d]}], True,fp]] centerform[x_,p_] := Module[{posform}, posform = Mod[x,p]; If[posform>p/2,posform-p,posform]] semidisc[pol_,p_] := Module[{exp,root,d}, exp = Exponent[pol,x]; ar = AlgebraicRules[pol==0,x]; root[1] = x; Table[root[i] = PolynomialMod[root[i-1]^p /. ar,p],{i,2,exp}]; PolynomialMod[ Product[root[i] - root[j],{i,1,exp-1},{j,i+1,exp}] /. ar,p]] sign[pol_,p_,d_] := Module[{fl}, fl = Transpose[Drop[FactorList[pol,Modulus->p],1]][[1]]; centerform[PowerMod[d,-1,p]* Product[semidisc[fl[[i]],p],{i,1,Length[fl]}]* Product[Resultant[fl[[i]],fl[[j]],x], {i,1,Length[fl]-1},{j,i+1,Length[fl]}],p]] //nice nice[1] = "+" nice[-1]="-" ambig[part_] := OddQ[Apply[Times,part]] && Length[part]==Length[Union[part]] disc[pol_] := If[Mod[Exponent[pol, x], 4] <= 1, Resultant[pol, D[pol, x], x], -Resultant[pol, D[pol, x], x]] factorpattern[pol_,p_] := Module[{fl,tab}, fl = FactorList[pol,Modulus -> p]; tab = Table[Exponent[fl[[k,1]],x],{k,1,Length[fl]}] //Sort //Reverse; Select[tab,# > 0 &]] (* Finally, we present rminus and rplus, two polynomials figuring into Section 6 of the paper. The command factorpattern[rminus,11] gets one started in making the final comparison of Section 6.*) rminus = 19521329636677221646902778344500731950886918796853808436432879209617955572786\ 21588514339758940612510372636373574511605183066625319201419941119329185631635\ 48664104971087244224797159462614727695802531229132773577678405592810612253152\ 546744092987560403279235349389757751147208686954449207296 - 4304507049516663451918830746954451094165503041479535451774899739056076010613\ 40527750186577218498961399831837842218677791810183289815200869271102474506345\ 59432298128947772182579553389410023096676045232319177361604827296419417787334\ 87339864898686456868157523790754940386941430190770749440*x - 6006031177062804277921898210878420415580274183500624554684459360322374215055\ 03949087826040583791612894767348274420332840900174969601307312398204126227376\ 15693500175083826710196944565367099965608099860585858605235807666547176022064\ 1328261155133363894118910830395178905129813313549500416*x^2 - 1162042262387371551191893677052571598727896077463299408234686777314716505685\ 95502872916948787001592554334652330062375063329769016260528197236289964934407\ 29604858348081100880707738062798616099360689718418539474713501913396988211504\ 331526092813510053223597950867938331056626611519488000*x^3 - 3022999746770412954281793566110406759233003112316183810890246542845504113361\ 97685771481081813023479742612406705771431013753903130504449745425101865017559\ 72106466592214241999302851758078883007423915695600342095298078268747756230122\ 547178336238814823386138484897748272923447266377728*x^4 - 1582886580673258319796436636143518788956806366578268989727522305667837692766\ 30566566191776550781778117734265245641344846228076509454284309514527385666795\ 12066846775189215214472283212211885603176850561236699112386594853774679953321\ 63014372351872208823264482575447373880629219295232*x^5 - 1238209994692220297910325088450134143776509573649459940050025465198415725587\ 56284971116740844833502793666714143747021148009572946167721214241415519032492\ 23785350166660341799476869477840354019345235372527499234887293733553212409036\ 9548547207254591950155755075107478284805097914368*x^6 - 3033487608535449158291965045840943050896290837328551598654361551677088769106\ 12648896062327996393997033627695726640194303619189519257336489955025018193586\ 76644750425136436068280368506943827447445586693830928991280227165540419086934\ 14416881148520636223255619461087003538207277056*x^7 - 5091053923193107691926687274158787444747233314702410235315654825740601919010\ 16772665368078439573056134399178410825335731142852741131012847402333112380959\ 85142030426410853252118795809792198815210249613319348469890731370625404338197\ 504202174471026905603805152101053934759575552*x^8 - 8660263604604477845774845478796100209843951370259362775360037973662104681734\ 37438098672907961900273054034230695254249555255087382624993122018336396934540\ 18429804915003113707612585763539676190993676634823212029195152666168020685127\ 8371669578210358381755527776549574629392384*x^9 - 1464252485999798723292695709581916934373591527496479083412172675602198495959\ 81837387537460470267151866742505751549046696389993455808721868090883595981137\ 86026887521379536783800372481648229526367666027045711771718936141715674964992\ 580808086242432780931843202410970810941440*x^10 - 2186537831423241857702865354733751105654081440280352404831425180251452387248\ 68519983243702242160377485243486340643198874070722832558760529889129447546375\ 07367153323638357810471469823809197060285887008605014381470574553290335292424\ 8175001011507926281585850187532998803456*x^11 - 2941744084084332816925868297809808274036875128459243839140942337978252832093\ 02221472522935026066138488889900408818552301971348588053890126089153963423724\ 76673995102156116722208301195371485233653007876566107014860848823233911450773\ 76016212254660030892451091302869630976*x^12 - 3469784694709478134518979762635\ 81952451869168888375707952410268728900687360957465935208375388861580568279319\ 65599414415765523441619914763115256996028466723876025632583768125103857870150\ 91747545828004365338033002560878399885239164546102947909063434059804031895941\ 9392*x^13 - 30615493304148161021195481809103718323801815612816091034497905371\ 19601018605870541883588624073790984319271627409780287911574627650811890759566\ 05777785172001873921187818993519622194899241876305253786240712103123208011041\ 604711971497004852862520253709332798853087232*x^14 - 1537029632597562901799666643524538904478029277607740555789984379322127072947\ 86997651740975399787576870669631976774446236949326894762207943365659279398517\ 67597651812854590082321618517243814515576576353302917375410743732166062690400\ 51056179694402555814073769918464*x^15 - 2866133667736670868395647768851558375\ 34527590520961362107476801673133779571388315642986579459956769789112367033629\ 45455676298657021526918409673400082586531697896930600428311872643200407493820\ 8440388235604356367245956026093247863679637283510839602896107995136*x^16 + 5455102999485181050766294872053111424484829080308809656048934584579167206065\ 10788396698911532910789260564778612400883114184733934000720073318780187833219\ 56028951143609837163445104912226464791366610530586054543826580252994744753512\ 090443358944437378889023488*x^17 + 105675052937715378132717572307963750507652\ 38328534687210647200095014808359281198861105797834376595004399531990068144606\ 98611722424553519157574074232327709866709318576692570531134320653249564392684\ 666481488464759036333292407434779042875636193328518207111168*x^18 + 2714433808108203347109235760173905179235085300869470295745697760021055617753\ 44378433148112209616268423417940513173566848933579226460401461142584534544424\ 97667893712393732175657407099995125734319793438404908311939226095822942066438\ 551984324598139090632704*x^19 + 477723231147978355993214215295443755599756321\ 81319281046682660600190859585040010557023875548661136166002931364631640156246\ 81962056421880379359813810588749727961139810240016643577008947939526815531944\ 64090573847793038233934526967650211443801540953899008*x^20 + 5326558831609295256767033019925250856495211056261554427256991548769502921303\ 75776479067528075851861094493070829396107205439710856156078734361268707888744\ 66930536565015829976827754385673163022329934218179742169321163122663888831306\ 02122059280614948864*x^21 + 3936589726765020223028456216929092015148380935613\ 29422298589162031074476557161176846092094073362076686865123537196980009122488\ 98654229635516563478429261327201579125569072310286758059707035039168618000841\ 380284516365743234064073339035779443212681216*x^22 + 2114936946574000318962584458114014359262766165534506241650335832436253781202\ 85011482133386173126360137688712168185391222731561347970736973029573540058472\ 55684511679174040975334500572717020852754684620530408546600524558605112576959\ 1759310208106496*x^23 + 11383310902230908572082083701489477722271371000076631\ 73744185666877154672136252021638576153032269370211075634298320437390099314989\ 98756066474913042940378485344790588595600125156190776479336109056244242898329\ 2835177615643421833457532645018697728*x^24 + 65075348719359160377211255806424\ 28710691756170606255051471367591552906148690945980559086274258995039569189313\ 21961930195058621363388862482557335239917109175027016142932994265171498757610\ 0273989015101600741846533920877795995446608688882647040*x^25 - 3294530055648355305836960939909888399687553856545094691547282397653761144375\ 47546076047932905529145719273663018481965815432480154192399036443618942799370\ 14000652975611560375978164032985542185079552322903611922291457897411118550273\ 883111424*x^26 - 184288185858539001900296283820652415931987383494920482279992\ 44929517192552771016607217948843100625754725551320739584623504904621809030156\ 67352656586206578117544299372090837107116113492291843477396881867921472835487\ 002556396412419193176064*x^27 - 292514382107104669461871014937317448455333505\ 87541694818204773253695833613046131122761176976712319230592289328463494146632\ 08565893882927421911865104273338768606767772425091031057007305142501693960639\ 1137237532868308930696622369996275712*x^28 - 27763856511151064427768993827655\ 65272754756803430625861800796808001978496119955441584559335021854029484523949\ 02000681211358020091437742129769427571976263953306630430428367049083619493186\ 663820947699565317131424065093122710368321273856*x^29 - 1574212714875731758807689969994433138914012109872558449986094682956488796003\ 55143314344963566912440688665887492490521067482665524221835973027968432664979\ 47735033129992772883562890288678312469470384647504316286175316357153116295004\ 16*x^30 - 1777136707606060671503235703431806003768214818139521655720221231454\ 42231040789059709592678940409634997028014974711635438096470442133197245804088\ 33411218180889619043278289242428623259472695115252172091855982165192552655822\ 14283264*x^31 + 6800392309020827449258073724125749347847055199011304583908438\ 64032731335727353190436461705425953748056226431098523007483646326048962516602\ 92072304746395485083773174890523614470963163985398603008093464511970866965872\ 260449042432*x^32 + 838337714462774482556429596243319279065178790957718793177\ 25869197297243271456081516157506100301757335176507025148739188820317652693942\ 76796245721572135893030073779069844781709409215970028894105346692993941151687\ 59471392423936*x^33 + 5742620993543999146456767443969279180953004517090134915\ 16551750306964871304179376959125467949865326509347066008645680327010862993377\ 42776565762706101471672222427759492355627126364133450508274557847221019359906\ 61945778765824*x^34 + 2376830389706934169590284093868177892835545772059632479\ 22965539211926285962084094972308309247382624808989618611244174228132309825908\ 25957132926234615053480937312110076516851899989931072092014901756312382836073\ 320754970624*x^35 + 203625648074590747515392742173011449247747496183368488732\ 85326615522473119272104717302494331449698625412866424942318854524628770005114\ 10977980681828336683888132150776693485909889383228033294166228714776504943415\ 1321600*x^36 - 57366142391349261132400044613181423409330030731987569821799778\ 15165541397635318797589481801953658136079472828472429957168832855396055823234\ 42976970752808374113963681113588196070878944069409954392216452362937858785280* x^37 - 54282352633964565003741872319403669778983685074590996492690792923652\ 43817289133905958639523119878596013863174221813130567672886170580178964122656\ 122634404330326278035191862804158589906579640696507332414811439890432*x^38 - 2832373018405232270977785007118573610270014940935427272241967520133416833332\ 38595575230088864416986971237468450965519035881373010788417253234347613440167\ 93420995543639639008651131095857619609344543456349988585472*x^39 - 8167947527286058250703062341060512606789048127184383737183909822101050823141\ 14936995619581834673883539735605846731201887500513663237695211300471896546274\ 92670874646327094832822771823313090687513476736598671360*x^40 + 8244502411393134552719282663229280831596878478535657973834357683501519842607\ 85591725276311261413266308190019000064306202580374390860179835186159798817794\ 26923147247548629084556166410762594177900705015136256*x^41 + 2662406261969305885045404178929252800623136775873454538651185468870988953593\ 86365755074684016127936437680305706047222875916453233606828079936041218581070\ 1012294425348213833192066252396241958294351834513408*x^42 + 1874799957282085207108478296290562711030418348708135604530902110458172413470\ 96131819640136336591112845727584207510301200984225705569854662116202059933153\ 52749460768278998501728371224653074785739663736832*x^43 + 8490087095401696641372893739610130469461595848507373934013697280169486502520\ 34368089367528185744387032099368526527745750180427728004898914291771918693434\ 40785747381621622859027034434894554958210793472*x^44 + 2533500739536628419584389998079195304820024315096389405411488439757076903102\ 90377484675213699657300568185709225707141787585763578262006134186325790835594\ 598774041048440932855245920246567204986814464*x^45 + 2516171414550193865773918228473896889649421394599572782851971443031787181367\ 82951268535715054769698470912375422040699227932488576274956116741039718035832\ 068629776112065842881096417190478520254464*x^46 - 2589993326933629827754546876727510548921476252479352836757104532070999334032\ 09590682239780651739428270557767632737524758574581698160102652735204920231171\ 8129463002581656208539916894669608321024*x^47 - 2155044473718944817379957450677597057457386709585651901961881918136148766993\ 78794259990618179755620024298651147827859815062640908730406917948949521133422\ 58607413180517797529042008235409670144*x^48 - 1017743540919607970733831174392\ 39644242800064940830439171521060197196735322164255412294812555884653566861743\ 00353521001723943955631803230974716826795041113632138598631630217366044192591\ 0528*x^49 - 32867602997311764337567922857613172236066664143909737059119874096\ 34235950905452748368751339667310982850946613496727372804578444086163906241469\ 81635463019869587849802768369370014513364992*x^50 - 5376594883506457752731269122278000466565450536462336735737580043678277383502\ 41775546383378097464702101006579118861326832407696538505136033076429671772171\ 013863067667067696824950194176*x^51 + 172158020843877032990677304760713998689\ 08481220248007375897974168236494399575532410857939802013646644615656953270061\ 44925151850616172249456939700878353744678799997623299785984311296*x^52 + 1965424563348900012598128121440925760641459173216291616469400228052457309565\ 78836685439318975285729447266624683258758838584998281592648822819462600659480\ 31977591774111737338396672*x^53 + 9797473720193380775639129927577884537601535\ 65363296877270852410461419459409342028692757016234184948151395442411479927094\ 74603555782008704943634592610279515747966607285412691968*x^54 + 3005322241421284290417762780928387680285406654713056487329599183993225456859\ 43368132125449110059691883670480579660146805229166541598062161883113004313230\ 059445989819272921088*x^55 + 273645062555468339714231893483053171474664294550\ 65505082344741566512999256941037671568508980381268196122777769486638419312327\ 6907604692360267729458711829695360265512550400*x^56 - 3150622017888069634451570690076206918713064612842973288619982614624318576137\ 35352236021925748749597344711795350713089040029760566354238585475310868194127\ 6039002661584896*x^57 - 22367003044578288635848904730372732993983127832635932\ 46341142725483852478769692541465764370819875437539017412380672156096569754450\ 6827567706169791648737329493550563328*x^58 - 75732425913704250140839328377230\ 57257998269984757363978561145633332361528554613372262467136768312557793598407\ 6435221510368347728662698138052063116676243898259996672*x^59 - 7299282525111568686276923640490542018608477061373195662013359914363473153066\ 76338016229741665299553226055177444440997229087011752247621052787022310492931\ 03366144*x^60 + 7074988145041952682149251889131701746920669715429458219771336\ 19349842681793200810016617034963063540504711858533777856639331163283021712935\ 884847353515059707904*x^61 + 450923576021732765913492054714832840577808274882\ 32314520565030845883900750170134750460283496321314348330934341764728587812929\ 82015798880892158392073891872768*x^62 + 1207359870922506662545119979636559132\ 57475931825196577153436448005648755268247841005658925876730206416118685914949\ 30077457177390039103146785277048927551488*x^63 - 3477966165360769984899077546488536770525714622101105743402214854065717966473\ 191313678961584420798971500071237417243822222945823264914387683205563023360* x^64 - 17736658457153607554603057633433813589578277065491717052216852987912\ 68392984369299845729637696977093572879235756165441634873155394115582487738324\ 09088*x^65 - 7619156524876193226669164675674761449829950608844315643968356994\ 79085362603881039858540019835343255496679249400067086927899780954786587079102\ 955520*x^66 - 940035186066993849305739309105620427866670897734014042087438551\ 01079123916353086493968281517942337347377362699598720194589684699225769336268\ 3904*x^67 + 66855075373181790592975034774348897359982941856928598891905337920\ 93908761288677336769173219964822893575126140210973102378846037149155030204416* x^68 + 40102904475388040875862270398553100487240306993581837521673950641529\ 265171412133912766804749438577828306243130521003094482315544201544073216* x^69 + 57236474414426976915986283323527277568778188906244186550906312403697\ 061877834155741215065195485987597728650051371830367011513407998263296*x^70 - 3414233688112934290862974156384990177446536021546848066730012037774045522866\ 12077163836014836506415628684567929866175473841405259939840*x^71 - 1827506866515771467190098311038218316439139258967562295970201050184460222156\ 637688067153148383643365710806476728490535739476813021184*x^72 - 1181856884408308983240614638226155067133692933819935354791661059120775450224\ 969126025038499445396756458607378420714481492795850752*x^73 + 1838371528068774276194288968689819308206559631635397739678228437028899012881\ 7628869400471837022636857694599293622896063487672320*x^74 + 6171008293044701145188975725002528042519361234838803992151975986099169450051\ 3807770143243100805204311200419306782385974018048*x^75 - 4480621020810501233892072248272772720274079985563234481727440728393163494898\ 7679970186627877384771890780367804312745672704*x^76 - 7486374320367786904681721938389325718740710577822351470912686109812510972873\ 54588278365045247883502948167312135329677312*x^77 - 1287515637998338098742676882053063815523224165043417457717065309683200223613\ 914034116852748972686619163943667029245952*x^78 + 4270101120192662765858264695419089632680719221570438817707957847134805936418\ 651558884976063704777225965602198257664*x^79 + 2102291063282857677388365813050999865957336308762660858584760709438214384734\ 9760530333277697018822892444928966656*x^80 + 61645484700802144759399717281315\ 24664094697436567439141360722419327121114719576833161623924582564828052193280* x^81 - 16566733047498188897862588282191571511033927687635431827023838563197\ 8801542431012589534431336182924726763520*x^82 - 3686336459620576837530835487489490348099760811700674129674503982045032243377\ 73284387369900822003038814208*x^83 + 6204915893498130332871159409332083235190\ 81301317581141183452108565923372886953714083135658532884447232*x^84 + 3871906010330229175570121334136481253261388582400655064608478496822965230610\ 181248484216116692910080*x^85 + 198848044820242546962445534419024208743625414\ 4388624379735262550796101671934137787975271553433600*x^86 - 2390358725426733153390789401910589687449923094398688892082806906832268097103\ 3855052644358291456*x^87 - 50182623473351771754046506219607850133112171959629\ 975798025946187087056508980578543565012992*x^88 + 8045052939594436767804287321061253613514703404685690067654077270065966535750\ 0430036238336*x^89 + 42724420565904920228341721956681020456565411726489014969\ 4778471343971647975939356229632*x^90 + 11559611813635956011741766414760357038\ 7353333936789835009664032067885194687555829760*x^91 - 2272084674062038222717653254732792029113362234370640833536538301332898595771\ 252736*x^92 - 363378910380799483768779811755140506230596406758503494981831097\ 2321819399290880*x^93 + 6975831559053977582077718317797415595458697786088953692977587173301774450688* x^94 + 26540656330364017635013649812904245792795058495266306631883667582111186944* x^95 + 833782292199729109880606795743567606773934610930024554451008707624960*x^96 - 114292865644036854504205811258104219759163112806718632895203921362944*x^97 - 139736920217613430203203636123120514174488371275214405645564379136*x^98 + 276654402805347196895705335216994579053628588967349152638828544*x^99 + 823821369469205608534111005759281167280394105512382563352576*x^100 - 8014675507120744759169308591011788153255583109657657344*x^101 - 2631485136364337115824332178731050003671379457798569984*x^102 - 2871773608674000653638321990572211024565490199560192*x^103 + 4191529626089116434058227647448948399694348812288*x^104 + 11961312695035541006858477607091402939557740544*x^105 + 2737873336380276264163250046333220621910016*x^106 - 23703688354029640775757781515479480795136*x^107 - 30800349911480524512146396484835737600*x^108 + 11929635406858716568100394230611968*x^109 + 65440488830828855064922540081152* x^110 + 50757199630919250855771635712*x^111 - 37442688809224173092868096*x^112 - 102552959460705747075072*x^113 - 68134685203144507392*x^114 + 23894191417098240*x^115 + 79574334142464*x^116 + 69208390656*x^117 + 32814720*x^118 + 8640*x^119 + x^120 rplus = -5700046964646274990217291317671069522311792786419021311344593542460377369177\ 39720837075414564472270423822880124484954163050766013963723339299850104271636\ 12678423544372907234844685516968626279134244144094520689249194689091232568836\ 0023684865803917333044454815533239052690854455978806476800 - 6080034961754277331683886048831466515182226914251379345728485642474912236544\ 64150043281446031699553138198794480657229895171106648929936824959484915052237\ 92170588899074189421465507434709493891583133379671168740369556245310832040470\ 527402023146210118916643453148608588041637203586140078080*x - 3433613195101678691608490770080592916974818333380392841705305086069408134840\ 41132054082974496830987093563454743846579798490884387238337696969804265970608\ 12615691895762630742581229816713260114886342244656248151256338998851533187685\ 31312055636925902247036577843788868874310284285390618624*x^2 - 1086508521338265889509419927809881496198833008617795642486664718839434485030\ 51956828220524095715101840977881872761512890910086643889390635058393817122347\ 55442215766012296985505529772648507531746171361025021419155300066993302152545\ 9900455959731174887890839451381020867071263994120503296*x^3 - 2022718921621889941282343147525540370907502773356395677409389230726685226211\ 25077114446688727871349568472665212877960517318327946480870587694045486101334\ 58878501009197187419518070701987874713960736994637999894878372710005895442031\ 67324690303835126822851667224250637707491687515815936*x^4 - 2432607801655227646439162368248419140515013301956407358994172899514615305258\ 87565474189474480443494184197486564964378814984361004877412138381299076181196\ 40131055853732504352321102786709617510451276724201629158845763348706835852459\ 786809254549196574816564740720859288430206710185984*x^5 - 2075691163371414116271116103382685616346080717646632703709160825407472078297\ 20310195995801083029113577565825535199698100356776154707008515014543440749070\ 88109273245389081518168464143280583603535037994763987881668412409596309884740\ 3318096009638364777409281760689098883843533832192*x^6 - 9685658286895691058492781422676927488858607348984971084918947795399570973228\ 67903193077537536742973190899650341658681384260652209734396985948755616977510\ 13981115825323313471308098917221252791214005375013558924220472912186266364584\ 2853182126892362207467370035547457566403461120*x^7 - 8318964183639509222304542928375652806196836120350551813759001226851261221870\ 08495115550776220900256657801000739245675094066838360120778418500235414605824\ 45577087022527957404876242411758283048812862089884967153827910616468953437290\ 68364326144929912387309898163370600089780224*x^8 - 9698132518181571301654372472939450319171763939854097112419379722154107665797\ 66912150246870330869125224522617895508621747662251543910553597124851345143949\ 54575150881410301664594803302580261011113797996160604905048345454550288528420\ 1361812887373300122393566447332136610430976*x^9 - 3432512421141411236901017256287825865545434510159633109828467789755023656493\ 67658502694842482508430179668322563823101236455547676041010914149990092971221\ 73607120696868604470636657197060748773706422978300905492334142877109423845780\ 120888063597825219032276936295474882674688*x^10 - 5370082711575720808873186265423940264123217999472193864986204882614383689051\ 80403687952213365328161824328173743404252042071300433897233135719069862479104\ 04353811538882880556412395943905400768638859899123557445173027320396140264125\ 3518839333031551711529290738383330476032*x^11 - 1862791963183437514900638058684880990920319024596590393725279926215558336160\ 32376280285911943988175921953376958670139392944000020319354156270906070224535\ 63863481964292274272546131267698850566298284745169044573204908109425633412928\ 88596134664772786893151171659572445184*x^12 + 7648518513527892947426051319593\ 65839234007614753170396893850526362028917395910029907023324316532651237451226\ 44998497464401323438725710687067278509845628988126117542284336095062297727831\ 73433563527983908884410359365916678986334808148394945152232590217184009670937\ 8048*x^13 + 12967120699990037717410531241198972680073346937976685391345600064\ 53666315117478222620867661481953591367486425901243102127498458127287522665912\ 52170732477107338619858115567757827206521971570492559024353601724851473049242\ 0379025981816779479534131765259947360187842560*x^14 + 2652645476869037237006293230260683416965296695843290210165009030690540721357\ 54058599093569873184188692591384077117754803652006864870461588317760470412634\ 41157524804251546207109833485961119390342324077908338992916979626721581134555\ 78930641598435410198681704464384*x^15 - 1661868089133741116365938467887568429\ 80312738552845676775333546862607448013999488671052005678153984848149950254402\ 06739244717833593251931428579699699208302565072932991077809631074577719645147\ 4228053044052076066101947940157080569229129071144062862033962863165440*x^16 - 2073151547314292600478524932786370580963698613426093983406864764474510887561\ 35149536073772932438603681559550128463419719177347101905847828762112969803040\ 94534541248420637486368018419392459540518459576988603784113409285688487897005\ 94424431546585708148499152896*x^17 + 2389395733635996643822986327664843114062\ 03257166571492123197976770870200221128361298523648439737557421709260720716479\ 38053323360242449858998759923897878670442325041201397893089245065148120121391\ 53195786987518196138373806304485607856351363334476306451529728*x^18 + 3163318856084819794335204191324801190671732250200787043504470700622366801189\ 72115890114676675307103813395124736788865037238611564042747858355376255470764\ 27868972339569547861007283709283000131553334987639965270261315292734181880690\ 3481346751099141785387008*x^19 + 33998822143494711116316531413676366418566326\ 84906966633026281664678656755434341530770081039090243246756474542016643095558\ 60681206052549489915797352125664136534312588215290956116738823140080431908386\ 5666941876883916725916744604263341787067745777945149440*x^20 + 4822104869377965627766566089593340429667301212964912041987859309154587774980\ 54042943916077439978443353843943931234174796809665425144885415986464726606343\ 51991649501402198173825128256738484085851648887611487974043833716555103196265\ 72135260279944511488*x^21 - 2558997140757313533555622913208924108982888585882\ 01060843176482430977689789962791562994679054214348415265377454902233292015868\ 93450323004434491048353853997243965342387495608758863775819602603328128782722\ 0739117292196282641429858661990206747812298752*x^22 - 2776973242786800514936724622241812415415623483481111985237474091146053472093\ 99766723369714145991715901992278476799725482743304810228835830235018801499717\ 94315987318391705377731299531740102748245413164854595740873156270188501986785\ 45111918539964416*x^23 - 5442192669684828659693801559187861465435893426075594\ 79367011962562741203142330733735045693336650249764973403973345033045266034921\ 66924484557835759910446575131957396599161395965700282607626320716062987595786\ 56196573865132535860260857661584572416*x^24 + 1385715521510129614266708916020\ 67277749183422289746582204288229967787712102352334581615089444806945012972736\ 70087075133682872828428170510411390859743997871329796508864613082666550903508\ 9089871827497216223012795910323334546228812407271046774784*x^25 + 1311562458759457584791796594609604637921378591492589988607432950871660076178\ 29314677360940743708797610042191545109720702273847676584908166123256611139419\ 83508344169088256186269827678784028383175393607711788758284665710648344403795\ 90888128512*x^26 + 8057056076383003061296945848123227201276755796879748845670\ 64626362221558495332971321891764494799562123463113480592278813967926662908658\ 86521973417207736168961951169781218809410076543243341033901058548861755862477\ 3727062986918218707238912*x^27 - 62783547955968207144752946081365673159617112\ 25555059772725590063586961519124458452085221820783645903665347090567839472154\ 92652580275622761039963349568535376759592802438542750822111398789170244372796\ 03156959160387482429135906552915427328*x^28 - 3739327980881051783506001062125\ 83912608565744809611594412039846186021675327356277772263057692750949330640121\ 18023191003474789238226901066296823161939404138732683838150512652325986409180\ 8991058182183693031317476712365884642199750049792*x^29 + 1000828893853304647864505646971206331120935430094207004528696306607119613204\ 95781582122469386011879155101375210004871136631052744286543965334138564277302\ 32445052736925843021955927277218785168735749867388903633120159470659190380298\ 24*x^30 + 2013564462733980452017706134370082420604834772483834469636233722601\ 54183411337895015014425127791436346820655135152436338066875005415165042330039\ 66583095630591887530180555797228329615596908336730308023114495130929495168657\ 024614400*x^31 + 421736634822581302061721797329036311441462694408327430299620\ 56420751843172772840514605762637575355139136502611652217805164955199943456058\ 14209394574241604808226901254582093060937923159251874471506787748708483096264\ 5697805942784*x^32 - 58235871397471574980457969271137123825130906964304765702\ 65604740607671496582543492588843882324186520525911072919252199178026115631643\ 07504603003894440375516824063081831269691438524047789881308845599434060059848\ 506374008864768*x^33 - 339379909914632640043429528045564417445272729547783303\ 80471967171378681997654348435501785582572985391012542588213954507661048548742\ 92345026742286891054800604542471077865875486247169686277604573343503216099221\ 842787456516096*x^34 + 847625995470128594468580793175914299415319124311158533\ 17133531648507963001926778059830038697645070094581253973791273579007030384187\ 38545564301494582179876306357414401696440085289351690944289112389371110342001\ 301022310400*x^35 + 127736364993543136711649165712418053808990712647444684948\ 06800869246609215237670802516902407474433870621224946501506929899535379521756\ 70547511578520063157666146463850052482203338869444554559274609768741673331568\ 73568256*x^36 + 9000165973822015087050126322584296617186287667635713898378639\ 68458136079144223043240545243628174570677806724513649504621449811392453298288\ 97303238934797985227794090688595110599283118480251370884063290180183458316288* x^37 - 33067336101398624733872717309882600737002373490139846908200236564024\ 41493803708110040636183196632641044118911646380814990848264807919619691158505\ 812859730089041474259879591998826696676522884659144013466216012185600*x^38 - 1036361229599094329284000484801470763988204672038025961290033390084304295616\ 50606541608468109421407977194499109804231816105530026279196019307723884861768\ 55404010022017014033124387479080887331884500245621514436608*x^39 + 5846880032907070563240454766667227905217658130744377549114390406849659778738\ 27644346107385861007627142459469009801129953335075342420180806754348312533473\ 21794971140868836197668084600178115644903314692193124352*x^40 + 3884203042910339958609002577195459602323830040019257055228987406050827442340\ 20454114077052076841514628815639547056790299673153049250870346276969483160334\ 993491477178230539939454854612600544643071830407512064*x^41 - 3886119156189960508741095376188382869088705642028055825047737892076862961850\ 39805026402381267475908497125167923537607367677345492254973252673542002931309\ 446344032210394959585788099594318886894622772035584*x^42 - 9422564999411430565881799192024350625055414611491470785299154466642265990281\ 23148386494267761249514036498834297579251012810071305113647645481303479735386\ 0627405451887351370382566839455187897441400651776*x^43 - 1655219707715692829129226842125917156706413963854789844101752056425645771610\ 00556817238112686703433342336764209578041903022284128520981578781928596344759\ 61776207496978002522399237196313513840351379456*x^44 + 1409365356811162520197844659673280387227254795930083795108148922821477714233\ 67936520637311017710176028760859544644107933116953906076983219286723303708356\ 395550957483837920094767398156731154733989888*x^45 + 7127469635133458341162269304267223026093705161148319460922690259048703757131\ 55961267812502745064377108645715886617505767936571438070725462137550234312092\ 154169239728698253646147263141249208549376*x^46 - 4590915485949155926691256205242848630609560231808799989686088984452002343430\ 44854996369041357336976818960189782457162396645717442772605685065172211508775\ 907159760218538118117612755192907825152*x^47 - 1395125980542702267170342834173396208836861619118218118406052833296164223452\ 16703813007248097288790675334015586414436234891455081441634232169230110353597\ 92111336306929795175640728073033220096*x^48 - 3574468709161486830576223239715\ 68738512921321246385426682548778454923115901211913936908365290993586460976514\ 49485143114419636710384039300907271677665214993048432413605793406347771207745\ 536*x^49 + 119227358362517473782720833260699568425741818511458653603157281842\ 31267696474294244969021769093102474039854257907669323932424114233916220152296\ 8336622387613412884777818147509259588337664*x^50 + 9563333780576305963495689791460201066883463671180588399429713059311217068748\ 71157704514595141689017826503428725651925669146967774357885268427571119054046\ 717846598984098741896072921088*x^51 + 115472831573020110173649341580605048541\ 51218543124211608517232555545891642525146357640803464438115933661426989691611\ 37557495754466615717763092364946915456386000246296481783097589760*x^52 - 1085929474299766146132506757479899053911683166062930929066275942662317824130\ 31481772835033879454396880661511467712804487837158922505453709230517359046263\ 99665236004489843437469696*x^53 - 5123138158203799897548697038433983375191969\ 86409684296489494978515990562787661661662138065085573391329726184025911323427\ 62479943845819300971072127581651247853951254857504522240*x^54 - 6672893838711716950851992999356682274571920399404862484025605236532387149465\ 42464347340443358095784589837278158631310139538913224273821508103371092438259\ 7765007616048627712*x^55 + 70632215794059258754652294382501044677027655111687\ 23111499048663863939546604878584165271453333163424226091492317898663642878464\ 08020124804749340842530807010421203462520832*x^56 + 2370824959671454283086821070391806920921945703362650668363357113825825903697\ 67621297556878932332270994071953089803177345586367971832140533248692844421420\ 5710855506493440*x^57 - 24616152378925671730023513721869861860362108846180674\ 40915416977647646470541650983745125118479666991901136301199757510799707117132\ 988722144555997558772549159573520384*x^58 - 411915993648757256662265135981569\ 04341015350225303274390420771763067841057495181661620688402362529072388044469\ 931431074477095901779471867087006349349069860919836672*x^59 - 8834639181612180321258394043502267381795135765716073150462578560956156594128\ 53938411771093626816860458816285144585618058932811497842476846003786857192444\ 20677632*x^60 + 3066348779381474704218018972874148947959144651958690651760382\ 50272211574866384491689356888465693838431767386228123748480628990512214681943\ 721139792661165637632*x^61 + 197261738534335993303820745433300802190113890643\ 10801312169614897613205877653725365235800648269959301882243978013783491095424\ 02717791113550291363470430437376*x^62 + 1295544572865972896709995479537082371\ 06984367588123313359928578746520508482409909773203000000535531517310654290465\ 4070400662793324458209569007335332904960*x^63 - 2020100160307105228932337380548322057447359726456781066929019177333547760018\ 2083357602423555222103847431821591531897698934610427683304252920429576978432* x^64 - 65423533986701105688620015587632946076503424529299706661192723441117\ 58338926666352753021499850438284642956124505782987203064461262707694786359119\ 0528*x^65 + 60985849053626645528240765542926135473900306480129771753365122152\ 58361720745721559416620330624846381028398606211260852095539199373382961600659\ 4560*x^66 + 87524779293929000777039350809569180991914972852091261098547893272\ 52175248440165178096134734400950610702612993083896966309406962763396700490956\ 80*x^67 + 1590110317646669622394214659258377516723236378175676734008178074630\ 437927064586578292167620632747617849478365123232290174878762669408190988288* x^68 - 54636021023402371719440564837465320930280127385858771610914942214899\ 53680876276339295345036679800610345897499084840764569906553124120690688* x^69 - 31504431010512451475979084098871206879844245271079541017436524899174\ 482803374686242608974303287977015255998168495603671329831475803586560*x^70 - 2150930295853385056026154790457336809599271167880942491871211657608410425268\ 8123243753793573856010571939499003342702175740834938355712*x^71 + 2793174464379655169414730811624593157780200416342961258377073168476917058065\ 24121454272345933462710107705330611456238687113623633920*x^72 + 9251011316076657185918243612651985756178071309917147912315037035354402519082\ 59793851207539192518925792728423216420999854353809408*x^73 - 4558752950054646007789041086458452502499416190085824664604200676676735395512\ 18433044572192307299036822139330103203253796732928*x^74 - 1030632194027146488998831221568849145204611836184992831870291635418337523978\ 4025264659601742327441918870400437296154556760064*x^75 - 2335469920459678621361082808399307245988563214149756615692358057637074782006\ 1110530310946932440057678546148534180202414080*x^76 + 3645333301202753417015686799124955122524431583038608415819203540147462107383\ 7490847407835275645975891579144749954629632*x^77 + 3395113949124229327793061498370030854197502206371667768702624655028147530810\ 76958319641820061461421698388504759762944*x^78 + 6002100605079608448210059918898105103780035419425451554213039104354726558177\ 21735530179094933390510339510841114624*x^79 - 1818555180285952529852178182302\ 60053053822575719062399772209235026592424389386378105012431435144664285701157\ 6832*x^80 - 11036689012703585253207243192156298370743786675070169714008689714\ 099763520440339721180982072447241144688967680*x^81 - 1034051796107905614899790524306412967889845691870348931802015511806482870191\ 4973196384461234257300610351104*x^82 + 80511825938634738037899654872311478480\ 511224916305256976390904403342219458470938665697603141327938125824*x^83 + 2846761898515002339715605331051135452398978368082504825190367796057989824292\ 46322485435017699006611456*x^84 - 6711785473182938257180082378426738333844844\ 7749613056775346997289626781007189728674456156093022208*x^85 - 2560720169842453591415765502578258674290368717390750730684823872285383813207\ 566650637913784582144*x^86 - 488107583132386002267430438864760070773143504716\ 8870969463041805187198087665970180637444800512*x^87 + 9982571954314078902863096938154449202514431221416179680150651059478065953108\ 106936034787328*x^88 + 563185296262960314439483124516395329053357017656011469\ 14230999802249295071489813725052928*x^89 + 3559594508919865062256509133782638\ 7358365193520096544959769255492911015818645613838336*x^90 - 3229907031209891919165531354487268428781495729598740736371359353722954228453\ 11254528*x^91 - 8073743585490407827360533399293821865974224363340767859645142\ 22403459740975759360*x^92 + 6499333158038229358863105729620020055950332034098\ 32113901007899922889369976832*x^93 + 5894700734565894323828918312115762756430685053003433982333786818380629540864* x^94 + 5719821895279533249877151535184322402642538613028925828656133312828407808* x^95 - 22729051780761950338873403556289654029201151603694374514097275717812224* x^96 - 63131575309043616931291728397715287563876696044693268526720880738304* x^97 + 15105201366192867712223980213428780192048349144407490632100085760* x^98 + 302333046129737801817718098577401521911391197256375139827712000* x^99 + 361507416994955815361071004048526200551309065660978211848192*x^100 - 674142153105709528262643761586784057109253450699651416064*x^101 - 2212429289403193237155290106798670601907035587800465408*x^102 - 684992248321422338928586013578560568999506176114688*x^103 + 5924852535865625724418150897471844640917620260864*x^104 + 9523326448443356570094328457531102468184735744*x^105 - 3454816341056899280602972119241523724288000*x^106 - 26948604248472932864783303242216227471360*x^107 - 25279173693397949783888336426624876544*x^108 + 22700427238690660967467799918149632*x^109 + 71486815861883282910103609933824* x^110 + 46953235735322217910292054016*x^111 - 46813422306120230170791936*x^112 - 110461405662167087185920*x^113 - 71885294402909110272*x^114 + 22895518509858816*x^115 + 79456787896320*x^116 + 69208390656*x^117 + 32814720*x^118 + 8640*x^119 + x^120;