K idZddlZddlmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>ddl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLddlMmNZNddlOmPZPddlQmRZRmSZSmTZTmUZUmVZVmWZWmXZXddlYmZZZdd l[m\Z\dd l]m^Z^m_Z_m`Z`dd lambZbdd lcmdZddd lemfZfddlgmhZhddlimjZjddlkmlZlmmZmmnZnddlompZpmqZqddlrmsZsmtZtmuZumvZvmwZwmxZxddlymzZzddl{m|Z|ddl}m~Z~ddlmZddlmZmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZdd lmZdd!lmZdd"lmZdd#lmZmZmZmZmZdd$lmZmZmZmZmZmZmZmZmZmZmZd%Zd&Zd'Zd(Zd)Zd*Zd+Zd,Zed-Zed.Zd/Zd0Zd1Zd2Zd3Zd4Zd5Zd6Zd7Zd8Zd9Zd:Zd;Zd<Zd=Zd>Zd?Zd@ZdAZdBZdCZdDZdEZdFZdGZdHZdIZdJZdKZdLZdMZdNZdOZdPZdQZdRZdSZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZdrZdsZdtZduZdvZdwZdxZdyZdzZd{Zd|Zd}Zd~ZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZdZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHd„ZIdÄZJdĄZKdńZLdƄZMdDŽZNdȄZOdɄZPdʄZQd˄ZRd̄ZSd̈́ZTd΄ZUdτZVdЄZWdфZXy)zBTests for user-friendly public interface to polynomial functions. N)<PolyPurePolypolyparallel_poly_from_exprdegree degree_list total_degreeLCLMLTpdivprempquopexquodivremquoexquo half_gcdexgcdexinvert subresultants resultant discriminant terms_gcd cofactorsgcdgcd_listlcmlcm_listtruncmoniccontent primitivecompose decomposesturmgff_listgffsqf_normsqf_partsqf_listsqf factor_listfactor intervals refine_root count_roots all_roots real_rootsnroots ground_rootsnth_power_roots_polycancelreducedgroebner GroebnerBasisis_zero_dimensional_torational_factor_listto_rational_coeffs) MultivariatePolynomialErrorExactQuotientFailedPolificationFailedComputationFailedUnificationFailedRefinementFailedGeneratorsNeededGeneratorsErrorPolynomialErrorCoercionFailed DomainError OptionError FlagError)DMPfield)FFZZQQZZ_IQQ_IRREX) RealField) ComplexField)lexgrlexgrevlex)S4TransitiveSubgroups)Add)_aresame)Tuple)Expr) Derivativediffexpand) _keep_coeffMul)FloatIIntegerRationaloopi)Pow)Eq)S)Symbol)imre)exp)tanh)sqrt) Piecewise)sin)Matrix) MatrixSymbol)rootof)signsimp)iterable)SymPyDeprecationWarning)raiseswarns_deprecated_sympywarnstooslowXFAIL) abcdpqtwxyzcRt||D]\}}t||z dkDsyy)Ng|=FT)zipabs)rruvs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/tests/test_polytools.py _epsilon_eqrYs3Aq 1 q1u:  ct|t|k(ret|r4t|t|k(rtdt ||DSyt |t xr|j|dSy)Nc3:K|]\}}t||ywN) _strict_eq).0rrs r z_strict_eq..dsB1:a+BsFTstrict)typerzlenallr isinstancereq)rrs rrr`se Aw$q' A;1vQBAq BBBa&?4144$+? ?rcRttt}t5|ttzdddt5|ttzdddt5|ttz dddy#1swYTxYw#1swY;xYw#1swYyxYwr)rrr}rqrs rtest_Poly_mixed_operationsrms Q A  ! CF   ! CF   ! CF  s#BB)BBBB&ch td}tjdddt|jt |d|dg|k(sJtjdddt|jt |d|dg|k(sJtjdddt|jt |d|dg|k(sJtjdddt|jt |d|dg|k(sJtjdddtt f|jt |d|d g|dgg|k(sJtjdddt jt tdtdgtk(sJtjdddtd jt tdtdgtk(sJtjdddttjt tdtdgtk(sJtjdddttjt tdtdgtk(sJtjdddt jt tdtdgtk(sJtjdddtd jt tdtdgtk(sJtjdddttjt tdtdgtk(sJtjdddttjt tdtdgtk(sJtjd tt itdttt tztdk(sJtjd t itdtt tztdk(sJtjdditt fdttt ztt dk(sJtjdt ittfdtt tzttdk(sJy)Nrrgensdomain)rr)rrrrrrTrrNrF)r compositerUrrrPrr) rOr from_dictrreprLrrPrQrurKs rtest_Poly_from_dictrwsh 1A >> ! 1Q ((+sAaD!A$</C DD D >> ! 1Q ((+sAaD!A$</C DD D >>1 ..1cS!A$!q5I JJ J >>1 ..1cS!A$!q5I JJ J >>1a0 18 adAaD\AaD6$:A > ?? ? >>aA,Q / 3 3sBqE2a5>27N NN N >> ! 1D **-#beRU^R1H II I >> ! 1R )),RUBqENB0G HH H >> ! 1R )),RUBqENB0G HH H >> $$'C31r!u~r+B CC C >>$ 003sBqE2a5>27N OO O >>2 //2sc2a5"Q%."6M NN N >>2 //2sc2a5"Q%."6M NN N >>4Q.qE B SVAXq& '' ' >>4)!u = QqS!D! "" " >>61+QFe D QqS!Qt$ %% % >>61+QFe D QqS!Qt$ %% %rctd}tjddgt|jt |d|dg|k(sJtjddgt|jt |d|dg|k(sJtjddgtjt t dt dgt k(sJtjddgtdjt tdtdgtk(sJtjddgtt jt t dt dgt k(sJtjddgttjt tdtdgtk(sJtjd d gtjt td gtk(sJtjd d gtjt td td gtk(sJttd y) NrrrrrrTrr?cFtjggttfS)Nr)r from_listrrrrz%test_Poly_from_list..st1a&0Qr) rOrrrrrLrPrQrTr|r?rs rtest_Poly_from_listrs 1A >>1a&q 3 7 73!ad|Q;O OO O >>1a&q 3 7 73!ad|Q;O OO O >>1a&q ) - -beRU^R1H HH H >>1a&q 5 9 9S"Q%AQS=T TT T >>1a&q 4 8 8CA1PR>1a&q 4 8 8CA1PR>1c( + / /33y"3E EE E >>3( + / /33C7I23N NN N &(QRrcttdzttttdztdtttztttt dtj k(sJtj j tddgk(sJtj tj ttdtdgtk(sJtj tj ttdtdgtk(sJtj tk(sJtj tj tddgk(sJtj ttj ttdtdgtk(sJtj ttj ttdtdgtk(sJtj tttdztd k(sJttfd ttfd ttfd tj ttfttdzttd k(sJtj ttftttdzttd k(sJtj ttftttdzttdk(sJtj ttfdttdzttdk(sJt dtj k(sJtj tj ttdtdgtk(sJttfdtj j tddgk(sJtj tk(sJtj ttj ttdtdgtk(sJttfdtj tj tddgk(sJt dtj k(sJtj tj ttdgtdtdggtk(sJtj tj ttdgtdtdggtk(sJtj j tdgddggk(sJtj ttttztttk(sJttfdtj ttttttztttk(sJttfdtj ttttttztttk(sJttfdtj ttttztttk(sJttfdtj ttttttztttk(sJttfdtj ttttttztttk(sJttfdtj ttfk(sJtj ttftj ttdgtdtdggtk(sJtj ttftj ttdgtdtdggtk(sJtj ttfj tdgddggk(sJtj ttfj ttdgtdtdggtk(sJtj ttftj ttdgtdtdggtk(sJtj ttftj ttdgtdtdggtk(sJtj ttfj tdgddggk(sJtj ttfdj ttdgtdtdggtk(sJtj ttfdj ttdgtdtdggtk(sJy)NrrrmodulusrrrZZ[x]c<tjtSNrr from_polyr)rfsrrz%test_Poly_from_poly..s4>>!!A#FrcDtjttSrrrrrPrsrrz%test_Poly_from_poly..4>>!!B#GrcDtjttSrrrrrQrsrrz%test_Poly_from_poly..rrrPrQrrzFF(3)c:tjtSNr)rrrQgsrrz%test_Poly_from_poly..s4>>!B#?rrcDtjttSrrrrrQrsrrz%test_Poly_from_poly..rrcDtjttSr)rrrrPhsrrz%test_Poly_from_poly..rrcDtjttSrrrsrrz%test_Poly_from_poly..rrc<tjtdSNrr)rrrrsrrz%test_Poly_from_poly..4>>!!Q#GrcDtjttSrrrsrrz%test_Poly_from_poly..rrcDtjttSrrrsrrz%test_Poly_from_poly..rrc<tjtdSrrrsrrz%test_Poly_from_poly..rrTr) rrrPrrOrrrLrQr|rH)rrrrs@@@@rtest_Poly_from_polyrs;  QUAb!A QUAq!A QUAq$A 1A >>!  !! ! >>!A & * *c1Q41,.B BB B >>!B ' + +sBqE2a5>2/F FF F >>!B ' + +sBqE2a5>2/F FF F >>!! $ )) ) >>!!A . 2 2c1Q41,6J JJ J >>!!B / 3 3sBqE2a5>27N NN N >>!!B / 3 3sBqE2a5>27N NN N >>!! $QUAg(F FF F >FG >GH >GH >>!1a& )T!a%Ad-K KK K >> Ar #&*1q5!Qt&D EE E >> Ar #&*1q5!Qt&D EE E >> A #&*1q5!Qw&G HH H 1A >>!  !! ! >>!B ' + +sBqE2b6?B/G GG G >?@ >>!A & * *c1Q41,.B BB B >>!! $ )) ) >>!!B / 3 3sBqE2b6?B7O OO O >GH >>!!A . 2 2c1Q41,6J JJ J 1A >>!  !! ! >> " cS2a5'BqE2a5>!:B? @@ @ >> " cS2a5'BqE2a5>!:B? @@ @ >>!A & * *cAaD6AaD!A$<2H!.L LL L >>!! $QUAbe(D DD D >GH >> "Q% !$(Q"Q%$@ AA A >GH >> "Q% !$(Q"Q%$@ AA A >GH >>!! $QUAbe(D DD D >GH >> "Q% !$(Q"Q%$@ AA A >GH >> "Q% !$(Q"Q%$@ AA A >GH >>!1a& )Q .. . >> Ar ##&3#1wA1.G*L MM M >> Ar ##&3#1wA1.G*L MM M >> Aq ""%#qtfqtQqTl-CQ)G HH H >> A sRUGbeRU^#> Ar ##&3#1wA1.G*L MM M >> Ar ##&3#1wA1.G*L MM M >> Aq ""%#qtfqtQqTl-CQ)G HH H >> Ad $$'C3A"Q%A/H"+M NN N >> Ad $$'C3A"Q%A/H"+M NN Nrc ttdttdtd}tjt dz|j t|d|dg|k(sJtjtdz|j t|d|dg|k(sJtjt dzt |j t|d|dg|k(sJtjtdzt|j t|d|dg|k(sJtjt tz|j t|dg|d|dgg|k(sJtjt tzt t|j t|dg|d|dgg|k(sJtjt dzj ttdtdgtk(sJtjtdzj ttdtdgtk(sJtjt dzt j ttdtdgtk(sJtjtdztj ttdtdgtk(sJtjt dztj ttdtdgtk(sJtjtdztj ttdtdgtk(sJtjt dzt tj ttdtdgtk(sJtjtdzttj ttdtdgtk(sJtjt dzt ttj ttdgtdggtk(sJtjtdzt ttj ttdtdggtk(sJy) NcHtjtjSr)r from_exprrmZerorrrrz%test_Poly_from_expr..sT^^AFF%;rc>tjtdSNr)rrrmrrrrz%test_Poly_from_expr..sT^^AaD%9rrrrrrr) r|rErOrrrrrLrrP)F3s rtest_Poly_from_exprrs ;< 9: AB >>!a% + / /31r!u~r3J JJ J >>!a% + / /31r!u~r3J JJ J >>!a%2 . 2 2c2a5"Q%."6M MM M >>!a%2 . 2 2c2a5"Q%."6M MM M >>!a% + / /3A"Q%A7PRT3U UU U >>!a%Ab 1 5 5r!ug1rRSu~=VXZ9[ [[ [ >>!a% $ $RUBqENB(? ?? ? >>!a% $ $RUBqENB(? ?? ? >>!a% # ' '31r!u~r+B BB B >>!a% # ' '31r!u~r+B BB B >>!a% + / /31r!u~r3J JJ J >>!a% + / /31r!u~r3J JJ J >>!a%2 . 2 2c2a5"Q%."6M MM M >>!a%2 . 2 2c2a5"Q%."6M MM M >>!a%Ab 1 5 5r!ug1w=OQS9T TT T >>!a%Ab 1 5 5r!uben=Mr9R RR Rrc ttdztzdzd}ttdztzdzd}tj|}tj|}t |t t |t t k(sJt |t t |t t k(sJt |t dt |t |k(sJt |t dt |t |k(sJy)NrrrrT extension)rxrrQalgebraic_fieldrrrU)r1r2K1K2s rtest_Poly_rootof_extensionr1s 1q1 a B 1q1 a B  B B  B B A;$r1R0 00 0 A;$r1R0 00 0 A &$r1R*@ @@ @ A &$r1R*@ @@ @rcttdztzdzd}ttdztzdzd}tj||z}t |t z|zt dt |t z|zt |k(sJy)NrrrTrr)rxrrQrrr)rrK12s r,test_Poly_rootof_extension_primitive_elementr<sv 1q1 a B 1q1 a B  R"W %C 1r 1 -bdRi31O OO Orcttdztzdzd}tj|}t |tt |tt k(sJt |tdt |t|k(sJy)NrrrTr)rxrrQrrrU)rrs r(test_Poly_rootof_same_symbol_issue_26808rDsi 1q1 a B  B B A;$r1R0 00 0 A &$r1R*@ @@ @rc.ttdztdzzdz d}ttdztdzzdz d}tdz tdzzt|zz|z d|dzzz}|jtdj |k(sJy)NrrrrrTr)rxrrras_polyas_exprrrrs r#test_Poly_rootof_extension_to_sympyrMs 1q!t a #B 1q!t a #B A1 qtb 1RU7*A 199Q$ ' / / 1Q 66 6rc tt}t|tdzt|jt |tdzg|k(sJ|j }t|tdzt|jt |tdzg|k(sJtt}t|tdzt|jt |tdzg|k(sJ|j }t|tdzt|jt |tdzg|k(sJtjt}t|tdtdgt|jt |tdtdgg|k(sJ|j }t|tdtdgt|jt |tdtdgg|k(sJtjt}t|tdtdgt|jt |tdtdgg|k(sJ|j }t|tdtdgt|jt |tdtdgg|k(sJtjt}t|ddgt|jt |ddgg|k(sJy)Nrr) rPrrrrrL get_fieldrQ old_poly_ringrrf)doms rtest_poly_from_domain_elementrVs Q%C AaC!C ( , ,S1XJ0D DD D --/C AaC!C ( , ,S1XJ0D DD D Q%C AaC!C ( , ,S1XJ0D DD D --/C AaC!C ( , ,S1XJ0D DD D  1 C RUBqEN#Qs 3 7 73RUBqEN@S?TVY;Z ZZ Z --/C RUBqEN#Qs 3 7 73RUBqEN@S?TVY;Z ZZ Z  1 C RUBqEN#Qs 3 7 73RUBqEN@S?TVY;Z ZZ Z --/C RUBqEN#Qs 3 7 73RUBqEN@S?TVY;Z ZZ Z  Q C QF Qs + / /3QF }c3J JJ Jrc ttdttdttdttdttdttdttdttdttd ttd ttd ttd ttd ttdttdttdttdttdttdttdttdt dt dt k(sJtt dzztt zztz}t tttdt |k(sJt ttttgt |k(sJt tttgt |k(sJt tttft |k(sJt it tt}|jt ttfk(r|jdk(sJt t tt zttzzt tt t tt zttzzt k(sJt dt dzzdt zzdzdjgdk(sJt dt dzzdt zzdzdjgdk(sJt dt dzzdt zzdzd jgd!k(sJtt d"t dt dzzd#z t t#dd#zzdzdjt#dd#t#dd#dgk(sJt%t dt dzzd#z t t#dd#zzdzd jgd$sJt d%t dzzd&t zzdzdjgdk(sJt d%t dzzd&t zzdzdjgdk(sJt d%t dzzd&t zzdzd jgd!k(sJtt d't d(t dzzd)t zzdzdjt#d*d+t#d,d+dgk(sJt d(t dzzd)t zzdzd jgd-k(sJt dddd.t tt t dztzdt ztdzzzdt ztzzt tk(sJt t dzdzt&/j)t+j,t&k(sJdt d#zzt d0zz t dzzt dzz d1z}t |t d2d34t dt d#zzt d0zz t dzzt dzz dzt d2d34k(sJt |t d2d54t dt d#zzd6t d0zzzt dzzd6t dzzzdzt d2d54k(sJd+d7z}t d8t |d54j|dz k(sJt/t t dzt zd9zj)t0sJt/t t dzt zt&zd9zj)t2sJy):Nc:ttdzttSNrrrrrrrz"test_Poly__new__..psDQ1$5rc\tttzttttSrrrrrPrrrrz"test_Poly__new__..rDQ1RU$Crc\tttzttttSrr rrrrz"test_Poly__new__..sr rc.tttdS)NT) symmetricr rrrrz"test_Poly__new__..usQT :rc>ttdztdtS)Nrr)rrrrrQrrrrz"test_Poly__new__..vsQUAq Drc>ttdzttdS)NrT)rgaussianrrrPrrrrz"test_Poly__new__..xsQUAb4 Hrc6ttdztddS)NrrT)rrr rrrrz"test_Poly__new__..ysQUAq4 HrcRttdztttdgS)Nrrrr)rrrPrsrrrrz"test_Poly__new__..{sQUAbT!WI NrcJttdztdtdgS)Nrrrr)rrrsrrrrz"test_Poly__new__..|sQUAqT!WI Nrc>ttdzttdS)NrTrrrrrrz"test_Poly__new__..~sQUAbD Irc6ttdztddS)NrrTrr rrrrz"test_Poly__new__..sQUAqD Irc>ttdzttdS)NrTrgreedyrrrrrz"test_Poly__new__..sQUAb Frc>ttdzttdS)NrTrrNrrrrrz"test_Poly__new__..sQUAb Erc>ttdzttdS)NrFrrrrrrz"test_Poly__new__..sQUAb Grc>ttdzttdS)NrFr rrrrrz"test_Poly__new__..sQUAb Frc6ttdztddS)NrrrY)rorderr rrrrz"test_Poly__new__..sQUAq(Prc4ttdztdS)NrrYr$r rrrrz"test_Poly__new__..sQUAW(ErctdddS)Nrrrrrrrrz"test_Poly__new__..sTaA,%7rctddgSNrrr(rrrrz"test_Poly__new__..sT1a&\rctdS)Nrrr(rrrrz"test_Poly__new__..s T&\rctdSrr(rrrrz"test_Poly__new__.. T!Wrzx-xrr)rrrrrrPr)rrrrQrT)@@rcdtdtdzzdz ttddzzdzdS)NrrrrrPr)rrrhrrrrz"test_Poly__new__..s/4!Q$q1Xa^3C(Ca(GPT#Urr)g333333?g?rr/r0cJtdtdzzdtzzdzdS)N@r@rrPrr rrrrz"test_Poly__new__..s#4AqD3q5(81(UV  !Q$q1Xa^##a' 66@jlxPQST~W_`acdWeghFi jj j  Qq!tVAX(1a.( (1 ,T:EEG ZZ Z AqD3q5 1$T 2 = = ?9 LL L AqD3q5 1$T 2 = = ?9 LL L  AqD3q51T ++5:JK AqD3q5 1$T 2 = = ?HRQSDTV^_aceVfhiCj jj j AqD3q5 1$T 2 = = ?? RR R Aq11a 8 QT!Vac!Q$h 1Q &1- .. . 1qA & 1 1 3r7I7I!7L LL L !Q$A 1q1u$u,A 1et 4 Qq!tVad]QT !AE )A -q%    1eu 5 Qq!tVeAqDj 1a4 '%A+ 5 91e - -- - CA AqE 2 : : <A EE E d1a4!8c>*557 CC C d1a4!8a<#-.99;\ JJ Jrclttdzdzjtdzdztfk(sJyr*)rrargsrrrtest_Poly__argsrFs. 1q>  1a4!8Q- // /rc8 tttz ttz ztjtfk(sJtttz ttz ztjtfk(sJtttz ttz ztjtfk(sJtttz ttz zttjttfk(sJtttz ttz zttjttfk(sJtttz ttz ztttjtttfk(sJtttz ttz ztttjtttfk(sJtttz ttz ztttjtttfk(sJtttz ttz zjtttfk(sJtttz ttz zdjtttfk(sJtttz ttz zdjtttfk(sJtttz ttz zdjtttfk(sJtttz ttz ztttdjtttfk(sJtttz ttz zdjtttfk(sJtttz ttz zdjtttfk(sJtttz ttz zdjtttfk(sJtttz ttz ztjtttfk(sJtttz ttz ztjtttfk(sJtttz ttz ztjtttfk(sJtttz ttz ztttdjtttfk(sJtttz ttz zdd jtttfk(sJtttz ttz zdd jtttfk(sJy) Nz x > p > q)sortz p > x > qz p > q > xrwrtrrzq > x)rJrHzp > x)rrrrrrrrtest_Poly__gensrKs QQ # ( (QD 00 0 QQ # ( (QD 00 0 QQ # ( (QD 00 0 QQA & + +1v 55 5 QQA & + +1v 55 5 QQAq ) . .1a) ;; ; QQAq ) . .1a) ;; ; QQAq ) . .1a) ;; ; QQ % %!Q 22 2 QQk 2 7 7Aq!9 DD D QQk 2 7 7Aq!9 DD D QQk 2 7 7Aq!9 DD D QQAq{ ; @ @Q1I MM M QQS ) . .1a) ;; ; QQS ) . .1a) ;; ; QQS ) . .1a) ;; ; QQQ ' , ,Aq 99 9 QQQ ' , ,Aq 99 9 QQQ ' , ,Aq 99 9 QQAqc 2 7 7Aq!9 DD D QQSw 7 < <Aq II I QQSw 7 < <Aq II Ircttjtdttk(sJttdz jtdttk(sJy)Nrrr)rrzerorPrQrrrtest_Poly_zerorNsD 7<<41R0 00 0 !9>>T!Qr2 22 2rcttjtdttk(sJttdz jtdttk(sJy)Nrrr)rronerPrQrrr test_Poly_onerQsD 7;;$q!B/ // / !9==DAb1 11 1rc"ttdtd}tttdj tt t dddt|dggg|t|d|dgg|fk(sJttdttdttd ttdztj ttdztddttdtdgtttdtdgtfk(sJttdztd j ttdztddttdtdgtttdtdgtfk(sJttdztj ttdztd ddttdtdgtttdtdgtfk(sJttdztj ttdztt ddttdgtdggtttdgtdggtfk(sJttdztd j ttdztt ddttdgtdggtttdgtdggtfk(sJttdztj ttdztt d ddttdgtdggtttdgtdggtfk(sJttdztt j ttdztddttdgtdggtttdgtdggtfk(sJttdztt d j ttdztddttdgtdggtttdgtdggtfk(sJttdztt j ttdztd ddttdgtdggtttdgtdggtfk(sJttdztt j ttdztt ddttdgtdggtttdgtdggtfk(sJttdztt d j ttdztt ddttdgtdggtttdgtdggtfk(sJttdztt j ttdztt d ddttdgtdggtttdgtdggtfk(sJttdztj ttdzt tddttdtdggtttdtdggtfk(sJttdztd j ttdzt tddttdtdggtttdtdggtfk(sJttdztj ttdzt td ddttdtdggtttdtdggtfk(sJttdzt tj ttdztddttdtdggtttdtdggtfk(sJttdzt td j ttdztddttdtdggtttdtdggtfk(sJttdzt tj ttdztd ddttdtdggtttdtdggtfk(sJttdztt j ttdzt tddttdgtdggtttdgtdggtfk(sJttdztt d j ttdzt tddttdgtdggtttdgtdggtfk(sJttdztt j ttdzt td ddttdgtdggtttdgtdggtfk(sJttdzt tj ttdztt ddttdtdggtttdtdggtfk(sJttdzt td j ttdztt ddttdtdggtttdtdggtfk(sJttdzt tj ttdztt d ddttdtdggtttdtdggtfk(sJttdztztt jttdztdztd ttdztztd ttdztdztd fk(sJtdt\}}}tttztd j ttt ztztd ddt||dg|j#t||z|dg|j#fk(sJtttztd j ttt ztztd ddt||dg|j#t||z|dg|j#fk(sJtt$dtt&dzt&dz ztzt&d }tt&dzt&dz ztzt&d }|j |dd|j(|j(fk(sJy)NcFttjtSrrr_unifyrrrrrz"test_Poly__unify..sd1gnnQ&7rrrrrrcttttdjtttdS)NrrrrTrrrrz"test_Poly__unify..s$d1a&;&B&B41VWCX&YrczttttjtttdSNrr)rrrrUrrrrz"test_Poly__unify..s"d1am&:&:41a;P&QrcztttdjttttSrXrTrrrrz"test_Poly__unify..s"d1a&;&B&B41a=&QrrQrTrzQQza,bZZ[a]zZZ(a,b)zZZ(a)cltttdztdztzztddS)NrTrMZZ(x)r)rrrrrrrrz"test_Poly__unify..Fs'4QTAqDF]AT(JSZ#[rzQQ(x)zQQ[x])r|rCrOrrrUrrLrPrQrfrRunifyrsrNrr to_domainrHrr)rFABrrs rtest_Poly__unifyrbs  78 AB 1a ' 'Q1(= >qr B beWbM2beRU^$4b 9G; ;; ; YZ QR QR Aq> a!eQ 0 4 beRU^R #r!ubenb"9: ;; ; Aq & - -d1q5!n =ab A beRU^R #r!ubenb"9: ;; ; Aq> a!eQt!< =ab A beRU^R #r!ubenb"9: ;; ; Aq> a!eQ!2 3AB 7 r!ug1w  $cBqE7RUG* a!eQ$!? @ D r!ug1w  $cBqE7RUG* a!eQ!2 3AB 7 r!uben r "C"Q%A(8"$=> ?? ? Aq & - -d1q5!Q.? @ D r!uben r "C"Q%A(8"$=> ?? ? Aq> a!eQ$!? @ D r!uben r "C"Q%A(8"$=> ?? ? Aq!  # #DQN 3AB 7 r!uben r "C"Q%A(8"$=> ?? ? Aq!D ) 0 0a!eQ @ D r!uben r "C"Q%A(8"$=> ?? ? Aq!  # #DQ$$? @ D r!uben r "C"Q%A(8"$=> ?? ? Aq!  # #DQ1$5 6qr : r!ug1w  $cBqE7RUG* ?? ? Aq!D ) 0 0a!eQ1B CAB G r!uben r "C"Q%A(8"$=> ?? ? Aq!  # #DQ1T$B CAB G r!uben r "C"Q%A(8"$=> ?? ? 1q!D ) / /QTDG^QRV0W X !Q$(A&7 8$q!td1g~qYj:k l mm mE2GAq! !Qw ' . .tAaCE1Y/O PQRQS T a1Y &QqS!A$K(GH II I !Qw ' . .tAaCE1Y/O PQRQS T a1Y &QqS!A$K(GH II I >[\ QTAaCZ!^Qw/A QTAaCZ!^Qw/A 88A;qr?quuaeen ,, ,rcttdzdzjthk(sJttdzttzzjttthk(sJttdzttzztjttthk(sJttdzt ttzzjttthk(sJttdzt ttzztjttthk(sJttdzt ttzztt jttthk(sJtdtztdzztttjthk(sJttt tztjtthk(sJyNrrr)rr free_symbolsrrrurUrrrtest_Poly_free_symbolsrfNsc 1q> & &1# -- - 1qs  ( (Q1I 55 5 1qs A  + +1ay 88 8 1s1Q3x - -!Q :: : 1s1Q3x # 0 0Q1I == = 1s1Q3x2 . ; ;1ay HH H A1 aA & 3 3s :: : CF A  + +1v 55 5rcttdzdzjtk(sJttdztt zzjtk(sJttdztt zztjtt hk(sJttdzt tt zzjtk(sJttdzt tt zztjtt hk(sJttdzt tt zzttjtt hk(sJyrd)rrresetrrrurUrrrtest_PurePoly_free_symbolsriYs AqD1H  * *ce 33 3 AqD1Q3J  , , 55 5 AqD1Q3J " / /Aq6 99 9 AqD3qs8O $ 1 1SU :: : AqD3qs8OQ ' 4 4A >> > AqD3qs8OQr 2 ? ?Aq6 II IrcXttttttk(dusJtttttttk(dusJtttttttk(dusJttttttttk(dusJttttttttk(dusJttt ztt tttk(dusJtttt tttk(dusJttttttt k(dusJttdzdzttt dzdzt k(dusJtt dzdzt ttdzdztk(dusJtttt}tttt}|j |dusJ|j|dusJ|j |ddusJ|j|ddusJtd}t|dz tdzztdzztdztzz td}t|dz tdzztdzztdztzz td }||k(dusJy) NTrFrrrt0zQQ[x,t0]zZZ(x,t0)) rrrQrPrrrnernr)rrrks rtest_Poly__eq__rmbsq AJ$q!* $ -- - Ab !T!QZ /E 99 9 AJ$q!B/ /E 99 9 Abe $Q 2u << < AJ$q!BqE2 2u << < 1aOtAqz )e 33 3 AqMT!QZ 'E 11 1 AJ$q!Q- 'E 11 1 A1 adQh!2 2u << < A1 adQh!2 2u << < Q"A Q"A 447e   447d?? 44$4 5 (( ( 44$4 4 '' ' B r!tad{AqD 1a46)1Z @A r!tad{AqD 1a46)1Z @A Fu  rc`ttttttk(dusJtttttttk(dusJtttttttk(dusJttttttttk(dusJttttttttk(dusJttt ztt tttk(dusJtttt tttk(dusJttttttt k(dusJttdzdzttt dzdzt k(dusJtt dzdzt ttdzdztk(dusJtttt}tttt}|j |dusJ|j|dusJ|j |ddusJ|j|ddusJtttt}tt t t}|j |dusJ|j|dusJ|j |ddusJ|j|ddusJy)NTrFrrr)rrrQrPrrrrlrrs rtest_PurePoly__eq__rpsu QNhq!n , 55 5 Q" %!Q 7D @@ @ QNhq!B7 7D @@ @ Q"Q% (HQN :t CC C QNhq!BqE: :t CC C QqS!Q 8Aq> 1e ;; ; Q1 !Q /E 99 9 QNhq!Q/ /E 99 9 QTAXq !XadQh%: :t CC C QTAXq !XadQh%: :t CC CAb!AAb!A 447d?? 447e   44$4 5 (( ( 44$4 4 '' 'Ab!AAb!A 447d?? 447e   44$4 5 (( ( 44$4 4 '' 'rcttttdzdztdusJttttdzdztdusJy)NrrT)rrrrrrrtest_PurePoly_PolyrrsO htAqD1H~. 9T AA A d8AqD1H-. 5 == =rc,tdtzjtk(sJtdtzdjtk(sJtdtzdjtk(sJttdz jtk(sJt t dttdz djtk(sJttdtzjtsJy)NrrPrrQc*ttdz dS)NrrPrr rrrrz&test_Poly_get_domain..s4!D#9r皙?) rrrArPrQr|rHrrVrrrtest_Poly_get_domainrvs !9   !R '' ' !D ! , , ." 44 4 !D ! , , ." 44 4 !9   !R '' ' >9: !D ! , , ." 44 4 d3q5k,,. :: :rctdtzdzjttdtzdzk(sJtdtzdzjdtdtzdzk(sJtdtzdzjttdtzdzdk(sJtdtzdzjdtdtzdzdk(sJtt ddtzt ddzjdtdtzd zk(sJtdtzd zjdtt ddtzt ddzk(sJt td t td t td y) NrrrPrQrr6rTru皙?cRttdz dzjtSr*)rr set_domainrPrrrrz&test_Poly_set_domain..s4!a=#;#;B#?rcPttdzdjtS)Nrrr)rrrzrQrrrrz&test_Poly_set_domain..s4Aq#9#D#DR#HrcvtttzttjttSr)rrrrzrPrrrrz&test_Poly_set_domain..s!D1aO$>$>r!u$Er) rrrzrPrQrhr|rHrFrrrtest_Poly_set_domainr}ss !a= # #B '4!a= 88 8 !a= # #D )T!A#'] :: : !a= # #B '4!a+E EE E !a= # #D )T!A#'$-G GG G B!HQO3 4 ? ? EcRSeVYkIZ ZZ Z A  ' ' -hq"oa6G(STVX/6Y1Z ZZ Z >?@ >HI ?EFrczttdzdzdjdk(sJttdy)NrrrcHttdzdzjSr*)rr get_modulusrrrrz'test_Poly_get_modulus..sDAN$>$>$@r)rrrr|rGrrrtest_Poly_get_modulusrs3 1q! $ 0 0 2a 77 7 ?@Arcttdzdzdjdttdzdzdk(sJttdzdzdjdttdzdzdk(sJttdzdzjdttdzdzdk(sJttdy)NrrrrrcJttdz dzjdSr*)rr set_modulusrrrrz'test_Poly_set_modulus..s4!a=#<# % %a (DA1,E EE E >?@rcpttdzjdttdzk(sJy)Nrrr)rr add_groundrrrtest_Poly_add_groundr+ A; ! !! $QU 33 3rcpttdzjdttdz k(sJyNrr)rr sub_groundrrrtest_Poly_sub_groundrrrcvttdzjdtdtzdzk(sJyr)rr mul_groundrrrtest_Poly_mul_groundrs/ A; ! !! $QqS1W 55 5rctdtzdzjdttdzk(sJtdtzdzjdttdzk(sJy)Nrr9rr)rr quo_groundrrrtest_Poly_quo_groundrs\ !a= # #A &$q1u+ 55 5 !a= # #A &$q1u+ 55 5rctdtzdzjdttdzk(sJttdy)Nrr9cJtdtzdzjdSNrr)rr exquo_groundrrrrz(test_Poly_exquo_ground..sQqS1W (B(B1(Er)rrrr|r@rrrtest_Poly_exquo_groundrs; !a= % %a (DQK 77 7  EFrctt dztjttt dztcxk(rttdztk(sJJyr)rrrrrr test_Poly_absrsK Q?   CaR!VQ$8 JDQN JJ JJ Jrctt dztjtt dzt cxk(rttdz tk(sJJyr)rrnegrrr test_Poly_negrsI Q?   T1"q&!_$4 FQUA FF FF Frctdtjtdttdtk(sJtdttdtztdtk(sJtdtjtdttdtk(sJtdtttdtztdttk(sJtdtjtdtttdttk(sJtdtttdttztdttk(sJtdttzttdztk(sJt 5tdtt tzdddtttdzttdztk(sJdtttzttdztk(sJy#1swYlxYwNrr)rraddrr}rurrr test_Poly_addrs 1:>>$q!* %a 33 3 1:Q "d1aj 00 0 1:>>$q!* %a 33 3 1a=41: %aA 66 6 1:>>$q!Q- (DAqM 99 9 1a=41a= (DAqM 99 9 1:>T!a%^ ++ +  ! Q SV 1:>T!a%^ ++ + tAqz>T!a%^ ++ +  ;!IIctdtjtdttdtk(sJtdttdtz tdtk(sJtdtjtdttdtk(sJtdtttdtz tdttk(sJtdtjtdtttdttk(sJtdtttdttz tdttk(sJtdttz tdtz tk(sJt 5tdtt tz dddtttdz ttdz tk(sJdtttz tdtz tk(sJy#1swYlxYw)Nrrr)rrsubrr}rurrr test_Poly_subrs 1:>>$q!* %a 33 3 1:Q "d1aj 00 0 1:>>$q!* %a 33 3 1a=41: %aA 66 6 1:>>$q!Q- (DQN :: : 1a=41a= (DQN :: : 1:>T!a%^ ++ +  ! Q SV 1:>T!a%^ ++ + tAqz>T!a%^ ++ + rctdtjtdttdtk(sJtdttdtztdtk(sJtdtjtdttdtk(sJtdtttdtztdttk(sJtdtjtdtttdttk(sJtdtttdttztdttk(sJtdttztttk(sJt 5tdtt tzdddtttdztdtztk(sJdtttztdtztk(sJy#1swYlxYw)Nrrr9r)rrmulrr}rurrr test_Poly_mulrs 1:>>$q!* %a 33 3 1:Q "d1aj 00 0 1:>>$q!* %a 33 3 1a=41: %aA 66 6 1:>>$q!Q- (DAqM 99 9 1a=41a= (DAqM 99 9 1:>T!QZ '' '  ! Q SV 1:>T!A#q\ )) ) tAqz>T!A#q\ )) ) s 8!II ctttzttdztdk(sJtttzttdztdk(sJdttztdtztdk(sJtdttztdtztdk(sJtttdztdtztdk(sJy)NrrPr)rrrmrrrtest_issue_13079r)s 719QT1T2 22 2 T!W9QT1T2 22 2 d1g:bdAd3 33 3 R5a=DAq6 66 6 71R5=DAq6 66 6rctttzttjttdztdzzttk(sJyNr)rrrsqrrrr test_Poly_sqrr0s: !Q?   DAadAq$9 99 9rc8tttjdttdztk(sJtttjtdttdztk(sJtdtzttjdtdtdzzttk(sJtdtzttjtdtdtdzzttk(sJtdtztzttdztdtdzztdzzttk(sJt t dt t d y) Nr6rr9rriWcNtttzdzttdzS)Nrrrrrrrrrztest_Poly_pow..=sd1Q37Aq1B7rcVtttzdztttzSrrrrrrztest_Poly_pow..>sd1Q37Aq114r)rrpowrgrr| TypeErrorrrr test_Poly_powr4s 1:>>" aeQ // / 1:>>'"+ &$q"ua. 88 8 !Q?  q !T"QT'1a%8 88 8 !Q?  wqz *d2ad7Aq.A AA A !Aq! a 4AqDA q!#< << < 978 945rcttdztt}}|tdt}}t||||fk(sJ||z|k(sJ||z|k(sJt|t||fk(sJ|tz|k(sJ|tz|k(sJtdttdt}}td|||fk(sJd|z|k(sJd|z|k(sJttttz dk(sJttdzttz tk(sJttttdzz dtz k(sJy)Nrrr)rrdivmod)rrrrs rtest_Poly_divmodrAs? 1:tAwqA d1ajqA !Q D (( ( Q A  % % .. . Aq> " "d ** * !a  $ $ -- - !a  ( (D 00 0 !a  ( (E 11 1 1:  4 '' ' 1:  5 (( ( A A  ( (D 00 0 !A ? $ $ -- - !a!  ) )T 11 1 !A ? ' '5 00 0 !9 D (( ( !a= $ $ -- - 1qs  * *d 22 2 1qs  * *e 33 3 7 D (( ( !9 " "e ++ + !9 $ $ ,, , 7 " "e ++ +  22 21$q!t+ad2Q6 88E  OO O  22 21$q!t+ad2Q6 88E  NN Nrc`ttdztzdzjdusJttdzdtzzdzjdusJtdtzdzdjdusJtdtdzzdtzzdzdjdusJy) NrrTFrr r)rris_irreduciblerrrtest_Poly_is_irreduciblers 1q1  , , 44 4 1qs Q  . .% 77 7 !a $ 3 3t ;; ; !Q$1 q " - < < EE ErcRttdzjtddk(sJttdzjttttdzk(sJttdzjttttdzk(sJtttztjtttdzk(sJtttztjtttdzk(sJy)Nrrr)rrsubsrrrrtest_Poly_subsrs A;  Aq !Q && & A;  Aq !T!a%[ 00 0 A;  Aq !T!a%[ 00 0 !Q<  Q "ad ** * !Q<  Q "ad ** *rcttdzjtttdzk(sJttdzjtttdzk(sJt t dttdzjttttdzk(sJttdzjttttdzk(sJtttzjtttttzk(sJtttzjtt tt tzt tk(sJtttzjtttttzk(sJtttzjtt ttt ztt k(sJtttzjt ttttzk(sJt t dtttztjtt tt tzt k(sJtttztjtt ttt zt k(sJt t dt t dy)NrcTtttzjtSr)rrrreplacerrrrrz#test_Poly_replace..sDQK$7$7$:rc^tttzjttSrrrrrrrrrz#test_Poly_replace..DQK$7$71$=rchtttztjttSrrrrrrz#test_Poly_replace..DQN$:$:1a$@rchtttztjttSrrrrrrz#test_Poly_replace..rr)rrrrr|rGrrrrrtest_Poly_replacers A;  q !T!a%[ 00 0 A;  q !T!a%[ 00 0 ?:; A;  q! $QU 33 3 A;  q! $QU 33 3 A;  q! $QU 33 3 A;  q! $QUAq(9 99 9 A;  q! $QU 33 3 A;  q! $QUAq(9 99 9 A;  q! $QU 33 3 ?=> Aq> ! !!Q '4Aq> 99 9 Aq> ! !!Q '4Aq> 99 9 ?@A ?@ArcZttdtttzttj tttttzttk(sJtttzttj tttttzttk(sJtttzttj tttttzttk(sJtttzttj tttttzttk(sJtttzttj ttttzttk(sJtttzttj ttttzttk(sJy)Nc^tttzjttSr)rrrreorderrrrrrz#test_Poly_reorder..rrrI)r|rGrrrrrrrtest_Poly_reorderrsM ?=> Aq!  $ $Q *d1q5!Q.? ?? ? Aq!  $ $Q *d1q5!Q.? ?? ? Aq!  $ $Q *d1q5!Q.? ?? ? Aq!  $ $Q *d1q5!Q.? ?? ? Aq!  $ $ $ +tAE1a/@ @@ @ Aq!  $ $ $ +tAE1a/@ @@ @rc(ttdzttdzzztttj t}|j tdzttdzzzk(r|j ttfk(sJtttztz tttj dtttztz ttk(sJttdttdy)NrrctttdzztdzzttjtSrrrrltrimrrrrz!test_Poly_ltrim..s*D1a4!Q$1$=$C$CA$Frcntttztz ttjdS)Nrrrrrrz!test_Poly_ltrim..s"D1q!Q$7$=$=b$Ar) rrrrrrrr|rGrs rtest_Poly_ltrimrs QTAadF]Aq!$**1-A 99;!Q$1a4- 'AFFq!f,<< < !aAq ! ' ' *d1Q37Aq.A AA A ?FG ?ABrc>tttzdztttj ttdusJtttztztttj ttdusJt t dy)NrTFctttdzztdzzttjtSr)rrr has_only_gensrrrrrz)test_Poly_has_only_gens..s*D1a4!Q$1$=$K$KA$Nr)rrrrrr|rFrrrtest_Poly_has_only_gensrsi !aAq ! / /1 5 == = !aAq ! / /1 5 >> > ?NOrcDtdtzdzdjtdtzdzdk(sJtdtzdzdjtdtzdzdk(sJttdtt dy)NrrrPrrQcHttdz dzjSr*rrto_ringrrrrz#test_Poly_to_ring..s4!a=#8#8#:rcLtdtzdzdjS)Nrrrrrrrrrz#test_Poly_to_ring..sQqS1Wa 8 @ @ Br)rrrr|rHrIrrrtest_Poly_to_ringrs !a % - - /4!a3M MM M !a % - - /4!a3M MM M >:; ;BCrcrtdtzdzdjtdtzdzdk(sJtdtzdzdjtdtzdzdk(sJttdz dzdjttdz dzdk(sJtdtzdzdjtdtzdzdk(sJtdtzd zjtdtzd zk(sJy) NrrrPrrQrrr0r)rrto_fieldrrrtest_Poly_to_fieldrs !a % . . 0D1q4N NN N !a % . . 0D1q4N NN N !a % . . 0D1q4N NN N !a # , , .$qsQw2J JJ J A  % % '4A +< << > > !Q$1 q ! $ / / 1_ DD Drctdtjdgk(sJtdtjdgk(sJtdtzdztjddgk(sJtdtdzzdtzzdztjgdk(sJtdtdzzdtzzdztjgd k(sJy) Nrrrrrrr r9)r rr rr)rr all_monomsrrrtest_Poly_all_monomsrUs 1: "tf ,, , 1: "tf ,, , !a  & & (T4L 88 8 !Q$1 q ! $ / / 15G GG G !Q$1 q ! $ / / 15S SS Srctdtjdgk(sJtdtjdgk(sJtdtzdztjddgk(sJtdtdzzdtzzdztjgdk(sJtdtd zzdtzzdztjgd k(sJy) Nrrrrrrrrr9)r)rr)r rrr)rr all_termsrrrtest_Poly_all_termsr"_s 1:   !i[ 00 0 1:   !i[ 00 0 !a  % % 'Iy+A AA A !Q$1 q ! $ . . 0) ** * !Q$1 q ! $ . . 0? @@ @rcttdzdtzzdz}ttdzdtzzdz}d}|j||k(sJd}|j||k(sJy)Nrir9c |\}|dd|z zzSNr6rrmonomcoeffks rfuncz test_Poly_termwise..funcosb1q5k!!rc&|\}|f|dd|z zzfSr&rr's rr+z test_Poly_termwise..funcus#tUBQK'''r)rrtermwise)rrr+s rtest_Poly_termwiser.kss QTBqD[3 A QTAaCZ!^A" ::d q  ( ::d q  rctdtjdk(sJtdtjdk(sJtttjdk(sJttdztjdk(sJttdzdztjdk(sJttdztzdztjdk(sJy)Nrrrr)rrlengthrrrtest_Poly_lengthr1|s 1:   ! ## # 1:   ! ## # 1:   ! ## # Aq> "a '' ' 1q!  # # % ** * 1q1 a ' ' )Q .. .rctdtjik(sJtdtttjik(sJtdtjddik(sJtdtttjddik(sJttdzdztjdddk(sJttdzdztttjdddk(sJtdtdzztztdzzd tztzzd tztzzjdd d d k(sJy) Nrrrrrrrr)r r))rrrr3r9r)rrrrrrrrr)rras_dictrrrrrtest_Poly_as_dictr8s< 1:   2 %% % 1a  # # % ++ + 1:   D!9 ,, , 1a  # # %)Q 77 7 1q!  $ $ &!*< << < 1q!Q " * * ,A!0L LL L !Q$qA !A%!A- . 6 6 8=, ,, ,rctdtjdk(sJtdtttjdk(sJtdtjdk(sJtdtttjdk(sJttdzdztjtdzdzk(sJttdzdztttjtdzdzk(sJtdtdzztztdzzdtztzzdtztzzjdtdzztztdzzdtztzzdtztzzk(sJttdzdtztdzzztz ttjt tdzzdtztdzzzk(sJjtdidtz dtdzzzk(sJjtd id d tzztdzzk(sJjtdtd id k(sJjdd d k(sJt t fd y)Nrrrrr9rr6riHi{c2jtdiSr)rrrsrrz#test_Poly_as_expr..sAIIq!f$5r)rrrrrr|rFrs@rtest_Poly_as_exprr=sV 1:   1 $$ $ 1a  # # % ** * 1:   1 $$ $ 1a  # # % ** * 1q!  $ $ &!Q$( 22 2 1q!Q " * * ,1q 88 8  !Q$qA !A!A% ''.wyAadF1HQTMAaCE4IAaCPQE4Q RR R QTAaC1H_q !Q'A 99;1"q!t)ac!Q$h. .. . 99aV QAqD 0 00 0 99aV RT AqD 0 00 0 99aAq\ "c )) ) 99Q?c !! ! ?56rcttdzttzz dtzztd}|jttdztdzzdtzz dztd k(sJy) Nr9Trrr"i!rQr)rrrfliftrs rtest_Poly_liftrCs^ QTAaCZ"Q$ D1A 1668tAqD1a4K"Q$.4aE EE Ercttdztdzzdz d}ttdztdzzdz d}t|tzd|dzzz|z tdzztdzz td}|j ttdz d td zzzdtd zzz d td zzzd tdzzz d tdzzzdtdzzz dtdzzzdtdzzz dtdzzzdtdzzz dtdzzzdtdzzz dtdzzzd td!zzz d"td#zzzd$td%zzz d&td'zzzd(td)zzz d*td+zzzd,td-zzz d.td/zzzd0td1zzz d2td3zzzd4td5zzz d6td7zzzd8td9zzz d:td;zzzdtd?zzzd@tdAzzz dBtdCzzzdDtdEzzz dFtdGzzzdHtdIzzz dJtdKzzzdLtdMzzz dNtdOzzzdPtdQzzz dRtdSzzzdTtdUzzz dVtdWzzzdXtdYzzz dZtd[zzzd\td]zzz d^td_zzzd`tdazzz dbtdczzzddtdezzz dftdgzzzdhtdizzz djtdkzzzdltdmzzz dntdozzzdptdqzzz drtdszzzdttduzzz dvtdwzzzdxtd zzz dytdzzzzd{td|zzz d}td~zzzdtdzzz dtdzzzdtdzzz dtdzzzdtdzzz dtdzzzdtdzzz dtdzzzdtdzzz dtdzzzdtzz dztdk(sJy)NrrrrrTrKr;GFiEDCi0Bi{Ai@i ?i?>i=i1<iJV;i}}:i9i]X8iz7iD6i5iK4iӱ 3iZ2i1ig0i-/iz-?.imV-iz,i+iX*ik")iv(i`'iDu&is:(%im$i-#i~rAiE!iL i~s r5iQM iٞi|iiAievpr:i*iUtioBHi*r7i3& r$iE$@!i0; iDp!r?i riYEi OriX? ib iL9rinr6i; i rizG riHri!p^i1>jr9i'i?iirQr)rxrrrrrBrs rtest_Poly_lift_multipler}s 1q!t a #B 1q!t a #B RTAb!eG^b 1a4 '!Q$ .TBA 1668t BArEAaeG#bBh.QU:R2XE ArE  2I  #ArE  *,0BJ 79=ae D QU  !R%Z "'2+ .05ae  <>CArEk J ae  ArEk "%+1b5L 14:!R%< @CIB, O B,   2  &)02  69@2  F 2    2  & )02  6 9@2  F 2   !B  ' *2!R%  8 ;C1b5.  I B "!R% (+31b5. 9 J B "!R% (+4ArE/ :=FaeO L !R% $ArE/ *-6aeO <?H2o N !R% $ArE/ *-6aeO < ArE/ &aeO ,/82o >AJ!R% P ArE/ &aeO ,/82o >AJ!R% P ArE/ &aeO , ArE/ &aeO ,/82o >AJ!R% P ArE/ &aeO ,/81n =@IA~ N AqD.!  $AqD=! ) ,5QT>! : =EQTM! J" A # "!A # &")0 # 2"5=# ="?@%  rc.tdtjdtdtfk(sJtdtjdtdtfk(sJtttjdtttfk(sJttdztjdtttfk(sJttdztjdtttfk(sJttdztztdzztd ztdzzzjd tttztztdztzzfk(sJy) Nrrrrr r?)r?rr9)rrr)rrdeflaterrrrrtest_Poly_deflaters7 1:   D$q!*#5 55 5 1:   D$q!*#5 55 5 1:   D$q!*#5 55 5 1a= "tT!QZ&8 88 8 2q> ! ! #tAqz': :: :  1Qq"u q!tArEz! ##*79T!A#a%!Q$q&.=Q0R SS Srcttdztzttdzzzttzzdzt}|jttdztzttdzzzttzzdzttk(sJ|jdttdztzttdzzzttzzdzttk(sJy)NrrrT)front)rrrinjectrs rtest_Poly_injectrs QT!Va1f_qs "Q &*A 88:ad1fqAvo!3a7A> >> > 88$8 41Q1a4!A#(=(A1a#H HH Hrc Vttdztzttdzzzttzzdztt}|jttttdzztdztztzzdztdk(sJ|jttttdzztdztztzzdztdk(sJttztzt zt z}t|tttt t }|jtt|ttt t dk(sJ|jttt|tt t dk(sJ|jtttt|t t dk(sJ|jt t|tttt d k(sJ|jt t t|tttd k(sJ|jtt t t|ttd k(sJttd ttd y)NrrrrrZZ[y]zZZ[x, y]z ZZ[x, y, z]zZZ[w]zZZ[t, w]z ZZ[z, t, w]ctttzttttj tSr)rrrrPrejectrrrrz!test_Poly_eject..s$QqS!Qr!u = C CA Frcrtttztttj tSr)rrrrrrrrrz!test_Poly_eject..s QqS!Q(:(@(@(Cr) rrrrrrrr|rIr>)rexrs rtest_Poly_ejectrs QT!Va1f_qs "Q &1-A 771:a1f1q!|3a77K KK K 771:a1f1q!|3a77K KK K QQ B RAq!QA 771:b!Q1W= == = 771a=DQ1Z@ @@ @ 771a tB1]C CC C 771:b!Q1W= == = 771a=DQ1Z@ @@ @ 771a tB1]C CC C ;FG  CDrcttttjtttk(sJtttzttjtttzttk(sJtdttjtdttk(sJyr)rrrexcluderrrtest_Poly_excluders} 1a= "d1aj 00 0 !Q? " " $QqS!Q 77 7 1a= "d1am 33 3rc,tdttjddk(sJtdttjddk(sJtdttjddk(sJtdttjddk(sJt t dt t dtdttjtdk(sJtdttjtdk(sJtdttjddk(sJtdttjddk(sJt t d t t d y) NrrrrcJtdttjdS)Nrrrr _gen_to_levelrrrrz)test_Poly__gen_to_level..sDAqM$?$?$CrcJtdttjdSrrrrrrz)test_Poly__gen_to_level..sDAqM$?$?$CrrrcRtdttjtSr)rrrrrrrrrz)test_Poly__gen_to_level.. sDAqM$?$?$BrcJtdttjdS)Nrrrrrrrz)test_Poly__gen_to_level.. sDAqM$?$?$Dr)rrrrr|rGrrrtest_Poly__gen_to_levelrs6 1a= & &r *a // / 1a= & &r *a // / 1a= & & *a // / 1a= & & *a // / ?CD ?CD 1a= & &q )Q .. . 1a= & &q )Q .. . 1a= & &s +q 00 0 1a= & &s +q 00 0 ?BC ?DErc tdtjt usJtdtjdk(sJtttjdk(sJtdtjdt usJtdtjddk(sJtttjddk(sJtdtjtt usJtdtjtdk(sJtttjtdk(sJtdtjdt usJtdtjddk(sJtttjddk(sJt t dt t dt t dtdtt jdk(sJtdt ztt jdk(sJttt ztt jdk(sJtdtt jtdk(sJtdt ztt jtdk(sJttt ztt jtdk(sJtdtt jt dk(sJtdt ztt jt dk(sJttt ztt jt dk(sJtdtt usJtdtdk(sJtttdk(sJttt dzztdk(sJttt dzzt dk(sJttt dzztdk(sJttdk(sJt td t td t t d t t d ttdttt usJttdttdk(sJtttdzt d zzt d k(sJttt dztd zzt tdd k(sJttt dztd zzttdk(sJttt dztd zztdzzttdk(sJy)NrrgenrcBtdtjdSNrrrrrrrrrz"test_Poly_degree.. sDAJ$5$5!$5$<rcJtdtjtSr)rrrrrrrrz"test_Poly_degree..!sDAJ$5$5!$5$<rcBtdtjdS)Nrrrrrrrrz"test_Poly_degree.."sDAJ$5$5#$5$>rrc:ttdztdzzSrrrrrrrrz"test_Poly_degree..:sfQTAqD[1rc<ttdztdzzdSNrrrrrrrrz"test_Poly_degree..;sfQTAqD[!4rc"ttdS)Ng?rrrrrrz"test_Poly_degree..<s F1cNrcJttdztdzdzz tSrrrrrrz"test_Poly_degree..=sF1a4A?A$>rrr9) rrrrir|rGrrrjrrrrtest_Poly_degreers 1:   2# %% % 1:   ! ## # 1:   ! ## # 1:    #s ** * 1:    #q (( ( 1:    #q (( ( 1:    #s ** * 1:    #q (( ( 1:    #q (( ( 1:    %" ,, , 1:    % ** * 1:    % ** * ?<= ?<= ?>? 1a=   !Q && & !Q? ! ! #q (( ( !Q? ! ! #q (( ( 1a=  A  &! ++ + !Q? ! !a ! (A -- - !Q? ! !a ! (A -- - 1a=  A  &! ++ + !Q? ! !a ! (A -- - !Q? ! !a ! (A -- - !Q? $q)A 2# %% % $q)A ! ## # $q!tAqDy# $ )) ) $q!tad{Aq)1 - 22 2 $q!tad{A& *a // / $q!tad{QT)1-q 1Q 66 6rcltdtjt fk(sJtdttjt t fk(sJtdttt jt t t fk(sJtdtjdk(sJtdttjdk(sJtdttt jdk(sJttdztztdzt dzzzdzjdk(sJtdtdk(sJtttd k(sJtttdzzd k(sJt td y) Nrrrrr3rr)rrrrr8ctdSr)rrrrrz'test_Poly_degree_list..Vs k!nr)rrrrirrr|rBrrrtest_Poly_degree_listrFsa 1: ! ! #v -- - 1a= $ $ &B3* 44 4 1a  ' ' )rcB3_ << < 1: ! ! #t ++ + 1a= $ $ && 00 0 1a  ' ' )Y 66 6 1QAad"Q& ' 3 3 5 BB B q!  $$ $ q!  $$ $ qAv & (( ( 45rcttdztztdztdzzzdzj dk(sJttdztdzzj dk(sJtttztztdzzj dk(sJttdztzdzj dk(sJt ttztdzzdk(sJt ttztdzzttdk(sJt ddk(sJt ttdztdzztdzzdk(sJt ttdztdzztdzztdk(sJt ttdztdzztdzzttdk(sJt ttdzttztzztdztdzzztdzzttdk(sJy) Nrrrrr9rr|r)rrrrr rrrtest_Poly_total_degreerYs 1QAad"Q& ' 4 4 6! ;; ; 1q!t  ) ) +q 00 0 !A1  * * , 11 1 1q1  * * , 11 1 !ad #q (( ( !ad Aq )Q .. . ?a   QTAqD[1a4/0 1Q 66 6 QTAqD[1a4/3 4 99 9 QTAqD[1a4/3Q 71 << < QTAaCE\AqDAI51.s rcDttdzjdS)Nrrrrcoeff_monomialrrrrz!test_Poly_coeff..stAE{99!<rcRttdzjdtzSNrrrrrrrz!test_Poly_coeff..stAE{99!A#>rc`ttdzjdtztzSr)rrrrrrrrz!test_Poly_coeff..s!tAE{99!A#a%@r) rrrrrqrr)r|r> ValueErrorrs@rtest_Poly_coeffrsf 1: $ $Q '1 ,, , 1: $ $Q '1 ,, , 1: $ $Q '1 ,, , 1: $ $Q '1 ,, , 1a= ' ' *a // / 1a= ' '1 - 22 2 1a= ' '1 - 22 2 1a= ' '1 - 22 2 !AqD1 a # 2 21 5 :: : !AqD1 a # 2 21QT6 :a ?? ? RT!VCF]RT !1a(A 1  A " $$ $ 1  A ! ## # 1  AaC Bs1vI -- - 199;  Q 2a4A;#3 33 3  23 :<= :>? :@Arctdtjddk(sJtdtjddk(sJtdtjddk(sJtdtjddk(sJttdztjddk(sJttdztjddk(sJttdztjddk(sJttdztjddk(sJtdtztdzzdzttjdddk(sJtdtztdzzdzttjdddk(sJt t dy) Nrrrrr|rrcftttzdzttjdSr)rrrnthrrrrztest_Poly_nth..s"tAaC!GQ266q9r)rrrrr|rrrr test_Poly_nthrsu 1:>>!  !! ! 1:>>!  !! ! 1:>>!  !! ! 1:>>!  !! ! 1a=  Q 1 $$ $ 1a=  Q 1 $$ $ 1a=  Q 1 $$ $ 1a=  Q 1 $$ $ !AqD1 a # ' '1 - 22 2 !AqD1 a # ' '1 - 22 2 :9:rc"tdtjdk(sJtdtjdk(sJtdtdzztztjdk(sJtttdzzdtdzztdzzzjdd k(sJtttdzzdtdzztdzzzjd d k(sJtttdzzdtdzztdzzzd tdztdzzk(sJtttdzzdtdzztdzzzd ttdzzk(sJy) Nrrrrr rrrXr rYr r&)rrr rrrr test_Poly_LMrsN 1:==?d "" " 1:==?d "" " !Q$ A  ! ! #t ++ + !Q$1a41$ % ( ( /6 99 9 !Q$1a41$ % ( ( 1V ;; ; a1fqAvad{"% 0AqDAI == = a1fqAvad{"' 2a1f << .sE(5/2rrXr&)rrrr4)rrrrr )rrev_lexs rtest_Poly_LM_custom_orderrsz QT!Q$Yq[1a46!Q$; &1Q . 23A2G 44e4  )) ) 44g4 ) ++ +rctdtjdk(sJtdtjdk(sJtdtdzztztjdk(sJtttdzzdtdzztdzzzjdd k(sJtttdzzdtdzztdzzzjd d k(sJy) NrrrrrrrrXr rYr )rrEMrrrr test_Poly_EMrs 1:==?d "" " 1:==?d "" " !Q$ A  ! ! #t ++ + !Q$1a41$ % ( ( /6 99 9 !Q$1a41$ % ( ( 1V ;; ;rc(tdtjdk(sJtdtjdk(sJtdtdzztztjdk(sJtttdzzdtdzztdzzzjd d k(sJtttdzzdtdzztdzzzjd d k(sJtttdzzdtdzztdzzzd dtdzztdzzk(sJtttdzzdtdzztdzzzd ttdzzk(sJy)Nrrrrr)r rrrrXrrYrr&)rrr rrrr test_Poly_LTrsR 1:==?i '' ' 1:==?i '' ' !Q$ A  ! ! #y 00 0 !Q$1a41$ % ( ( /; >> > !Q$1a41$ % ( ( 1[ @@ @ a1fqAvad{"% 0AadF1a4K ?? ? a1fqAvad{"' 2a1f << > > !Q$1a41$ % ( ( 1[ @@ @rctdtjdk(sJtdtjdk(sJtdtjdk(sJyNrrr)rrmax_normrrrtest_Poly_max_normrsY A;   !Q && & A;   !Q && & A;   !Q && &rctdtjdk(sJtdtjdk(sJtdtjdk(sJyr)rrl1_normrrrtest_Poly_l1_normrsY A;   A %% % A;   A %% % A;   A %% %rc6ttdztj\}}|dk(r4|ttdztdk(r|jtk(sJttdz dztj\}}|dk(r4|ttdztdk(r|jt k(sJtdtdzzdzdj\}}|dk(r?|tdtdzzdztdk(r|jt dk(sJttdz dztjd \}}|dk(r4|ttdztdk(r|jtk(sJtttz dztjd \}}|tk(r?|tttztd k(r|jttk(sJttdz tdztd j\}}|dk(r@|ttdtdzztd k(r|jtk(sJttdz tdztd jd \}}|dk(r@|ttdtdzztd k(r|jtk(sJy) NrrrPrrQrrrT)convertrrU) rr clear_denomsrArPrQrOrrsrU)r)rs rtest_Poly_clear_denomsrsq1ua.--/KE4 A:$$ Aq##24??#4#:; ;qsQw"//1KE4 A:$$ Aq##24??#4#:; ;qAvz1-::<i^i#l4$isDlRrr{lwf8*-rrUr)rrmrsrrs rtest_issue_20427r.s b1Q46l *OU DJ>A$q&="-"$1$t*$"%"-"#%0QqT!V%CT N*ad1f5>6 6 7 7:I !QJ:AaDF :,ec$t*n.D!Q-OO T "ECT N$:ad1f#E EF:G GIJ KA Q$' '' 'rc>ttdzjttdzdz tzk(sJttdzjtttdzdz tzk(sJttdzjtdfttdzdz tzk(sJtttzdzjtttdztzdz tzk(sJtttzdzjttttdzzdz tzk(sJtttzdzjttttdztzdz tdzdz zk(sJtttzdzjtttttdzzdz tdzdz zk(sJtttzdzjtdfttdztzdz tdzdz zk(sJtttzdzjtdftttdzzdz tdzdz zk(sJtttzdzjttttdztdzzdz ttzzk(sJtttzdzjttttdztdzzdz ttzzk(sJy)Nrrrrr9)rr integraterrrrtest_Poly_integrater<s A; "d1a46A:&6 66 6 A;  #tAqDFQJ'7 77 7 A; !Q (DAa!,< << < !a= " "1 %ad1fQhl); ;; ; !a= " "1 %a1fQhl); ;; ; !a= " "1a (DAaAqDF1B,C CC C !a= " "1a (D1a4AqDF1B,C CC C !a= " "Aq6 *d1a46!8ad1f3D.E EE E !a= " "Aq6 *d1QT6!8ad1f3D.E EE E !a= " "1a (DAad1qs1B,C CC C !a= " "1a (DAad1qs1B,C CC Crcttdztzjtdtzdzk(sJttdztzjttdtzdzk(sJttdztzjtdftdtzdzk(sJttdztdzzttzzjttdtztdzztzk(sJttdztdzzttzzjttdtdzztztzk(sJttdztdzzttzzjtttdtdzzttk(sJttdztdzzttzzjtttdtdzzttk(sJttdztdzzttzzjtdftdtdzzttk(sJttdztdzzttzzjtdftdtdzzttk(sJttdztdzzttzzjtttdtztzdzk(sJttdztdzzttzzjtttdtztzdzk(sJy)Nrrr9)rrrarrrrtest_Poly_diffrNs 1q>   D1qM 11 1 1q>  q !T!A#'] 22 2 1q>  1v &$qsQw- 77 7 1QT AaC % %a (D1QTA,> >> > 1QT AaC % %a (D1a4A,> >> > 1QT AaC % %a +tAadFAq/A AA A 1QT AaC % %a +tAadFAq/A AA A 1QT AaC % %q!f -a1fa1C CC C 1QT AaC % %q!f -a1fa1C CC C 1QT AaC % %a +tAaCEAI >> > 1QT AaC % %a +tAaCEAI >> >rctttdztztdtzdzk(sJtttdztztdtttdztztk(sJtttdztztj tdtzdzk(sJy)NrrFevaluate)rarrr`doitrrrtest_issue_9585r`s QTAX 4!a= 00 0 QTAXE 241q>1% && & d1a4!8na ( - - /4!a= @@ @rctdtjddk(sJtdtjddk(sJtttjddk(sJtdtjdddk(sJtdtjdddk(sJtttjdddk(sJtdtjtddk(sJtdtjtddk(sJtttjtddk(sJtdtjdddk(sJtdtjdddk(sJtttjdddk(sJttdttdttdtdtt jdtdt k(sJtd t ztt jdtd t zt k(sJttt ztt jdtdt zt k(sJtdtt jtdtdt k(sJtd t ztt jtdtd t zt k(sJttt ztt jtdtdt zt k(sJtdtt jt dtdtk(sJtd t ztt jt dtd tk(sJttt ztt jt dtdtztk(sJttt zt ztt jtditd t zt k(sJttt zt ztt jt ditdtzdztk(sJttt zt ztt jtd t did k(sJttt zt ztt jtdt d idk(sJttt zt ztt jdd k(sJttt zt ztt jd dgd k(sJttdzdjt jtdd k(sJttdzdjtd td dzk(sJttdttdtd}d |ztzd |zz td zzdztd zd tzz dzz }ttd z|dz tzz|z dztd}|jtdztdz z |k(sJttd z|dz tzz|z dztt d}|jtdztdz z t|t dk(sJy)NrrrrcBtdtjddSNrrrrevalrrrrz test_Poly_eval..xsDAJOOAq$9rcJtdtjtdSr)rrrrrrrrz test_Poly_eval..ysDAJOOAq$9rcBtdtjddS)Nrrrrrrrrz test_Poly_eval..zsDAJOOC$;r{rrrrr_r`)rrrPrrcntttztzttjdS)N)rrr)rrrrrrrrz test_Poly_eval..s"tAaC!GQ277 BrchttdzdjtjdS)NrrPrFauto)rrrrmHalfrrrrz test_Poly_eval..s%QU4 8 = =aff5 = Qralphaz ZZ[alpha]z ZZ(alpha,z))rrrr|rGrrmrrhrsrrIrnr)rresultrrs rtest_Poly_evalrgs 1:??1  "" " 1:??1  "" " 1:??1  "" " 1:??1a A %% % 1:??1a A %% % 1:??1a A %% % 1:??1a A %% % 1:??1a A %% % 1:??1a A %% % 1:??3 "a '' ' 1:??3 "a '' ' 1:??3 "a '' ' ?9: ?9: ?;< Q?   "d3l 22 2 !Q?   "d1Q3l 22 2 !Q?   "d1Q3l 22 2 Q?  1 %c1 55 5 !Q?  1 %ac1 55 5 !Q?  1 %ac1 55 5 Q?  1 %c1 55 5 !Q?  1 %b! 44 4 !Q?  1 %ac1 55 5 !aA  # #QF +tAaC| ;; ; !aA  # #QF +tAaC!GQ/? ?? ? !aA  # #Q1aL 1R 77 7 !aA  # #Q1aL 1R 77 7 !aA  # #F +r 11 1 !aA  # #QF +r 11 1 Ad # ( ( 0HQN BB B Ad # ( (a 1T!Wq[ @@ @ :BC ;QR 7OEgai!E'!AqD(1,q!taczA~ >F QTUQYM !E )A -qEA 661q51q5/ "f ,, , QTUQYM !E )A -q!KHA 661q51q5/ "d61]&K KK Krc tdtztzdtzztzdtzz}|dtdtzdtzzdzk(sJ|ddtdtzdzk(sJ|ddddk(sJy)Nrrrrr5rrc)rrrrrs rtest_Poly___call__rs QqSUQqS[1_qs "#A Q44!ac A & && & Q7d1Q38n $$ $ Q1:  rcttdz tdzdz gtdttdz tttdzdz tgk(sJtttdz ttdzdz gtdttdz tttdzdz tgk(sJttdz ttdzdz tgtdttdz tttdzdz tgk(sJtttdz tttdzdz tgtdttdz tttdzdz tgk(sJttdz tdzdz gttdttdz ttttdzdz ttgk(sJtttdz ttdzdz gttdttdz ttttdzdz ttgk(sJttdz ttdzdz tgttdttdz ttttdzdz ttgk(sJtttdz tttdzdz tgttdttdz ttttdzdz ttgk(sJttdz tdzdz gdttdz tttdzdz tgk(sJtttdz ttdzdz gdttdz tttdzdz tgk(sJttdz ttdzdz tgdttdz tttdzdz tgk(sJtttdz tttdzdz tgdttdz tttdzdz tgk(sJtdtdzdz gdtdtttdzdz tgk(sJtdtdzdz gdtdtttdzdz tgk(sJtdttdzdz tgdtdtttdzdz tgk(sJtdttdzdz tgdtdtttdzdz tgk(sJttdzdz dgdttdzdz ttdtgk(sJttdzdz dgdttdzdz ttdtgk(sJtttdzdz tdgdttdzdz ttdtgk(sJtttdzdz tdgdttdzdz ttdtgk(sJtttttttttgttddttttdttttdgk(sJt t dy) NrrrrXr&rPrctddgSr)rrrrrz.test_parallel_poly_from_expr..s'>1v'Fr)rrrrr|rArrrtest_parallel_poly_from_exprrs " Q1q1  !%)!a%^T!Q$(A5F$G HH H " a!eQA"A ''( *.21q5!nd1a4!8Q>O-P QQ Q " QQTAXq!"A ''( *.21q5!nd1a4!8Q>O-P QQ Q "D Aq%1q!$$&'( **+ -15a!eQadQhPQAR0S TT T # Q1q1a !!" $(,QUAq(941q!Q;O'P QQ Q "D Aq%a4!8$ $$% '+/Aq!+R*S TT T "AE4 1q!,$!  $(Q1$5tAqD1Ha7K#L MM M "DQND 1q!5$!  $(Q1$5tAqD1Ha7K#L MM M # Q1q  "&q1ua.$q!tax2C!D EE E " a!eQA" $$% '+/Aq>41q!;L*M NN N " QQTAXq!" $$% '+/Aq>41q!;L*M NN N " a!eQadQh*+ --. 048QNDAPQSTDU3V WW W # AqD1H   "1aj$q!tax*;< == = " AqD1H   "1aj$q!tax*;< == = " DA1  ! #'+Aqz41q!3D&E FF F " DA1  ! #'+Aqz41q!3D&E FF F # A1   "1a4!8Q/a< == = " A1   "1a4!8Q/a< == = " adQh A ! #'+AqD1Ha'8$q!*&E FF F " adQh A ! #'+AqD1Ha'8$q!*&E FF F #DAqM41a=#A1au UVW X aAd #T!Q$%?@ AA A FGrctdztdzz ttz }}ttzd}}||||fDcgc]}t|ttc}\}}}}|j|||fk(sJ|j ||k(sJ|j ||k(sJ|j ||k(sJt||||fk(sJt |||k(sJt |||k(sJt |||k(sJt||tt||fk(sJt ||tt|k(sJt ||tt|k(sJt ||tt|k(sJt||ttf||fk(sJt ||ttf|k(sJt ||ttf|k(sJt ||ttf|k(sJt||||fk(sJt |||k(sJt |||k(sJt |||k(sJt||d||fk(sJt ||d|k(sJt ||d|k(sJt ||d|k(sJt||d||fk(sJt ||d|k(sJt ||d|k(sJt ||d|k(sJttdttdttdttd ycc}w) NrrTpolysFctddSNr9r)r rrrrztest_pdiv.. d1ajrctddSr )rrrrrztest_pdiv..rrctddSr )rrrrrztest_pdiv..rrctddSr )rrrrrztest_pdiv.. s fQlr) rrrr rrrr|rB) rrrrrr_GQRs r test_pdivrs a4!Q$;AqA q5!qA+,aA,8Q41a=8JAq!Q 66!9A   66!9>> 66!9>> 88A;!   1:!Q   1:?? 1:?? !Q<1   1a 1v %% % 1a q  1a q  !Q1  "" " 1q!f !Q '' ' 1q!f  "" " 1q!f  "" " !QA 1 $$ $ 1:!Q   1:?? 1:?? !Q<1   1D !aV ++ + 1D !Q && & 1D !Q && & !Qd #q (( ( 1E "q!f ,, , 1E "a '' ' 1E "a '' ' !Qe $ )) ) 01 01 01 23Q9sLc tdztdzz ttz c ttzd}} ||fDcgc]}t|ttc}\}}}}|j|||fk(sJ|j ||k(sJ|j ||k(sJ|j ||k(sJt ||fk(sJt |k(sJt |k(sJt |k(sJt tt||fk(sJt tt|k(sJt tt|k(sJt tt|k(sJt ttf||fk(sJt ttf|k(sJt ttf|k(sJt ttf|k(sJt||||fk(sJt |||k(sJt |||k(sJt |||k(sJt d||fk(sJt d|k(sJt d|k(sJt d|k(sJt||d||fk(sJt ||d|k(sJt ||d|k(sJt ||d|k(sJttdttdttdttd tdzd zdtzd z c dtdzd z}}tdz d zd } } t | | fk(sJt d | | fk(sJt d ||fk(sJt t||fk(sJt t| | fk(sJt td| | fk(sJt td||fk(sJt td| | fk(sJt td| | fk(sJt | k(sJt d | k(sJt d |k(sJt t|k(sJt t| k(sJt td| k(sJt td|k(sJt td| k(sJt td| k(sJt | k(sJt d | k(sJt d |k(sJt t|k(sJt t| k(sJt td| k(sJt td|k(sJt td| k(sJt td| k(sJtdzdtztdz c }t |k(sJt d |k(sJtt fdtt fdt t|k(sJt td|k(sJtt fdt td|k(sJt td|k(sJttdzttc j \}}|jjr|jjsJ j }|jjsJ j }|jjsJ j }|jjsJtttzttdtztztc j \}}|jjr|jjsJtddtzztt } td tz tt }| j|d tdtdtddtzztdfk(sJ| j|d tt#d  dz d tzdz ztdtdtdfk(sJd tdzzdtzzdz dtzdz t td fk(sJycc}w)NrrTr FctddSr )rrrrrztest_div..5 c!QirctddSr )rrrrrztest_div..6rrctddSr )rrrrrztest_div..7rrctddSr rrrrrztest_div..8s eAqkrrr9rrrrrc tdSNFrrrosrrztest_div..asa(?rc(ttSrrrProsrrztest_div..bsa2(>rc*ttdS)NFrr!rosrrztest_div..esa2E(JrrrRrSr6)rrrrrrrr|rBrPrQr@rAis_ZZis_FracrfrRrm)rrrr_rrrqzrzqqrqrrrs @@rtest_divr) s a4!Q$;ADAq q5!qA+,aA,8Q41a=8JAq!Q 5581v   558q== 558q== 771:?? q!9A   q!9>> q!9>> A;!   q!Q?q!f $$ $ q!Q?a   q!Q?a   Aq!  !! ! q!aV A && & q!aV  !! ! q!aV  !! ! A1v ! ## # q!9A   q!9>> q!9>> A;!   q!4 QF ** * q!4 A %% % q!4 A %% % AT "a '' ' q!5 !aV ++ + q!5 !Q && & q!5 !Q && & AU #q (( ( /0 /0 /0 12 a4!8QqS1WDAq 1qB qS1WaB q!9R  q!$ B8 ++ + q!% RH ,, , q!B B8 ++ + q!B B8 ++ + q!BT *r2h 66 6 q!BU +Bx 77 7 q!BT *r2h 66 6 q!BU +Bx 77 7 q!9?? q!$ 2 %% % q!% B && & q!B 2 %% % q!B 2 %% % q!BT *b 00 0 q!BU +r 11 1 q!BT *b 00 0 q!BU +r 11 1 q!9?? q!$ 2 %% % q!% B && & q!B 2 %% % q!B 2 %% % q!BT *b 00 0 q!BU +r 11 1 q!BT *b 00 0 q!BU +r 11 1dAaC1GAq! A;!   AD !Q && &  ?@  >? Ab !Q && & Abt , 11 1  JK Abt , 11 1 Abu - 22 2 1:tAwDAq 558DAq 1<<>  ALLN$8$88 8 aA <<>    aA 1<<>     A 1<<>    !Q<ac!eQDAq 558DAq 1<<> ! !alln&<&<< < QqsUAd#A QqS!D!A 155  a6 "DQqS!F$CD EE E 155  qteAg!Aoq 0$q!F2KL MM M !Q$A A !aA q!B Aq6 )) )e9sdclttdtz\}}t|dz dksJ|dk(sJy)Ng>, p ?g3! @g+=r)rrr)rrs rtest_issue_7864r+s< q"1$ %DAq q## $u ,, , 6M6rcdtztdzdz }}tdz tddd}}}|||||fDcgc]}t|tdc}\}}}} } |j||| fk(sJ|j ||| | fk(sJ|j ||k(sJt||||fk(sJt |||||fk(sJt |||k(sJt||t||fk(sJt ||t|||fk(sJt ||t|k(sJt||tf||fk(sJt ||tf|||fk(sJt ||tf|k(sJt|||| fk(sJt |||| | fk(sJt |||k(sJt||d || fk(sJt ||d || | fk(sJt ||d |k(sJt||d ||fk(sJt ||d |||fk(sJt ||d |k(sJtd d d k(sJt d d dk(sJt dddk(sJt tdt tdt tdycc}w)NrrrorrrQrTr Fr=i)r9)r-rr9rrrc@ttdzdtzdzdSNrrFr)rrrrrrztest_gcdex..s 1q5!A#' Frc@ttdzdtzdzdSr/)rrrrrrztest_gcdex..sa!eQqS1W5 Arc@ttdzdtzdzdSr/)rrrrrrztest_gcdex..sq1uacAgE Br)rrhrrrrr|rI) rrsrrrr_rrmTHs r test_gcdexr5s Q31r qAdHR$a!qA891aAH!d1a-HMAq!Q <<?q!f $$ $ 771:!Q "" " 88A;!   a 1v %% % A;1a) ## # !Q<1   aA 1a& (( ( Aq>aAY && & !Q?a   aQD !aV ++ + At Aq )) ) !Q  "" " a 1v %% % A;1a) ## # !Q<1   a$ 'Aq6 11 1 AT "q!Qi // / !Qd #q (( ( a% (QF 22 2 AU #1ay 00 0 !Qe $ )) ) c4 H ,, , d { ** * !Q<1   ;FG ;AB ;BCIIsJctdtdzdz z tdzdz ztdzdz z }tdtdzzdz dtdzzdz ztdzdz zdz}|jd |k(sJy) Nrrr9rurirSrr)rrrevertros r test_revertr8s QAaZ!Q$r' !AqDH ,-A R1WS[1QT6"9 $q!tAv - 12A 88A;!  rctdzdtzz dztdzdz dtzdz }}}t|t|t|}}}|j||||gk(sJt|||||gk(sJt||t|||gk(sJt||tf|||gk(sJt|||||gk(sJt||d|||gk(sJt||d|||gk(sJttdy)NrrTr FctddSr )rrrrrz$test_subresultants..s mAq&9r)rrrr|rBrrrr_rr4s rtest_subresultantsr<sdQqSj1nadQh!a!qA1gtAwQ!qA ??1 !Q ** * A 1a) ++ + Aq !aAY .. . At $Aq 11 1 A 1a) ++ + AT *q!Qi 77 7 AU +1ay 88 8 9:rctdzdtzz dztdzdz d}}}t|t|}}|j||k(sJt|||k(sJt||t|k(sJt||tf|k(sJt|||k(sJt||d|k(sJt||d|k(sJt||d|||dtzdz gfk(sJttz ttz ttz }}}t|t|t|}}}|j||k(sJt|||k(sJt||t|k(sJt||tf|k(sJt|||k(sJt||d|k(sJt||d|k(sJt t dy) NrrrTr F) includePRSctddSr )rrrrrz test_resultant..s i1or)rrrrrr|rBr;s rtest_resultantr@sdQqSj1nadQh!qA 7DGqA ;;q>Q   Q?a   Q1  "" " QA4 A %% % Q?a   Q &! ++ + Q '1 ,, , Qd +Aq!A#'?/C CC C!eQUAE!qA1gtAwQ!qA ;;q>Q   Q?a   Q1  "" " QA4 A %% % Q?a   Q &! ++ + Q '1 ,, , 56rc|tdzdtdzzzdtzzdz d}}t|}|j|k(sJt||k(sJt|t|k(sJt|tf|k(sJt||k(sJt|d|k(sJt|d|k(sJttdzzttzzt ztdzd tzt zz }}t|t|}}|j|k(sJt||k(sJt|tttt |k(sJt|tttt f|k(sJt||k(sJt|d|k(sJt|d|k(sJt td y) Nrrr|rzipTr Fr9ctdSNr9)rrrrrz#test_discriminant..s l1or)rrrrrrr|rBrrr_rs rtest_discriminantrEs a4!AqD&=1Q3  #VqA QA >> q  ?a   1  "" " A4 A %% % ?a    &! ++ +  '1 ,, , QT6AaC> q  ?a   1aA &! ++ + Aq!Q< (A -- - ?a    &! ++ +  '1 ,, , 56rcttdztdzzt}t|jddgk(sJ|j dk(sJttdzdtdzzz dzt}|j d}t|j|gdk(sJ|j |dk(sJy)Nrrrr9rr)rrr9)rrsorted dispersionset dispersionshift)fpgps rtest_dispersionrMs q1uq1uoq !B """$ %!Q // / ==?a   adQq!tVma #B "B """2& '9 44 4 ==  !! !rctdzdz tdzdz tdzdtzz dzg}t|tdz k(sJt|dttdz k(sJtgdk(sJtddgdk(sJtgddk(sJtttdzzttzz tdzz gdk(sJtgt}|jr|t j usJtgtd}|jr |jsJtd}t|| gt| |gcxk(r|k(sJJttd y) NrrrTr rr9rrrfctgdSNTr )rrrrrztest_gcd_list..# hr&>r) rrrr is_Numberrmris_Polyrrsr|rB)r_rrs r test_gcd_listrUsT A1a4!8QTAaCZ!^,A A;!a%   AT "d1q5k 11 1 B<1   QF q  I ! ## # QBZ!A#%",- .! 33 3 2q/C ==SAFF]* * 2q %C ;;3;;& & QA QG 1"a 1 6Q 66 66 6 >?rc,tdzdz tdzdz tdzdtzz dzg}t|tdztdzz dtdzzz tdzz tzdzk(sJt|dttdztdzz dtdzzz tdzz tzdzk(sJtgdk(sJtddgdk(sJtgdd k(sJtttd zzttzz td zz gd k(sJtgt}|jr|t j usJtgtd}|jr |jsJttd y) Nrrrrr9Tr rOrurfrctgdSrQ)r rrrrztest_lcm_list..8rRr) rr rrrSrmOnerTrr|rB)r_rs r test_lcm_listrY&sm A1a4!8QTAaCZ!^,A A;!Q$A+!Q$.A59A= == = AT "d1a4!Q$;1a4+?!Q$+F+JQ+N&O OO O B<1   QF q  I " $$ $ QBZ!A#%",- .! 33 3 2q/C ==SAEE\) ) 2q %C ;;3::% % >?rctdzdz tdzdz }}tdztzdztdz}}tdz tdztdzztz dz }}||||||fDcgc] }t|c}\}}} } } } |j|| | | fk(sJ|j|| k(sJ|j || k(sJt|||||fk(sJt|||k(sJt |||k(sJt||t|||fk(sJt||t|k(sJt ||t|k(sJt||tf|||fk(sJt||tf|k(sJt ||tf|k(sJt||| | | fk(sJt||| k(sJt ||| k(sJt||d| | | fk(sJt||d| k(sJt ||d| k(sJt||d|||fk(sJt||d|k(sJt ||d|k(sJdtdzzdz dtzdz }}|dtzdzd}}}t|||||fk(sJt|||k(sJt |||k(sJdtdzzdz dtzdz }}|dtzdzd}}}t|||||fk(sJt|||k(sJt |||k(sJtd d d k(sJtd d dk(sJt d d d k(sJtdzdtzz dz tdzdtdzzz tzdz }}tdzdtdzzz dtdzzz dtzz dz } tdz tdztdzdz}}}t||d |||fk(sJt||d |k(sJt ||d | k(sJtdzd tzzdztdzdtdzzztzdz}}tdzd tdzzzd tdzzzd tzzdz} tdztdztdzdz}}}t||d d|||fk(sJt||d d|k(sJt ||d d| k(sJt dt d }}t||t||cxk(rt dk(sJJt dt d }}t||t||cxk(rt dk(sJJtttdz ttt tzttdttk(sJttdttdtdt}tdt}t ||tdtk(sJtdt}tddgt}||fD]F}t |ddk(sJt d|dk(sJt ||dk(sJt ||dk(rFJdtdzztzdz}t|t}t|t}|j||k(sJ|j ||k(sJ|j||jk(sJ|j ||jk(sJt|||k(sJt |||k(sJt||tt|k(sJt ||tt|k(sJycc}w)Nrrrr9Tr Frrr)rr9rrurrrr;rrc ttSr)rrrrrrztest_gcd.. c!frc ttSr)rrrrrrztest_gcd..r\rrr) rrrrrrsrfrRr|rrPrQr")rrr2rrrrr_rrmr3r4rlrripfzpfqs rtest_gcdrb;s| a4!8QTAXqA a4!8a<QqA q5!Q$A+/A%qA+,aAq!*<>Qa>Aq!Q1 ;;q>aAY && & 558q== 558q== Q?q!Qi '' ' q!9>> q!9>> Q1 !Q ** * q!Q<1   q!Q<1   QA4 Q1I -- - q!aT?a   q!aT?a   Q?q!Qi '' ' q!9>> q!9>> Q &1a) 33 3 q!4 A %% % q!4 A %% % Q 'Aq!9 44 4 q!5 !Q && & q!5 !Q && & q!t8c>3q53;qAQc!qA Q?q!Qi '' ' q!9>> q!9>> q!t8c>3q53;qAQc!qA Q?q!Qi '' ' q!9>> q!9>> Q?i '' ' q!9>> q!9?? a4!A#:>1a4!AqD&=1,q0qA 1qAv !Q$1$q(A!eQUAqD1H!qA Q2 &1a) 33 3 q!R A %% % q!R A %% % a4!A#:>1a4!AqD&=1,q0qA 1qAv !Q$1$q(A!eQUAqD1H!qA Q2 7Aq!9 DD D q!R5 1Q 66 6 q!R5 1Q 66 6 7T!WHqA q!9Aq ,T!W ,, ,, , 8d2hYqA q!9Aq ,T!W ,, ,, , tAE1~tAaC| ,Q$0G GG G 9n% 9n% R A Q A q!9Q "" " Q A aVQAV1ayA~~1ayA~~1ayA~~1ayA~~  !Q$ QA q C q C 773<3   773<3   773<399; && & 773<399; && & q!9>> q!9>> q!B 58 ++ + q!B 58 ++ +E?s%])c bttddtsJttdtzdtsJtdddk(sJtdtzddk(sJttt ddt ddtsJttt ddtzt ddtsJtt ddt ddt ddk(sJtt ddtzt dddk(sJttddt sJttdtzdt sJtdddk(sJtdtzddk(sJtt ddd ddk(sJy) Nrr|rr9rr/g"@rFr)rrrgrrhrerdrrrtest_gcd_numbers_vs_polysrdsp c!Qi )) ) c!A#qk7 ++ + q!9>> qsA;!   c(1a.(1a.98 DD D c(1a.*HQN;X FF F x1~x1~ .(1a. @@ @ x1~a!Q 0A 55 5 c#smU ++ + c#a%ou -- - sC=C   s1uc?c !! ! s1a%(! , 11 1rc  tddk(sJtdtdk(sJttdz tdz k(sJtt dz t dz k(sJtdtzdzdtzdzk(sJtdtzdztddtzdzdk(sJttdztzttdzzzttztdztdzzzk(sJtdtdzztzdtztdzzzdtztztdztdzzzk(sJttdztzdz ttdzzdz zttzdz tdztdzzzk(sJttdztzdtztdzzzttztdzdtdzzzzk(sJtdtdzztzdtztdzzzdtztztdzdtdzzzzk(sJtdtdzztzdz dtztdzzdz zttzt dd zdtdzzdtdzzzzk(sJtd tdzztzd tztdzzzttzd tdzzd tdzzzzk(sJt td tzdzd tzdzsJtddtzztttzzzd dtzdzttztzzk(sJtddtzzttt ddtzzzzzdd dtztdzzt tdtdzddzzk(sJtt tttzzd t ttdzzk(sJtdtzdtzdtztzz}t|tdtzdtztdzzk(sJt|d tdtzdtztdzzk(sJttdy)Nrrrrr9FrrrFr0gffffff@rbT)rbdeeprgc&ttdkSr)rrrrrrz test_terms_gcd..siA.r) rrrdrrhr]rurlrr|rrs rtest_terms_gcdrksK Q<1   Q?a   QU q1u $$ $ aR!V Q && & QqS1W 1q (( ( QqS1W Q!a%!@ @@ @ QT!Va1f_ %1adQTk): :: : Qq!tVAX!AqD( )QqSUAqD1a4K-@ @@ @ QT!VAX!Q$q( )QqSUAqD1a4K-@ @@ @ QT!Vac!Q$h& '1Q31qAv +> >> > Qq!tVAX!AqD( )QqSUAqD1QT6M-B BB B Qq!tVAXaZ!A#ad(1*, -1Xa_1Da1fqQRTUQUvo1V VV V SAXaZ#a%1*, -1c!Q$hQT6I1J JJ J Ic!eai(#a%!) 44 4 a!A#gAaC( 7 1q1Q37   a!A#gAc!ac'lN 23E M !QU SQA67!;< == = SQqS\ - Aq1uI   AaC1qs1u B R=BqsAaCQK0 00 0 Rd #r!A#qsAE{'; ;; ; 9./rctdzdtdzzzdtdzzzdtdzzzdtzzdztdztdzz tdzztz }}t|t|}}|jd|k(sJt|d|k(sJt|dt|k(sJt|dtf|k(sJt|d|k(sJt|dd|k(sJt|dd|k(sJdtdzzdtdzzzdtdzzzdtdzzzdtzzd ztdz tdzztz d z}}t|t|}}|jd|k(sJt|d|k(sJt|dt|k(sJt|dtf|k(sJt|d|k(sJt|dd|k(sJt|dd|k(sJttdzdtzzdzd }|jdttdzd zd k(sJy) Nrrr9rrTr Frr)rrr!rDs r test_truncrmsO a4!AqD&=1QT6 !AadF *QqS 01 4adQTkAqD6H16LqA 7DGqA 771:?? A;!   Aq>Q   At  !! ! A;!   AT "a '' ' AU #q (( ( QT6AadF?Qq!tV #a1f ,qs 2Q 6A1 q8H18LqA 7DGqA 771:?? A;!   Aq>Q   At  !! ! A;!   AT "a '' ' AU #q (( ( QTAaCZ!^Q'A 771:adQh2 22 2rc0dtzdz ttjz }}t|dt|}}|j |k(sJt ||k(sJt |t|k(sJt |tf|k(sJt ||k(sJt |d|k(sJt |d|k(sJt t dt dtdzzd tzzd zd tdzd tzzdzk(sJt td t dtdzzdtzzdzdtdzzdtzzdzk(sJt dtdzzd tzzd zdtdztz dzk(sJy)NrrrQrTr FctdSrC)r"rrrrztest_monic.. eAhrrr9rrcDtdtzdtzzdzdS)NrrrFr)r"rrrrrztest_monic.. sacAaCi!m%(Hrr0g@g@rr/rr)rrmrrr"r|rBr@rDs r test_monicrrs| Q37AJqA $ aqA 779>> 8q== A;!   QD>Q   8q== $ 1 $$ $ % A %% % ./ 1a4!A#! .!Q$1*q. @@ @  HI QTCE!C' (C1Hs1u,. s gajrrrr)rrr#r|rB)rr_s r test_contentru ss Q37D1qMqA 99;!   1:?? 01 QqS!A 99;!  rcdtzdzdtzdz}}t|t|}}|jd|fk(sJt|d|fk(sJt|td|fk(sJt|tfd|fk(sJt|d|fk(sJt|dd|fk(sJt|dd|fk(sJttdtdtzd }td tzt }|jd|fk(sJ|jd |fk(sJtt d t dk(sJy)Nr9rrTr FctdSrC)r$rrrrz test_primitive..) ilrrrr0rrz-3*x/4 + y + 11/8z(1/8, -6*x + 8*y + 11))rrr$r|rBrTrmrDs rtest_primitivery sW Q37AaC!GqA 7DGqA ;;=QF "" " Q.L s gamrctdSrC)r&rrrrztest_compose..M rxr)rmaprr%r&r|rBrr;s r test_composer5 si 21b53q!t8#c!Q$h.QT9AadFBRTIAMA 1qs QA 1qs A$Aq "GAq! 99Q<1   1a=A   1a q  1a! ! ## # 1a=A   1at $ )) ) 1au % ** * ;;=QF "" " Q.r s+tAaCy224A;QU Lrcttjttdzttdz Srrrrrrrrrz test_transform..s 'tAw00a!ed1q5kJrcttjttdzttdz Srrrrrrz test_transform..t rrcttjtttzdzttdz Srrrrrrz test_transform..u s+tAw00acAgQU Lrcttjttdztttzdz Srrrrrrz test_transform..v s+tAw00a!ed1Q37mLr) rrrr8rrhrmrr|rrrrtest_transformr[ s 1qs Q " , ,T!a%[$q1u+ F Q  EAz1a4!A#:>//AEAE?CCD EE EE E 1qs Q " , ,T!a%[$q1u+ F Qq!tVAXA &* EAz1a4!A#:>//AEAE?CCD EE EE E 1qs Q " , ,T!aff*-=tAE{ K Xa^Q JAz1a4!A#:>//AJQ3GHHI JJ JJ J 1qs Q " , ,T!a%[$q166z:J K Xa^Q OAFF Q1qs Q44QQQVV8LMMN OO OO O 1qs Q " , ,T!c']DQVV. rprctdSrrrsrrztest_sturm.. sae 4rii =rrir|r9rorri$zZZ(pi)r=rPr:ri Nr|`ryl i iȯr{l^_i@) rrr'r|rBrIrmrjrh)r_rrrs @r test_sturmry s d1T"DAq d1a%qA 779A   81v   A;1a&  QD>aV ## # 81v   $ Aq6 )) ) % QF ** * ./ ;45 QtWeBEk "1a4 ' tWc"a%i A %& rUE"a%K A %&sVSQY 1 $%a  ! " a   !  3A 8 adSAXoAb *RAXb[8!H M a1fs1unr1uRx'8 < xq!BE"H,a/"RU(2+=q R ~b!e#hr1un4qRx?.S\]_ab]bSbBbehikmninenBnoqr|D E F FF FrcDtdzdtdzzztdzz dtdzzz tjttdfttdzdfgk(sJttdftdzdfgk(sJttfdttdz dzztdz dzztdz dzztdz ztjttdzdtzz dzdfttdzdtzz dzdfttdfgk(sJttdzdtzz dzdftdzdtzz dzdftdfgk(sJttfdy)Nrrr9rrctSrr)rsrrztest_gff.. ArctSrrrsrrztest_gff.. rr)rrr(r|r>rs@rtest_gffr s 1qAv 1qAv%A 7   47A,a!ea0@!A AA A A;Aq6AE1:. .. . / 1q51* a!eaZQ *AE2A 7    QTAaCZ!^a#!#'1qs Q#7";d1gq\"K KK K A;AqD1Q3JNA.A!a0CaVL LL L /rc4tdtd}}t|tz|tzztt||f}|j tdtdzzdtdzztdzzz dtdzzzttdk(sJy) Nrrrr9r{r|rQr)rsrrrnorm)rrrs r test_normr s| 7DGqA QqS1Q3Y1A/A 668tAadFR1WQT\1AadF:AqN NN Nrc ttdzdz tddgtdzdtdztzz dztdzdtdzzz dzfk(sJttdzdz tddgtdzdtdztzz dz tdzdtdzzz dzfk(sJttdzdz tdjdgttdzdtdztzz dzttdttdzdtdzzz dztdfk(sJttdzdz tdjdgttdzdtdztzz dz ttdttdzdtdzzz dztdfk(sJy) Nrrrrr9r6rQr)r*rrsrrrr test_sqf_normr s AqD1HQ 0 adQtAwYq[ 1$adR1Wnq&89 :: : AqD1HQ 0 adQtAwYq[ 1$adR1Wnq&89 :: : 1qDG , 5 5 7 d1a4!DG)A+%)1Q@1a4"QT'>A%q6 8 88 8 1qDG , 5 5 7 d1a4!DG)A+%)1Q@1a4"QT'>A%q6 8 88 8rc .tdztdzz tdzz dz}tdzdtdzzzdtzzdz}tdz }tdztdzztz dz }tt||||f\}}}}|j|k(sJt||k(sJt|t|k(sJt|tf|k(sJt||k(sJt|d|k(sJt|d|k(sJ|j d|df|dfgfk(sJt |d|df|dfgfk(sJt |td|df|dfgfk(sJt |tfd|df|dfgfk(sJt |d|df|dfgfk(sJt |dd|df|dfgfk(sJt |dd|df|dfgfk(sJ|j |df|dfgk(sJt td tddk(sJt ddgfk(sJtdtdzzdzd zd tdzdzd zzk(sJt|||dzzk(sJt|t||dzzk(sJt|tf||dzzk(sJtdztdzz}t||z ||dzz|z k(sJt||z t||dzz|z k(sJt||z tf||dzz|z k(sJttdz tdz k(sJtt dz t dz k(sJttdz tdz k(sJtd tzd z tddtzdz dk(sJtd tzd z dtzd z z tdddtzdz tdz z zk(sJtttdzdtzz dztdz dzk(sJdtztdtzzz tdzz}t|dk(sJtdzdtzzdzdz}t|tdzdzk(sJt |dtdzdfgfk(sJtttdz dztdzztdzztdz dzttdztdzzzk(sJtttdz dztdzztdzztdz dzttdztdzzzk(sJttttz dzttzztdzzttz dztttztdzzzk(sJttttz dzttzztdzzttz dztttztdzzzk(sJtdz dztdz zttzdzztdz dzztdz z}t|j dtttztz tz dzdfttdztzdtdzzz ttdzzzdtztzz dtzzdtdzzz dtzzdfgfk(sJy)Nrrrrr9Tr FctdSrC)r+rrrrztest_sqf.. s hqkrrrrr6rlH/Pl_ %)rrrr+r,sqf_list_includer|rBr-rrdrhrbrrf) rrrrr_rr4Prs rtest_sqfr s- 1q!t adQA 1qAv !aA AA 1q!t a!ATAq!Q<(JAq!Q ::<1   A;!   Aq>Q   At  !! ! A;!   AT "a '' ' AU #q (( ( ::a1a&1a&!12 22 2 At aVaV$4 5 55 5 A;11v1v./ // / AT "qAq6Aq6*:&; ;; ; AU #QFQF+;'< << <   QFQF#3 33 3 12 q6Q;; A;1b' !! ! !Q$ Q 31q1}#4 44 4 q6Qq!tV   q!9!Q$   q1$<1QT6 !! ! 1q!t A qs8!Q$z !! ! qsA;1QT61* $$ $ qsQD>a1faZ '' ' q1u:Q   rAv;1"q&  q1u:Q   qsRx=C1Q37U; ;; ; !b1Q37# $A1q1q58I(J JJ J tAqD1Q3JN# $Q 22 2 A1q5 AqD A q6Q;; A!a+%A q6a!ek) )) ) A;1A{345 55 5 vAzQU+q1u57 8 Q VQUq1u-.. // / vAzQU+q1u57 8 Q VQUq1u-.. // / vAzQU+q1u57 8 Q VQUq1u-.. // / vAzQU+q1u57 8 Q VQUq1u-.. // / Q AEAEA:%q1uqj0!a%8A 7   ! acAgkAo " ad1fqAvo!Q$&1Q.14qAv=!C DaH&"  rc f7tdztdzz tdzz dztdz}tdz }tdztzdz}tt|||f\}}}}|jd|df|df|dfgfk(sJtd|df|df|dfgfk(sJttd|df|df|dfgfk(sJttfd|df|df|dfgfk(sJt|d|df|df|dfgfk(sJtdd|df|df|dfgfk(sJt|dd|df|df|dfgfk(sJ|j |df|df|dfgk(sJtddgfk(sJtddgfk(sJtt dtt dgfk(sJtd tztdd tfgfk(sJtdtzt ztddt ftt fgfk(sJtt tt ztdtt ztjfgfk(sJtddk(rtdjsJtdtzdtdfgfk(sJtdtdzzdtdfgfk(sJtdtzdtzk(sJtdtdzzdtdzzk(sJtdtdzzdzd zd tdzdzd zzk(sJt||dzz|zk(sJtt||dzz|zk(sJttf||dzz|zk(sJtdzt dzz tt z tt ztdzdzf\}}} } t|z ||dzz|z|| zz k(sJt|z t||dzz|z|| zz k(sJt|z tf||dzz|z|| zz k(sJtd d }tdd} tdd} tt tt zjdusJtt dtdzzdz t dt tdz tdzzzk(sJtt dtdzzdzt dt tdzdzzk(sJtt tdzzt z | zt | ztdz | zztdz| zzk(sJtt tdzzt z| zt | ztdzdz| zzk(sJtt tdzzt z tzt tdz ztdzztzk(sJtt tdzzt ztzt tdzdzztzk(sJt t| dzdz|dzz|dz z|dz dzzt |dz dz|dz zt |dzzt | dzdzz}t|k(sJt||k(sJtdz dz| dzdzz}t t|tt |k(sJttdtzdztt jddfgfk(sJtdzdztk(sJtt"tdzt"z tdzt"zzk(sJtdtdzt"z tdzt"zzk(sJtt dtdzt dtzzdztdzt dtzz dzzk(sJttdzdt"ztzzdz tdt"zzdzk(sJtdzdt"ztzzdz tk(sJdtdzztddt"zzzzdz dt"zzt"tddt"zz zdzdt"zzdzz} dttdd z zdt"zd z zdzz} t| k(sJtt$| k(sJtt&| k(sJtdzdt dztzzdztt dtt dzdzk(sJtdzt dtt dzdzk(sJttdzdt dzzz t dtt dt zztt dt zz zk(sJtdtdzzdt dzzz t ddtt dt zztt dt zz zzk(sJttdz tdz k(sJtt dz t dz k(sJttdz tdz k(sJtdtzd z t)ddtzdz d!k(sJttd"ztzdzd#d$tdztzdztd%ztd&zz tdzztdzz tdzztdzz dzzk(sJttd"ztzdzd#d$tdztzdztd%zd'td&zzztdzzd'tdzzztdzzd'tdzzzdzzk(sJtt*z tttzt*z zt t*dzdt*zzdzz t ttzt*dzdt*zzdzz z}ttttdzzt*z k(sJt|t ttdzzt*dzdzz k(sJtt-tdzdtzzdztdzdzt-tdzdztdztdztz dzzk(sJtdzdz tdzdtzzdzz ttdztdz ztdzdzz k(sJtttdztdz ztdzdzz k(sJdtztdtzzz tdzztdk(sJttdk(sJtdtdzdtzzdtz zz dz dtz dtdzzztdzzddtdzzztdzzz k(sJtd(k(sJt/t0fd)t/t2d*ttt-tdzt dzz t5tdzt6dzz dtz dt z zgtt-tt z tt zzt5tt6z tt6zztt ztz t z gk(sJt9ttdztzdzjdd+d+t:dusJt9t;tdztzdzjdd+d+t:dusJtt t t t k(sJd,tzt dzztdz zt t dzztdz zttdz dzzz ztdztdz zttdz zz tz zd,tdzztdz dzztt dzzt t dzzttdz zzzz tdztdz dzztt t dzztdz zttdz dzzz zz zz }t|d+k(sJtttdztztzd-tttdzztzk(sJtttdztztzd-tttdzztzk(sJtt tdzt tdzk(sJttd.tzdzd.t zdzzt)d/d.tzd/zd.t zd/zd!k(sJttd.tzd.zdzd0d/tzd/zdzzk(sJtdzt dzzd"tdzzt zzd1tdzzzd tzt dzzzd2tzt zzd3tzzd4t dzzzd5t zzd6z}t|ttdztdzzt dzd"t zzd1zzk(sJt|td-tdztdzzt dzd"t zzd1zzk(sJt|t d-t dzt dzztdzd tzzd4zzk(sJdtzdt=dd tzz zztd-tdd7k(sJtdd7dtzdt=dzt=d8tzzzk(sJttdztt dzzz t|tdtdftt z dftt zdfgfk(sJttdztdzdz zdtdz dftdzdftdztz dzdftdztzdzdfgfk(sJt ddt dzdt dz }}}dt*zdt*z }}t||zd | df|dfgfk(sJt||zd | df|dfgfk(sJt||z| | dfgfk(sJtt*|zd | dft*dfgfk(sJt||zt||zgfk(sJt||zt||zgfk(sJt||zt||zgfk(sJtt*|ztt*|zgfk(sJttt dt*zz tt dt*zzztdtt dt*zz dftt dt*zzdfgfk(sJt t"z dzt t"zztdzz}tt||k(sJtt"z dztt"zzt dzz}tt||k(sJt dzdzt t dzdzztdztzdzdt dzzdzz}tt|d|k(sJtdz t dzzt dzdzz dt"ztdzzt dzzt dzdzz zdt"ztdzzt zt dzdzz ztdzt dzdzz zdtzt dzzt dzdzz z dt"ztzt dzzt dzdzz zdt"ztzt zt dzdzz zdtzt dzdzz zt dzz t dzt dzdzz z dt"zt dzzzdt"zt dzzt dzdzz zdt"zt zzdt"zt zt dzdzz zdzdt dzdzz z}t|t t"z dz t t"zztdzdtzzt dzzdzzt dzdzz k(sJt"tztzt zdt"ztzz t"tzt zt6zz dtzt zz dt"zt6zzd9z}t|t" tt zdz zt t6zdt"zz zk(sJd&tdzzt6dzzd:tdzzt6ztzz d;tdzztdzzzdt"ztzt zt6dzzz dtzt6zt t6zzdtdzzdtzt6zz d&tdzzzdt"ztzt zz t6dzzzk(sJy)?NrrrrTr Frrrrrpositiver_)integerr)realrr9rr@i iXiiHirPiiTiYr6rrr:r;r|rr<rfc(ttdS)NFrfr/rrsrrztest_factor.. sF1a$>rc0ttdzdz dS)NrrTr rrrrrztest_factor.. sfQTAXT:rrrrh?r?rpMr{ih)rgfractioniryrorurrwr)rrrr.factor_list_includersrrmrr/ is_Integerrnis_PowrrbrurUrfrRrSrdrjrlr|rGrKr^rrrrq)rrrr_UVWrrrrr_f_zzif_qqiers2s2ps2npippinrs @r test_factorr sL 1q!t adQA AA AA 1q1 ATAq!Q<(JAq!Q ==?qAq6Aq6Aq6":; ;; ; q>a1a&1a&1a&!9: :: : q! aVaVaV$< = == = q1$ AAAA'?#@ @@ @ q>a1a&1a&1a&!9: :: : q %!q!fq!fq!f-E)F FF F q &11v1v1v.F*G GG G "1v1v1v&> >> > q>aW $$ $ q>aW $$ $ tAw "tAwm 33 3 Qw "qB7)n 44 4 !ax #QFQF+;'< << < tAaCy! $ac166]O(< << < !9>fQi222 2 qs QF8} ,, , qAv 11vh- // / !A#;!A#   !AqD&>Qq!tV ## # 1QT6A:/ "c1a4!8a-&7 77 7 !9!Q$q  !Q<1QT6!8 ## # !aT?a1fQh && &A1a!eQUAqD1H4JAq!Q !A#;1QT6!8ac* ** * !A#q>a1fQh1- -- - !A#t 1a4AaC 0 00 0sT"AsD!AsA $qs)  # #t ++ + $qAvz" #tAwtQUQUO/D'D DD D $qAvz" #tAwtAqD1H~'= == = 1QT6A:/ "adAEA:oq1uqj&@ @@ @ 1QT6A:/ "adAqD1Hq=&8 88 8 1QT6A:/ "q!a%y!a%'81&< << < 1QT6A:/ "q!Q$(|a&7 77 7 VQTAXA&A.Az9 :;A a!eaZQ  a!e,T!Q$(^;A !9>> !9>> Q AqD1HA VAYA !9Q   SVAX\1R(A ==?qAq6(m ++ + 1qA !9>> !q !adQhA%: :: : !d #1q1a4!8'< << <  T!W "#Q$a"2Q"6AQ 9IA9M!N OO O !Q$1Q," #AaC!| 33 3 1qs1u qA !9>> QT Auvax'((61F1H >> > !Q$1a4-47 3 T!WQYT!WQY' (( ( !AqD&1QT6/T!W 5 AQ MAQ M *+ ,, , !a%=AE !! ! 1"q&>aR!V ## # !a%=AE !! ! !A#( s1acAg> >> > !R%!)a-$ ? AA1q!t ad*QT1AqD81q5@1DE FF F !R%!)a-% @ AA1uQTz)AqD05A:= Aa!e   ! !! ! "qQx{A 2q51R4> !Q<1   !QTAaCZ!A#%&* +!a%!AqD&.Q$3Qq!tVad*2,0- -- - !E "a '' ' ?>? 9:; 1bA1eAqD1a4K1qs&CDE F BAAq1uq1uoAqy{ C DE FF F QTAX\&&(+A.q18=@DEEE AA**,Q/215x ADH II I $r( tQBx '' ' ArAvA QBF QU 3aQ l B CQT1LF AEFF ad7AEA:-A26 QBQKq1uI=1Aq1uqj1qb1"q&k1q5&9Aq1uqjL&H#IIK KA !9>> #adQh-!#$ /3q!a%y>A3E EE E #adQh-/ -QAY1A AA A $q!t* ad ++ + &#a%'CE!G,- .#c3q53; A 3' '' ' &#a%)a( )T3q53;2B-B BB B AadR1WQY AqD (1Q3q!t8 3bd1f >> > "ad #AA1r!t b8H'I II I "ad #AA1qs R'H HH H !aA!G nA !$ 6!$#F FF F !$ /1Q33q6#bd)9K3K KK K q!ta1f}aA . QFQUAJQ +3- -- - !ad1f~ & QUAJQ QTAX\1$51q1 a7H I+K KK K7AQKT!WSB2vq2vC s3w B3$S!H(=#> >> > s3w B3$S!H(=#> >> > r#v B33$ "4 44 4 r#v 2#q B7';"< << < s3w "s3wm 33 3 s3w "s3wm 33 3 r#vq !bfb\ 11 1 r#vq !bfb\ 11 1 DGBJT!WRZ8! < Qa^Q !d1gbj.!!4 5A7 77 7 a%!q1u Q 'A &)  !! ! a%!q1u Q 'A &)  !! ! Q AQK!##QTAX\Ad1gI%=$AAA &)t , 11 1 Aad AqD1H!AqDA q!tax 881Q3q!t8A:q!tax;PP 1adQh A#ad(AqD1H- .01!Aad AqD1H0E F !AaA qS!Q$(^ ,./d 356T1a4!8_ EGHs1a4x P A#ad(AqD1H  !"!A &)*!Aq!tax(8 9<= =@A!Q$(| L !9!a%! QU+QTAaCZ!Q$->-BCQTAXN NN N 1Qq1Q3q51Q3q57 "QqSU *QqSU 2R 7A !9AaC!G qb1fqsl3 33 3 1a41r!Q$wqy{ "R1WQT\ 1AaCE!GAqDL @2a46!8A:a< O Aa!Q$ A  !!Q$q )+-ad71a4< 8:a1q5!*q1udm!<= == = A1vq!tax(A A1vq!tax(A !9 QQQ/A1 A212!t22 "#2$ % %% % !d # QQqS6!!1qs7V"33QTAqD[ A616!t66 "#6$ % %% % q> a!eQZ!a%1q5&/AqD A=1=!t=d=#%&=')*=+,- >> > 1Q38acAg& '3x1~qsQw1q5 +R RR Rrc dtdgk(sJtdgk(sJttddgk(sJttdgk(sJttdzdgk(sJttd ztd zgdd d d fgk(sJtttd d ztd dz d tztddzz}|jdddgk(sJ|jddgk(sJ|jddddgk(sJ|jdddgk(sJ|jtdd|jdcxk(r.tdddfdftddtddfdfgk(sJJ|jtdd|jdcxk(r.tdddfdftddtddfdfgk(sJJ|jtdd|jd cxk(r.tdd!dfdftddtddfdfgk(sJJ|jtdd"|jd#cxk(r8tdd$tdd$fdftddtddfdfgk(sJJttd d ztd dz d tztddzz}t|dddgk(sJt|ddgk(sJt|tddt|dcxk(r.tdddfdftddtddfdfgk(sJJt|tddt|dcxk(r.tdddfdftddtddfdfgk(sJJt|tddt|d cxk(r.tdd!dfdftddtddfdfgk(sJJt|tdd"t|d#cxk(r8tdd$tdd$fdftddtddfdfgk(sJJttd zd z td zdz d%zztdzzd%tzdzdzz}|jd&td'd fd%ftd'd dfdfd(d)dtdd fdftdd d fd%fgk(sJttd zd*z td zd+z gtd,d-td.d/fddiftd0d1td-d2fddifgk(sJttd zd*z td zd+z gdtd,d-td.d/fddiftd0d1td-d2fddifgk(sJttd zd*z td zd+z gtd3d td4dfddiftd4dd5fddifd6tddfddiftddtd7d fddifgk(sJttdztd ztdz tdzdtdz tdz td z d zgd8ddifd9ddd:fd;dddd<fd=d%d ifgk(sJtd zd z td zd td zzz d ztdz }}}t|td%d d>gk(sJt|td%d d>td%d tdd fgk(sJt|td%d d?d@dtdd fgk(sJt|td%d d?d@gk(sJt|td%d Agk(sJt|td%d Atd%d tdd fd fgk(sJt|td%d BdCdtdd fd fgk(sJt|td%d BdCgk(sJt||gtd%d Agk(sJt||gtd%d Atd%d tdd fdd ifgk(sJt||gt d%d z Bd@dd ifd;ddifdtdd fdd ifgk(sJt||gtd%d Bd@dd ifd;ddifgk(sJttd ztd zd z gd8ddifd@ddifdDddifgk(sJttd ztd zd z gdEd8ddiftd'd dfddifdDddifgk(sJd%t d zzdFt dzzz dGt d zzzd t zzdGz}t|gk(sJt|ddH\}}|gk(sJt dIt|t|DsJ|tdJd%tdKzd%z z dftdJd%tdKzd%z fttdJd%ztdKd%fdtdKd%tdKzd%z zfgk(sJt|ddtddL\}}|gk(sJt dMt|t|DsJttdNttdOttdPy)QNrrT)r-r)rrr)rrrr9rrr?rirrrrF)rr)rr)fastr-)rr6epsrxriUrr={Gz?igMbP?ii'-C6?irrr)rrr)rrrrErtermi5kr|iiirrG)rrrrrr)rrr)rr)infr-)supr-rrrr)rrr8rrxr$)rr-c3K|]b\\}}}t|t|cxkxrt|kncxr+t|t|cxkxrt|kncdywrrprorrrrs rrz!test_intervals..t dJ(v1q!ur!u$r!u$ * U*U*JA(A*irh)rr-rc3K|]b\\}}}t|t|cxkxrt|kncxr+t|t|cxkxrt|kncdywrrrs rrz!test_intervals.. rrc0ttdzdz dSNrrrr0rrrrrz test_intervals.. syA{CrcLttdzdz jdSr)rrr0rrrrz test_intervals.. s tAqD1H~77K7HrcHttdzdz tdzdz gdS)Nrrrrrrrrrz test_intervals.. s"Iq!taxA&: Lr) r0rrrhrmrrrr5rfr|r)rrr real_part complex_parts rtest_intervalsr s Q<2   Q<2   QD !fX -- - Q >> > aA"a01Q3!S9I3I JKA ;;4; Wh$7 77 7 ;;=\=9 99 9 ;;Dd; +/B BB B ;;D; !lM%B BB B ;;8Ar?; +q{{s{/C O B a ! $Q"a'I1&MN OO OO O ;;8As+; ,  0E O B a ! $Q"a'I1&MN OO OO O ;;8At,; -1G P B q !1 %"a(2q/(JA'NO PP PP P ;;8Au-; .!++&+2I a B xD1 2A 6(2q/8TVXY?9[]^8_` aa aa a 8Aq> HRO +acHQ4D.DEA QD !gx%8 88 8 Q8TUWX>:Z9[ [[ [ QHQN 5(QQRTUDW9X XX X QHQN 5( CC C QHQN +r 11 1 QHQN +(1a.(1a.1QST0U/V VV V QHQN + HQPQN@SUV?W/X XX X QHQN +  >> > aV!Q 0B 66 6 aV!Q 0x1~xPQST~6VYZ\]X^5_4` `` ` aV " "  aV$v1v&6!Xa^9LqRSf8UV WW W  AHQN $)1Aq6(:VaVNO PP P !Q$AqD2ad7"RT)B.A Q<2  't>I| ?? J,/ fQi,HJ JJ J Xc1-"Q6:%c1-qtAv6xQ//"aAQ!B$q& 89; ;; ; (t8Ar?SI| ?? J,/ fQi,HJ JJ J :CD :HI LNrc ttdzdz jddddk(sJjddddk(sJjddddtd dfk(sJjdddtd ddfk(sJjddddtd dfk(sJjdddtd ddfk(sJjdddd dtd dfk(sJjdddd td ddfk(sJjddtdd tddtddfk(sJjdddtddtddfk(sJt t fdt t fdt t fdtdzdz tddddtd dfk(sJtdddtd ddfk(sJtdddd dtd dfk(sJtdddd td ddfk(sJtddtdd tddtddfk(sJtdddtddtddfk(sJt t dt tfdt tfdy)Nrrr)stepsr8rrrrrT)rrr=rrur?r{rc2dzjdddS)NrrT) check_sqfr1rsrrz"test_refine_root.. sQT$6$6q!t$6$Lrc.dzjddSr*rrsrrz"test_refine_root.. ad%7%71%=rc.dzjddSrrrsrrz"test_refine_root.. rrc 4tdddtddS)Nrrrr=r)r1rhrrrrz"test_refine_root.. sK1aXa=M$Nrc>tjdddSNrrrr)rr1rsrrz"test_refine_root.. stAw221a[2Irc"tdddSrrrsrrz"test_refine_root.. s{1a Dr)rrr1rhr|rGrDrrs@rtest_refine_rootr s QTAXA ==AQ= '6 11 1 ==Rq= )X 55 5 ==AT= *q(1a..A AA A ==Rt= ,"a"0E EE E ==AQ= 'Ax1~+> >> > ==Rq= )hr1or-B BB B ==AQT= 2q(1a.6I II I ==Rqt= 4"a"8M MM M ==A8As#3= 4"b9I8TVXZK[8\ \\ \ ==A4= (Xb"-=xB?O,P PP P ?LM => => 1qA q!Qa (QA,? ?? ? q"b *xA.C CC C q!Qad 38Aq>7J JJ J q"b 5(2q/29N NN N q!QHQ$4 5(2r:JHUWY[L\9] ]] ] q!QD )hr2.>R@P-Q QQ Q ?NO :IJ :DErcttdzdz dk(sJttdzdz t dk(sJttdzdz tdk(sJttdzdz t tdk(sJttdzdz ddk(sJttdzdz ddk(sJttdzdz ddk(sJttdzdz ddk(sJttdzdz dddk(sJttdzdz dddk(sJttdzdz dddk(sJttdzdz dddk(sJttdzdzdk(sJttdzdzdtzdk(sJttdzdzdtzdk(sJttdzdzdtzdtzdk(sJttdzdzddk(sJttdzdzddk(sJttdzdzt dk(sJttdzdztdk(sJttdzdztdz tdk(sJttdzdzt t dz dk(sJt t d y) NrrrrrrrrrctdSrr2rrrrz"test_count_roots.. s KNr)r2rrirfr|rGrrrtest_count_rootsr s q!tax A %% % q!taxbS )Q .. . q!taxbS )Q .. . q!taxbSrc 2a 77 7 q!taxR (A -- - q!taxR (A -- - q!taxQ '1 ,, , q!taxQ '1 ,, , q!taxRQ /1 44 4 q!taxRQ /1 44 4 q!taxRQ /1 44 4 q!taxRQ /1 44 4 q!tax A %% % q!taxRT *a // / q!taxRT *a // / q!taxRTr!t 4 99 9 q!taxQ '1 ,, , q!taxQ '1 ,, , q!taxaR (A -- - q!taxaR (A -- - q!taxaRTr 2a 77 7 q!taxaRaRT 2a 77 7 ?23rcttdtdzzdz td}|jdk(sJ|jddk(sJ|jddk(sJttdztdztd}|jdk(sJttdzdtdztzzdztd}|jdk(sJ|jdd dk(sJ|jdd dk(sJ|jdd dk(sJ|jd d dk(sJ|jd d dk(sJy)NrTrrrrrir6rrrr)rrsrr2)p1p2p3s rtest_count_roots_extensionr s[ d1gadlQT 2B >> q  >>a> A %% % >>a> A %% % adT!Wna4 0B >> q  adQtAwYq[ 1$a4 8B >> q  >>cr> *a // / >>cq> )Q .. . >>cr> *a // / >>bb> )Q .. . >>ba> (A -- -rctdtdzzdtdzzz dtzzdzjdtddk(sJjddk(sJjddk(sJt t fdttd ztzdzjdt tdztdzz dzdk(sJy) Nrrrr9rrrc&jdS)Nr)rootrsrrz test_Poly_root.. sqvvayrr)rrrrhr| IndexErrorrxrs@rtest_Poly_rootr s Qq!tVa1f_qs "Q &'A 66!9Q '' ' 66!9>> 66!9>> :() 1q1  " "1 %1q!t a)C CC Crcttdgk(sJttddgk(sJttdzgdk(sJttdzddgk(sJtttdztzdzzttdztzdzddgk(sJtttdztzdzzdttdztzdzddfdgk(sJttdztdztzdzzttdztzdzddddgk(sJttdztdztzdzzdttdztzdzddfdgk(sJttd zd z d ttd zd z dd ttd zd z dd gk(sJd tdzzd td zzz d tzzd ztdztzdz}tjt d d d d gk(sJt|jt|dgk(sJtd zt d z d t dd z z d t dd z zg}ttfdttfdtd|k(sJttd|k(sJttd|k(sJy)NrFmultiplerrr3rrrradicalsrr9rctSrr4rsrrz!test_real_roots.. s 1 rc6tttSr)r4rrrsrrz!test_real_roots.. s 41:(>rTr) r4rrxrrhrsrmr|r>)rrootsrs @rtest_real_rootsr s a=QC   a% (VH 44 4 ad y (( ( adU +x 77 7 aAA& 'F1a4!8a<,CQ+G GG G aAA& 7V 1q1 a>=$<& && &  1adQhl !'1q1 a!8!Q B CC C adAqD1HqL)E : 1q1 aA@$?& && & adQh / 1a4!8Q / 1a4!8Q /4    !Q$1a4!A#!A 1q1 A 7   HROQ#: :: : 7   F1aL> 11 1 1tAwA!A$q&k\1qtAv; 'E  56  >? a4 (E 11 1 d1- .% 77 7 d1g .% 77 7rc dtdzzdtdzzz dtzzdztddddg}ttjcxk(r|k(sJJtdztzdz}t |dt |dt |dg}t|t|jcxk(r|k(sJJttdzdz t d t dgk(sJttdzdz d t d dft ddfgk(sJttdzdz d t tdzdz dd t tdzdz dd gk(sJtd ztz dz }t|t |dt |dt |dt |dt |dgk(sJtdzt dzdt ddz z tzdt ddz ztzg}ttfd ttfd td|k(sJttd|k(sJttd|k(sJy)Nrrrr9rrrFr r rctSr)r3rsrrz test_all_roots..1 s ! rc6tttSr)r3rrrsrrz test_all_roots..2 s41:)>rTr) rrhr3rrxrsrmrfr|r>)frootsrgrootsrrrs @rtest_all_rootsr sa !Q$1a4!A#!Ar1oq! $F Q<47,,. 8& 88 88 8 1q1 AQlF1aL&A, 7F Q<47,,. 8& 88 88 8 QTAX DG8T!W"5 55 5 QTAX .T!WHa=47A,2O OO O QTAX .q!taxU+q!taxU+3   1q1 A Q<q! fQlF1aL&A,q!    1tAwA!A$q&k\!^Q1a[] +E  45  >? Q$ '5 00 0 T!t, - 66 6 T!W - 66 6rctdtjgk(sJtdtjgk(sJttdzdz tjddgk(sJttdzdztjdtzdtzgk(sJttdzdz tj}|ddgk(sJttdzdztj}|dtzdtzgk(sJttdzdz t ddz tj}|ddgk(sJttdzdz t ddztj}|dtzdtzgk(sJttdzdtzztjddtzzddtzz gk(sJttdzdtzzttjddtzzddtzz gk(sJtdtzd zjd gk(sJttd ztzdzd }t d }t |djd|tjusJt|ddk(sJt |dt d d k(sJt|djd|tjusJt |dt d d k(sJt|djd|tjusJt |djd|tjusJt|djd|tjusJt |djd|tjusJt|djd|tjusJt d}t |djd|tjusJt|ddk(sJt |dt d d k(sJt|djd|tjusJt |dt d d k(sJt|djd|tjusJt |djd|tjusJt|djd|tjusJt |djd|tjusJt|djd|tjusJttdttdttdzdz ddgk(sJttdzdz }|ddgk(sJtttzdtzgk(sJttdtzzdtzgk(sJttdttdzdz }|jd|j!Dcgc]}|j"dc}k(sJt%ttdzdtdzzzdtdzzzdtd zzzd!td"zzzd#td$zzzd%tdzzzd&tdzzzd'zjdd(k(sJt%td)tdzzdz jd*k(sJt d+}ttt|zzd, \}t'|t|zzd-ksJycc}w).Nrrrrrrrurxgr)nz1e-5ghW!'gJ5ogJ5o?gP?gg'r9gg'?z1e-6cTtttztjSrrrrr5rrrrztest_nroots..l sQUA 5 5 7rcJtttzjSrrrrrrztest_nroots..m sQU 0B0B0DrgctdSNrr5rrrrztest_nroots..w s F1Irrrorir{i@r6iVri ri\ iie z[-1.7 - 1.9*I, -1.7 + 1.9*I, -1.7 - 2.5*I, -1.7 + 2.5*I, -1.0*I, 1.0*I, -1.7*I, 1.7*I, -2.8*I, 2.8*I, -3.4*I, 3.4*I, 1.7 - 1.9*I, 1.7 + 1.9*I, 1.7 - 2.5*I, 1.7 + 2.5*I]gV瞯 )) ) eAh< " "8S 1QVV ;; ; eAh<5q> )) ) eAh< " "8S 1QVV ;; ; eAh< " "8S 1QVV ;; ; eAh< " "8S 1QVV ;; ; eAh< " "8S 1QVV ;; ; eAh< " "8S 1QVV ;; ; -C eAh< " "8S 1QWW << < eAh<1   eAh<5q> )) ) eAh< " "8S 1QWW << < eAh<5q> )) ) eAh< " "8S 1QWW << < eAh< " "8S 1QWW << < eAh< " "8S 1QWW << < eAh< " "8S 1QWW << < eAh< " "8S 1QWW << < ;78 &(DE !Q$( c{ ** * 1a4!8 E T3K   !a%=T!VH $$ $ !ac'?tAvh && & ?-. QTAXA 88A;1;;=9a3133q69 99 9 tArEBq"uH$s1b5y042:= ad AqD[!#)!Q$;/18A>q      tE!Q$JM"))+ ,1X YY Y EFA QqSC CQ q1Q3w<&  :s _/c:tdzdtdzzz dtdzzztdzz }t|jtjdtj dik(sJt|tjdtj dik(sJy)Nrr9rr)rrr6rmrXrrs rtest_ground_rootsr' s| 1qAv !Q$A%A 7   !aeeQ%: :: : ?quua3 33 3rc tdztdzz dztdztz dzdz}tdzdzdz}tdztzdzdz}tdz dz}tdk(sJttfdttfdt td|k(sJt td|k(sJt td|k(sJt td|k(sJtt dy) Nr9rrctdSrr7rsrrz+test_nth_power_roots_poly.. s3Aq9rc$ttSr)r7rrsrrz+test_nth_power_roots_poly.. s3Aq9rrr{cDtttzdttSr)r7rrrrrrz+test_nth_power_roots_poly.. s0D Aq!Q1r)rr7r|rr/r?)f_2f_3f_4f_12rs @rtest_nth_power_roots_polyr1 s  1q!t aA a4!8a> >  / 0RG ;; ; QTAXA  q"g &" ,, , acAXA  m , 33 3 QTAXA  q!f %!Q // /rcttdzdz }|jddtt gddtt gk(sJ|jttt ddgtt ddgk(sJttdzdz}|jtt tdz gtt gk(sJtttz dz}|jttdddgtgk(sJttdzdz}|jtdz t dz gtdz t dz gk(sJy)Nr9rrrr)rrwhich_all_rootsrfrs rtest_which_all_rootsr7 s- QTAXA  aQ^ ,BA2 >> >  aQB2. /Ar1b> AA A QTAXA  a!QqS\ *q1"g 55 5 acAXA  aAr1- .1# 55 5 QTAXA  acA2a4[ )acA2a4[ 88 8rcttdztdzztdzztzdz}|j}tdtzt zdz }t |jDcgc]\}}|||s|c}}dgk(sJttdttdttdttd ttd ycc}}w) Nr9rrrrcRttdztjddSNrrr)rrrQ same_rootrrrrz test_same_root.. s4Ab)33Aq9rcbttdzdztdjddS)Nrrrrr)rrrOr;rrrrz test_same_root.. s&41qA/99!Q?rcXttdzdztjddSNrrrr)rrrRr;rrrrz test_same_root.. s"4Q 40::1a@rcttttdzzdzttj ddSr>)rrrrPr;rrrrz test_same_root.. s*4AqD1 RU3==aCrc`tttzdztj ddSr:)rrrrPr;rrrrz test_same_root.. s"4A "-771=r) rrr;rqrfrj enumerater3r|rGrIr?)rrr0r_rs rtest_same_rootrC s QTAqD[1a4 ! #a '(A B QURZ!^ B#AKKM2 @$!QbBiA @QC GG G ? 9; ; ?A ; @B ; CE & =? As 5C+C+c ttdzdz tdz zjttdtdzzi}t |tdt dtdzzdz dzdft dtdzzdz dft dtdzzdzdfgfk(sJttdzdz tdz zjttddt ddzzzi}t |tJy)Nrrrr9)rbrrrsr=rhrs rtest_torational_factor_listrE s Aa!A#$$a1tAw;%89:A "1a (R Qa[ ! a # Qa[ A q! Qa[ A q!2#-$ $$ $ Aa!A#$$a1q(1a./@+@(A%BCDA "1a ( 00 0rctddk(sJtddk(sJtttk(sJtttusJttdtdx}dk(sJt |t sJtdtx}dk(sJt |t sJtdtd k(sJd td zzd z d tzd z d tzd zd f\}}}}||||fDcgc]}t|tc}\}}}} |j|d || fk(sJt||fd ||fk(sJt||ftd ||fk(sJt||ftfd ||fk(sJt||fx}d || fk(sJt |t sJt||fd d || fk(sJt||fdd ||fk(sJtd zd z ttd zz }t||k(sJt|dttd z k(sJtd zd z ttd z z }t||k(sJt|dttd zk(sJttd zd z d z td z d z fd td zd fk(sJttd ztz ttz z d ttz z td ztz zk(sJttd ztd zz ttz z tttzk(sJttd ztd zz ttz z tttzk(sJttd ztd zz ttz z ttzk(sJttdzd z td zd z z td ztzd ztd zz k(sJttdzd z tjz td zd z z td ztzd zd tzd zz k(sJttd tzd ttzzd zttd zz ttd zk(sJttd ztd zz t}tttz t}tttztd}td td}t||fd ||fk(sJtdztd d z td zzzd td zdztzz dtd zz }td zd z }t||fd d td zd tzz dz ttd z fk(sJtdtzdzt}ttdz tdzztdzztdzz d td zzzdtzz d zt}t||fd | | fk(sJttdz d zt}ttdz d zt}|j|tddz ttdzttttdzttfk(sJ|j|d tdtzdztttdtzdzttfk(sJd tzd tzd d d fd tzd tz ddtz dtzfd tz d tzdd tz d tzfd tz d tz d d d fg} | D]\}}} }}t||fd ||fk(sJt|t} t|t} t|t}t|t}| j| | | |z|fk(sJ| jj| j|j|jfk(sJ| jj| jd |j|jfk(rJtttd}td td}|j|d tttdtd tdfk(sJ|j|d tttdtd tdfk(sJtdtztztztd}td td zztztd}|j|d tdtzd ztdtd tztztdfk(sJdtzd tzz dt tz d zzz t tz t tzd zzz }t|j"d k(sJt%td z }t%td z} d|d zzd z|d z d zz| d zzd z d|d zzd zd| d zzd zz|z| zzd|d zzd z|d zz| d zzz d| d zzd z| d z d zz|d zzd z zd| d zzd z|d zz| d zzz d t|d z| d zzd!zzz d|d zzd z |z| d zzd z d| d zzd z|d zz| zd z z d|d zzd z|z| d zzd z d| d zzd z|d zz| zd z zzd |d z| d zzd!zt'dd zzz z}t|j"d k(sJt)d"d#}t+|td zd z ztd zz td kDftd ztd zd tzzz d f}t+|td z ztd kDfd tz d f}t||k(sJtd |zd |zk(sJtd |zd |zk(sJttd zd z td zz |ztd z |zk(sJttd zd z td zz |ztd z |zk(sJt+td zd z td zz td kDftd ztd zd tzzz d f}t+td z td kDfd tz d f}t||k(sJtd |zd |zk(sJtd |zd |zk(sJttd zd z td zz |ztd z |zk(sJttd zd z td zz |ztd z |zk(sJtd$d%}t|d&tj,usJ|j.td tj,usJt1|tj,usJt3d'dd}t|d(dz|d(dzk(sJt5|d)|d*dz|d+zzd|d,zt z z }t|t t5|d)|d*dz|d+zzzd|d,zz t z k(sJttd zd ztt6z z tt6zk(sJycc}w)-NrrctdS)Nrrr)r8rrrrztest_cancel.. s vi0rr rHrr5rr6r9rrTr F)rrrZrrrr|rrr)includer7rr\rg{Gzt?r/rr`) commutativeap (2*1*(x - 1/x)/(x*(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x)) - 2*1*((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))*((-x + 1/x)*((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))/(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x) + 1)*((x - 1/x)/((x - 1/x)**2) - ((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))**2/(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x) - 1/(x - 1/x))*(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x)/x - 1/x)*(((-x + 1/x)/((x*(x - 1/x)**2)) + 1/(x*(x - 1/x)))*((-(x - 1/x)/(x*(x - 1/x)) - 1/x)*((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))/(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x) - 1 + (x - 1/x)/(x - 1/x))/((x*((x - 1/x)/((x - 1/x)**2) - ((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))**2/(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x) - 1/(x - 1/x))*(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x))) + ((x - 1/x)/((x*(x - 1/x))) + 1/x)/((x*(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x))) + 1/x)/(2*x + 2*((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))*((-(x - 1/x)/(x*(x - 1/x)) - 1/x)*((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))/(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x) - 1 + (x - 1/x)/(x - 1/x))/((x*((x - 1/x)/((x - 1/x)**2) - ((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))**2/(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x) - 1/(x - 1/x))*(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x))) - 2*((x - 1/x)/((x*(x - 1/x))) + 1/x)/(x*(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x)) - 2/x) - ((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))*((-x + 1/x)*((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))/(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x) + 1)/(x*((x - 1/x)/((x - 1/x)**2) - ((x - 1/x)/((x*(x - 1/x)**2)) - 1/(x*(x - 1/x)))**2/(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x) - 1/(x - 1/x))*(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x)) + (x - 1/x)/((x*(2*x - (-x + 1/x)/(x**2*(x - 1/x)**2) - 1/(x**2*(x - 1/x)) - 2/x))) - 1/xr) _signsimpMr)rr9r,)r9rr8)r8rrir|rrrrrsrrmrrqrrQrris_MulrrrhrnrtNaNrryrwrurf)rrrrrrr_rrrpairsr)pfpgpppqr`rrrp4rLexprs r test_cancelrV s !9>> !9>> !9>> ":   :01f~ A) ++ + a  fa AY .. . a   &!  )) )1a4!QqS1WacAgq0JAq!Q()1a|5!41:5JAq!Q 88A;1a) ## # 1a&>aAY && & 1a&! Aq )) ) 1a&1$ Aq!9 ,, ,q!f~ A1a) ++ + a   1a& %!Q 22 2 1a& &1a) 33 3 AAQK A !9>> !E "a$q'k 11 1 AAQK A !9>> !E "a$q'k 11 1 1a46A:qsQw' (QAqM 99 9 1a4!8a!e$ %AEAqD1H)= == = 1a4!Q$;Q' +q1u 44 4 1a4!Q$;Q' +q1u 44 4 1a4!Q$;Q' (AE 11 1 1a4!8adQh' (QTAX\AE,B BB B 1a46AFF?QTAX. /AqD1HqL1Q373K KK K 3qs8aAh&*SVaZ8 9SVaZ GG G QTAqD[!A QUAA QUAg&A Q'"A 1a&>aAY && & 1Q! QT!!QtAwY]A$55$q' AA 1qA 1a&D )aA!aT!W-M MM M RTAXqA adUQT\AqD 1a4 '!AqD& 01Q3 6 :A>A 1a&>a!aR[ (( ( QqS1WaA QqS1WaA 88A;1Q46 QUAb! QUAb!# ## # 88At8 $ QqS2Xq$ QqS2Xq$)& && & QAq!Q QAr2a4A& QAr1Q3!$ QAq!Q  E #G1eQq!f~!Q*** !QZ !QZ !QZ !QZyy}b" 5555vv}}RVV$(8888vv}}RVVT}2rvvrvv6FFFFG Q'"A Q'"A 88  $q!G,d1a.HI JJ J 88At8 $ Q'"DAg$>)@ @@ @ QqSUQY'*A Qq!tVAXq)A 88At8 $ QqS1Wa($qs1ua*H)J JJ J Q$1*ua!eaZ' '(1q5A26A:*>?A !9  t ## # QW A QW A QT'A+A "1a4 ' )R1Wq[2ad7Q;,G,I!,K KrRSUVRVwYZ{\]_`\`N`abdeaeNe eiklmoplpipstitxy{|x|w|@AxAiBCDFGCGiGHIiI IMOPQSTPTMTWXMXZ[]^Z^L^_`bc_cLc cfghlmnpqmqrsuvrvmvymh@f@ A ad7Q; !Q$ q Bq!tGaKA#5a#7#9 9R1Wq[!OAqDQV ## # 1a4!8a!e$R' (QUBJ 66 6 1a4!8a!e$r) *q1ul :: : QTAXA&A.!a%!Q$1*1Et0L MB QUQU#ac4[ 1B ":   !B$<1R4   !b&>QV ## # 1a4!8a!e$R' (QUBJ 66 6 1a4!8a!e$r) *q1ul :: :  H@A AB !u % .. . 166!Q<155  A;!%%   S!QA !C&1* 3! ++ + qw41qw.. /!ag+/ AD $ ?? ?rc<ttdzdtzzdztdj\}}|k(sJ|tjk(sJttdzdtzzdztdj\}}|j k(sJ|tjk(sJttdzdz t ddz tzzt ddz ztdj\}}|ttdzdtzzdztdk(sJ|dk(sJttdzdz t ddz tzzt ddz ztdj\}}|ttdzdtzzd ztdk(sJ|dk(sJtttzttttfd ttd ttfd y) Nrrr9rPrrQrrrc$jSr)make_monic_over_integers_by_scaling_rootsrsrrz@test_make_monic_over_integers_by_scaling_roots.. qJJLrrTc$jSrr[rsrrz@test_make_monic_over_integers_by_scaling_roots.. r]r) rrr\rPrPrrmrr|r)rrrs @r.test_make_monic_over_integers_by_scaling_rootsr_ s QTAaCZ!^Qt,A 6 6 8DAq 6M6 ;; QTAaCZ!^Qt,A 6 6 8DAq    ;; QT!Vad1fqj 1Q46 )1T:A 6 6 8DAq QTAaCZ!^Qt4 44 4 6M6 QT!Vad1fqj 1Q46 )1T:A 6 6 8DAq QTAaCZ"_a5 55 5 6M6 QqS!QA :LM QtA :LMrcttdzdz }|jd\}}|tjk(sJ|dusJy)Nr9rT)by_nameF)rr galois_groupr[D4)rralts rtest_galois_groupre sI Q!VaZA ^^D^ )FAs %(( (( ( %<. sga!orrrrQrgпg?c3<K|]}t|tywr)rrrrs rrztest_reduced..s.qz!T".sc&jSr)reduce)G_poly f_wrong_genssrrztest_reduced..sv}}\:rc34K|]}|jywrrris rrztest_reduced.. $Qqyy$c34K|]}|jywrroris rrztest_reduced..rprq)rrr9r:rkrrrhcontainsr|rBrrrrrr) rrrrr4f_polyQ_polyr_poly zero_poly const_polyrlrms @@r test_reducedry s !Q$A 1q!t#A A1a4!8A 1aA 1q!t aA 1a=QF "" " 1aA 1a& (( ( A 88A;1a&  ac1a$q!Q-(A QTAqD[1_a#A ga$/!Q 88 8 gaAq51v >> >$A ahhqkAq6 ** * !Q$A !A!Q$A+/1Q37+,A A!Q$q1Q3q5 1a46 )AqDF 2QT!V ;adU1Wq!tAv=MPQRZ[\^_R`P`=`aA A 1a=QF "" " 88A;1a&  1ae $Q '1 ,, , 88AE8 "1 % ** * ::a=D  ::a!e  %% % 1qc1 1#q )) ) 56 !AqD&1a4-!A#% &F tAqD1a4K!O,d1Q37m< =F1a4#a%1*$s1uQw.QT9C1HDs1a4xOQRTU^bc419s1a4x'#a%/AdCEF !Q$ 'F == VV$4 44 4 == DAq .A. .. . a  !Q$A !+Q15L ::;Q1 I == #DAq $!$ $$ $ 999aAJ == $DAq a   99;!   $!$ $$ $rc tgtttgk(sJttdzdztdztztdzzgttddtdzzdtdzzgk(sJttdzdztdztztdzzttztdzzgtttddtdzztdzdtdzzgk(sJttdzdztdztztdzzgttdd t dtdzzttt dtdzzttgk(sJttdzdztdztztdzzttztdzzgtttdd t dtdzztttt tdztttt dtdzztttgk(sJttdzdz tdzdz gtdz gk(sJtt tdzdt tdzdgtdz gk(sJdtdzzttzzd tzz dz dtzdtztzztdzztdtzz ttzzdtdzzz g}td ztdztdzzz dtztdzztzz d tztdzzztdztdzzzd z }t|tttdd}|dtztzdtzzdtdzzzdtdzzzdtdzzztd zzddtzztdzzdtdzzzdtdzzzdtdzzzdtd zzzdtdzzzddtzzdtzzttzzdtdzzztdzztdzzddtzztdzzdtdzzzdtdzzzdtd zzzdtdzzztdzzgk(sJt ||tttddd \}}tt||jDcgc] \}}||z c}}|t |dk(sJttzdtzz dtdzztdzz g}t|ttdtdzdtzz tdzdtdzzz ttzdtzz gk(sJt|ttdtdzdtdzzz tdz dtdzzzttzdtzz gk(sJt|dd tdzdtzz tdzdtdzzz ttzdtzz gk(sJtdgtdgk(sJttdzdtzzgttdtdzzdtzzgk(sJttdttdzdz tdzdzgdtdzgk(sJttdzdz tdzdzgdtdzgk(sJttdycc}}w)Nrrr9rrXr&rrZTr$r rr|rrFr;r)rrr r)r$rNr0rctdgSr)r:rrrrztest_groebner..=s hsmr buchbergermethodf5bc0tttgdS)Nunknownr~)r:rrrrrrztest_groebner..BsxAyAr) r:rrrrrlr9sumrr r|rBr)r_rrrrrrs r test_groebnerrst B1a B && & QTAXq!tAv1}-q!5 Aa!Q$hPRUVXYUYPYEZ ZZ Z QTAXq!tAv1}ac!Q$h7Aq RWY\]_`\`W`bcefbfhilmoplphpVq qq q QTAXq!tAv1}-q!5 M a!Q$h1 tBAIq!45 66 6 QTAXq!tAv1}ac!Q$h7Aq Y] ^ b1a4iAq !41aA#6QAXq!Q8OP QQ Q QTAXq!tax( )a!eW 44 4 R1a["QT1+. /AE7 :: : 1a4!A#! a 1qs1uq!t!3Q1Wqs]Qq!tV5KLA 1q!tAqDy1Q3q!t8A:%1QT 1AqDAI=AAAq!Q%8A QQqS1QT6)AadF2Qq!tV;adBQqS1a4!AqD&(1QT61AadF:Qq!tVCa1fLQqS1Q31$qAv-14q!t;QqS1a4!AqD&(1QT61AadF:Qq!tVCadJL LL L 1aAq!uD IDAq Q1A111 5a9K KK K 1qsAadFQTM"A Aq!9 - A!QTAadF]AaC!A#I. // / Aq!9 - A!Q$A!Q$!ac 2 33 3 AYd 3 A!QTAadF]AaC!A#I. // / QC s "" " QTCE\NAq )c!Q$hQ.>-? ?? ? 34 QTAXq!tax( >1q5' II I QTAXq!tax( 7AE7 BB B :AB'2s ] c ttztztzttzttzzttzzttzzttztzttztzzttztzzttztzzttztztzdz g}t |ttttt }dtzdtdzzzdtdzzz dtzz dtzdtzzdtdzzz dtdzzzdtzzdtdzzdtd zzzdtd zzz dtdzzz dtztdzzdtzztdzz dtdzzzdtzztd ztd zz tdzz dzg}t |ttttt |k(sJ|jt |k(sJdtd zzd tdzzzdtd zzz dtdzzz dtdzzz dtdzzzdtdzzzdtzz dzdtztdzzdtztd zzz dtztdzzzdtztdzzzdtztdzzzdtztdzzz dtztzz dtzzdtdzzz dtd zzz dtdzzzdtdzzzdtdzzzdtzz dzg}t |ttt }dtzdtdzzzd td zzz d!tdzzz d"tdzzzd#tdzzzd$tdzzzd%tzz d&zdtd zzd tdzzzdtd zzz dtdzzz dtdzzz dtdzzzdtdzzzdtzz dzg}t |ttt |k(sJ|jt |k(sJtdztz dtzz dzd'tztdzztzdz g}t |ttt }tdztz dtzz dztdzdtzz tzdz g}t |ttt |k(sJ|jt |k(sJy)(Nrr&r9rr|rrrr6rr{rrlroNii liii8irr;irl;7>rIl*El2t5T Jl"3CR7 l}wSo8lHg51n?l3&[Tle t{l*JwiC1r) rrrrr:rYrXfglmrrr)r_rras r test_fglmrEs QQ!ac AaC!A#-qs1uqs1u}qs1u/Dqs1u/LaPQcRSeTUgXYkZAAq!Qe,A !a1f qAv!# !ac AadFQq!tV#ac) !Q$1b51QT6!AadF* !AqD1Q3A!Q$&1, 21 q!ta  A Aq!Q - 22 2 66#;!   1a4"QT' Bq!tG #c!Q$h .AqD 83q!t8 Cc!Q$h NQTUVQV VYZ Z Aad SU1a4Z#a%1*,tAvad{:SU1a4ZG#a%PQSTPT*TWZ[\W\]^W^^ A 1a4 ad( #%(AX .04QT  :S T !Q$AqD2ad7"SAX-1a47#ad(BSAXMPSTUPUUXYY  A Aq!3 '1 ,, , 66#;!   AAaC! RTAqD[1_q01AAq$A 1q1Q3 1qs Q A Aq!5 )Q .. . 66%=A  rctttgttdusJttdztdzzgttdusJttttgtttdusJttttgttttdusJttztz ttztz ttztz g}t|tttdusJtdzdtztzz dzttdzzttdzzzdtdzzdtdzzz g}t|tttdusJy)NTrrFrr)r<rrrr)r_s rtest_is_zero_dimensionalros! 1vq! , 44 4 1q!t }a 3u << < 1ay!Q 2d :: : 1ay!Q1 5 >> > 1q!A#'1Q37#A q!Q *d 22 2 A!A 1QT6AadF?AadFQq!tVO.%?Aaii%?rqc34K|]}|jywrrrs rrz%test_GroebnerBasis..rrqr{c34K|]}|jywrrrs rrz%test_GroebnerBasis..!;!))!;rqc34K|]}|jywrrrs rrz%test_GroebnerBasis..rrq)rrr:rrr;rrTanyexprsr rrrPr$rZrr)r_rr4rrs rtest_GroebnerBasisr}s 1qsAadFQTM"AAq *A A!QTAadF]AaC!A#I.A!"$A$q!Q-$A$ AGQ 3q 88 8 a '4 // / q6Q;; Q41Q4<! , , Q41Q4<! , , Q41Q4<! , , QR5AabE>#%?12%?"?? ? Ra5AbqE>#%?12%?"?? ? 77a<< 77a<< 66aV   88r>> 77g   6M6 a== 6M6 a== 7N7Aq 6A Q41Q4c!;QqrU!;;; ; Ra5AbqE>c!;QqrU!;;; ;;E %sKctttttk(sJtttttk(sJtttztttzttk(sJttt tzttt tztt tk(sJtttzttttzttk(sJttt tzt tttt tzt ttk(sJtttzdtzt dzzzdztttzdtzt dzzzdzttt k(sJtdtt zdzzdz tdtdzzdtzt zzdt dzzzdz tt k(sJtttt zdzzdz tttdzzdtztzt zztt dzzzdz ttt k(sJtdtztt zdzzdz tdtztdzzdtztzt zzdtzt dzzzdz ttt k(sJtdtt zdzztz dz tdtdzzdtzt zzdt dzzztz dz ttt k(sJtttt zdzztz dz tttdzzdtztzt zztt dzzztz dz ttt k(sJtdtztt zdzztz dz tdtztdzzdtztzt zzdtzt dzzztz dz ttt k(sJtttzttzdzztt zdzztdtzt zdtztzztdzzt dzzdtdzzzttt k(sJtttzttzztt zdzzttdztdzzttdzzt dzzzttdzzt dzzzdt ztdzztdzzzdtzt ztdzzzttdzzzttt k(sJttttzt zttt tttzt zttt k(sJtttzdztttdzdtztzztdzztt tk(sJtttzdztttdzdtztzztdzztt tk(sJtdttdtk(sJttdtttztttttzttk(sJtttztttttzttk(sJtdtzdzdzd z ztd d z z}t|j|jk(sJttdzztddz z}t|j|jk(sJy) NrIrr?rr9rrctdSr)rrrrrztest_poly..r.rrr) rrrrrurrPr|rErmrrb)expr1expr2s r test_polyrs 7d1aj  7d1aj  A;$q1ua+ ++ + CF tAAJ3q6: :: : A1 a!eQ!2 22 2 CF A '4CF CFA+F FF F !ac!Q$h# $QqS1Q3q!t8^b-@!Q(J JJ J 1q51* q !T!AqD&1Q3q5.1QT6*AA*Eq!%L LL L  1q51* q !!AqD&1Q3q57"2Qq!tV";a"?AqI JJ J ! A qs1a4x!A#a%'1AaC1HAadF#:Q#>#BAq!L MM M  A "1QT6AaCE!G#3a1f# >> > Aq5!A qvvq U + ,, , qvvq CE2U C DD Drcttttztttztk(sJttttztttztk(sJyr)rfrrrrrtest_poly_matching_consistencyrsH tAqz>T!A#q\ )) ) 1:>T!A#q\ )) )rc ,ttttttzz t tt zz ztgt t ztzt tzz tt zzttzt zz k(sJy)Nr)rbr/rrfrrrrrrtest_issue_5786rsr & QqS1qs7)*- .23Aa!A#!1Cac!e1K LL Lrc0Gddt}ttttzzz }ddtzz }t||||k(sJt|||z|||zk(sJt|||z|||zk(sJy)NceZdZdZy) test_noncommutative..fooFN)__name__ __module__ __qualname__is_commutativerrrfoorsrrr)r_rrr8)rrrs rtest_noncommutativersd 1qs7 A AE A #a&>SV ## # !c!f* SV ++ + !CF( qQx '' 'rc tttdzttdzzzt tztd Jtttdzt dtdzzt tzzdzt JttttJttt dtzJy)NrrrUrr)r>rrrrsrurrrtest_to_rational_coeffsrs  QTAadF]T!W $a5 7:> ?? ?  QTDGAqDLQ' '! +Q/ 148 99 9 d1aj ) 11 1 d4719o . 66 6rcttttzzdtdfttzdfgfk(sJttttzzdtdzttzzdfgfk(sJyr)r.rrr,rrrtest_factor_termsrsf q!a%y !a1a&1q5!*)=%> >> > Aq1uI 11qs A&7"8 88 8rc|ttdzdztdjgdk(sJttdztzdzttdjdggddggk(sJttdztzdztttdjdggggdgdgggk(sJy)NrrrPr)rrrrr)rras_listrrrrr test_as_listrs 1q!D ) 1 1 3| CC C 1q1 a4 0 8 8 :sBA>O OO O 1q1 aAd 3 ; ; =78cURDA3*4M NN Nrc ttdtztdtdfgfk(sJttdttztttdttdfgfk(sJyr*)r.rsrrurrrtest_issue_11198rsd tAwqy !d1gAx%8 88 8 tAws1v~s1v .47c!fa[M2J JJ Jrcttjdtz}|jtjdtzk(sJy)Nr=)rrjevalfrrrs rtest_Poly_precisionr#s: RXXc]1_A 199;"((3-/ )) )rctddtdzz ttddtdzz tdk(sJy)NrrrUr)rrsrrrrrtest_issue_12400r)s? 1T!W9 q ! Ad1gI$ / 00 0rc Nttddtdzzdz tddtdzzdz tdddtdzzk(sJttdtddztdtddztdtdd zk(sJt tddtdztddtdztdtdzdz k(sJt dtdzdtdz d tdzk(sJt tdddtddzzzdz tdddtddzzzd z td dddtddzzzk(sJttddtdztddtdz tdd z k(sJttdtdzdz tdtdzdz tddz k(sJttdtdzdz tdtdzdz td tdzdz gtdtddzk(sJttddtdzzdz tddtdzzdz tddtdzzdz gdtdztddzk(sJt tddtd z tddtd z tdd td z ftddtd z k(sJt tdddtddzzzdz tdddtddzzzdz tdddtddzzzdz gtddddtddzzzk(sJy)Nrrrrr6r9rrr7r{rrFryrzrrarmi)rrmrsrhrrrrtest_issue_14364r.s qtQa[!!#QqT1tAw;%7%: ;x2RSVZ[\V]R]?^ ^^ ^ tAwx1~%tAwx1~'= >$q'(STVX/BY YY Y x1~d1g%x1~d1g'= >!B%Q-PQ/ QQ Q qay!DG) $47 22 2 qtQHQN**+A-qtQHQN9J5J/KA/M NRZ[]_`RaefijltuvxylzizezR{ {{ { x1~d1g%x1~d1g'= >$q'"* LL L qtDH}Q!T"X b 0 1T"Xb[ @@ @ !T"X a1d2hq!A$tBx-/B CtBxPXYZ\^P_G_ __ _ !a$q'k"1$adAQK&8&:AaD!d1g+L1uAK$q!tax.$q!tax.)I(J!KKKKKKLL11LLs'B/$AB;/B8;Cctdtzdtz zdtzk(sJtdtzdtz zdk(sJy)Nrrrr)r8rfrrrtest_issue_18205rPsD 1q51q5/ "a!e ++ + 1q51q5/ "a '' 'rctdzdztdz dzztdz dzztdz dzz}dtdzdzdftdz dftdzdtzz dzdfgf}t||k(sJy)Nrrrrr)rr,)rrs rtest_issue_8695rUs Aa!eaZ1q51*,Az9A1a4!8Q-!a%adQqSj1na-@A BF A;&  rc4ttdzttz dzttfdttfdttfdttfdttfdttfdy) Nrrc tdddS)Nrrrrrjsrrz"test_issue_19113..]sKAq$$?rctddS)Nrrrrjsrrz"test_issue_19113..^sKB$:rctSrrrjsrrz"test_issue_19113.._s JrNrctSrr rjsrrz"test_issue_19113..`s F2JrctSr)r6rjsrrz"test_issue_19113..as L$4rctdSrr*rjsrrz"test_issue_19113..bs$8Q$?r)rurr|rGrjs@rtest_issue_19113r[s` QSV a B ??@ ?:; ?23 ?./ ?45 ??@rcdtdzzdtdztztzz tdzz}t|tddttdtzdz z dzzk(sJt t ztzt tzz tt zzttzt zz }t|ttttzz t t zt zzk(sJy)Nrr)rrsrr/rfrrrs rtest_issue_19360res !Q$471QA%A !tAw '1a4719Q;.?!-C+C CC C 1Q1 qsQqSU"A !q !a!A#g1q%9 99 9rctttzttt}|j}||k(sJd|j |j k(sJdy)Nz(Copied polynomial not equal to original.z9Copied polynomial has different generators than original.)rrrrcopyr)rrs rtest_poly_copy_equals_originalrms[ Aq!Q D 499;D 4<424< 99 !ECE !rctttzttt}t j t j |}||k(sJd|j|jk(sJdy)Nz.Deserialized polynomial not equal to original.z?Deserialized polynomial has different generators than original.)rrrrpickleloadsdumpsr)r deserializeds r&test_deserialized_poly_equals_originalrvsi Aq!Q D<< T 23L < :8:  99 )) )KIK )rcztttdzztdzz tz t}|t k(sJyr)rrri)rs rtest_issue_20389rs2 AQK!q&(1,a 0F bS==rcddlm}|d\}}tdt|z|z z|d|z }|jt dk(sJy)Nr)symbolszw Rrr)sympy.core.symbolrrrfrrm)rrrrs rtest_issue_20985rsJ) 5>DAq ac!e Q! $D 4;;=AaD  r(Y__doc__rsympy.polys.polytoolsrrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>sympy.polys.polyerrorsr?r@rArBrCrDrErFrGrHrIrJrKsympy.polys.polyclassesrLsympy.polys.fieldsrNsympy.polys.domainsrOrPrQrRrSrTrUsympy.polys.domains.realfieldrV sympy.polys.domains.complexfieldrWsympy.polys.orderingsrXrYrZsympy.combinatorics.galoisr[sympy.core.addr\sympy.core.basicr]sympy.core.containersr^sympy.core.exprr_sympy.core.functionr`rarbsympy.core.mulrcrdsympy.core.numbersrerfrgrhrirjsympy.core.powerrksympy.core.relationalrlsympy.core.singletonrmrrn$sympy.functions.elementary.complexesrorp&sympy.functions.elementary.exponentialrq%sympy.functions.elementary.hyperbolicrr(sympy.functions.elementary.miscellaneousrs$sympy.functions.elementary.piecewisert(sympy.functions.elementary.trigonometricrusympy.matrices.denserv"sympy.matrices.expressions.matexprrwsympy.polys.rootoftoolsrxsympy.simplify.simplifyrysympy.utilities.iterablesrzsympy.utilities.exceptionsr{sympy.testing.pytestr|r}r~rr sympy.abcrrrrrrrrrrrrrrrrrrrrrrrrCrFrKrNrQrbrfrirmrprrrvr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"r.r1r8r=rCr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)r+r5r8r<r@rErMrUrYrbrdrkrmrrruryrrrrrrrrrrrrrrrrrrrr%r'r1r4r7rCrErVrXr_reryrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrsH :    ($>>>3955<%' ::+DD $"$9669:8';*,.>6555 *%ZS$YNxS>A P PAA7K2UKp0JD3 2 T-n6JB (F> ; G B A4466 G KG,","* 7: 6%.*:) (NVF+B2 ACPD=04'( @ J KET @!"/ ,74F 8 SIE(4 F&57n6& I8 K 8) 7B:;$ =,< =A' & C> + (D$?$A8Lt1Hh,4^v*r (DV ;7674 "@0@*g,T2. 0F38>* $0><GJN<F:0"O 8M`eWP;<S nNb%FP!4H.&D#8L7@Q!h4*0*9"?$ 1w/t? N8C%L-C`'T 3'