K irdZddlmZddlmZmZmZmZddlm Z m Z m Z ddl m Z mZmZddlmZdZdZd Zd Zd Zd Zd ZdZdZdZed ed fededfcZZededfededfcZZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,y) zETests for real and complex root isolation and refinement algorithms. )ring)ZZQQZZ_IEX) DomainErrorRefinementFailedPolynomialError)dup_cauchy_upper_bounddup_cauchy_lower_bounddup_mignotte_sep_bound_squared)raisescTtdt\}}|jddgk(sJ|j||dgk(sJ|dzd|dzzz d|zzdz }|j||d|dzzd|zz dztdd |ztd dztd d  gk(sJy) Nx i d)rr dup_sturmRrfs j/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/tests/test_rootisolation.pytest_dup_sturmr s R=DAq ;;q>aS  ;;q>aV ## # 1qAv !aA ;;q>a1a4!A#!1Br!H9Q;Bq3IBtTWL=Y YY Ycdttdttdttdtt dt dt dgttj k(sJtt dt dt dgtt dk(sJy)Nc"tgtSNr rr rz-test_dup_cauchy_upper_bound..$:2r$Br c6ttdgtSNrr$r%r rr&z-test_dup_cauchy_upper_bound..$:BqE7B$Gr cJttdtdgtSr))r rr%r rr&z-test_dup_cauchy_upper_bound.. 6Qa7I4 Pr rrr)rr rr rzeror%r rtest_dup_cauchy_upper_boundr/s{ ?BC ?GH ;PQ !2a5"Q%A"7 < GG G !2a5"Q%B"8" =A FF Fr cttdttdttdttdtt dt dt dgtt dd k(sJy) Nc"tgtSr#r rr%r rr&z-test_dup_cauchy_lower_bound.. r'r c6ttdgtSr)r2r%r rr&z-test_dup_cauchy_lower_bound..!r*r c^ttdtdtdgtS)Nrrr2r%r rr&z-test_dup_cauchy_lower_bound.."s"$:BqE2a5"Q%;PRT$Ur cJttdtdgtSr))r rr%r rr&z-test_dup_cauchy_lower_bound..#r,r rrr-rr)rr rr rr%r rtest_dup_cauchy_lower_boundr6s\ ?BC ?GH ?UV ;PQ !2a5"Q%B"8" =Aq II Ir cttdttdttdtdtdgttddk(sJy)Nc"tgtSr#r rr%r rr&z5test_dup_mignotte_sep_bound_squared..)s$B2r$Jr c6ttdgtSr)r9r%r rr&z5test_dup_mignotte_sep_bound_squared..*s$BBqE7B$Or rrr-rr)rr r rr%r r#test_dup_mignotte_sep_bound_squaredr;(sF ?JK ?OP )2a5"Q%B*@" EAq QQ Qr c tdt\}|dzdz jtdtddtdtdfk(sJjtdtddtdtdfk(sJt t fdtddtdd}}j||dtddtddfk(sJj||dtddtddfk(sJj||dtd dtddfk(sJj||dtd d tddfk(sJj||d td d td d fk(sJtddtdd}}j||dtddtddfk(sJj||dtd dtddfk(sJj||dtd d tddfk(sJj||dtd d td d fk(sJj||d td d td dfk(sJtddtd d}}j||dtddtd dfk(sJj||dtddtddfk(sJj||dtd d tddfk(sJj||dtd d tddfk(sJj||d td d tddfk(sJtddtdd}}j||dtdd tdd fk(sJj||dtdd tdd fk(sJj||dtdd td d fk(sJj||dtdd td d  fk(sJj||d td d  td d  fk(sJt t fdtdtdtdd td dtd d f\}}}}}j||tdd||fk(sJj||d||fk(sJj||tddd ||fk(sJj||tddd||fk(sJj||tddd ||fk(sJtdtdtddtddf\}}}}j||td||fk(sJj||| ||fk(sJj|||||fk(sJtdtdtd dtddf\}}}}j||td ||fk(sJj||| ||fk(sJj|||||fk(sJy)Nrrr)stepsrcNjtdtdS)Nr-rdup_refine_real_rootrrrsrr&z+test_dup_refine_real_root..6sq55aBAGr rrrrr rr-cNjtdtdS)Nrrr?rAsrr&z+test_dup_refine_real_root..XsQ%;%;Ar!ube%Lr reps)rKr=)disjoint)rrr@rr ValueErrorr )rstuvwrrs @@rtest_dup_refine_real_rootrW/sZ R=DAq 1qA ! !!RUBqE ! ;1r!u~ MM M ! !!RUBqE ! ;1r!u~ MM M :GH a8R1XqA ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"R)7L LL L a8R1XqA ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"R)7L LL L ! !!Q ! 31a"R*7M MM M a8R1XqA ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"Q(7K KK K ! !!Q ! 31a"R)7L LL L ! !!Q ! 31a"R*7M MM M b!9bQiqA ! !!Q ! 3Aq Bq!H97M MM M ! !!Q ! 3Aq Bq!H97M MM M ! !!Q ! 3Aq Bq!H97M MM M ! !!Q ! 3Aq Bq!H97M MM M ! !!Q ! 3B R1XI7N NN N LMqE2a5"R*bRj"Q(BMAq!Q ! !!Qr!Sz ! :q!f DD D ! !!Q ! 31v == = ! !!Qr!Sz ! C1v MM M ! !!Qr!Sz ! C1v MM M ! !!Qr!Sz ! C1v MM MBBBBr1I5JAq!Q ! !!QBrF ! ;1v EE E ! !!QQB ! 7Aq6 AA A ! !!QA ! 61a& @@ @A1r!QxAq1JAq!Q ! !!QBqE ! :q!f DD D ! !!QQB ! 7Aq6 AA A ! !!QA ! 61a& @@ @r c p tdt\ jdgk(sJ jdgk(sJ j dz zddgk(sJ j dz z ddgk(sJ j dz zd zgk(sJd d g} j dzdz |k(sJ j dz dz|k(sJ j d z dgk(sJ j dzd zz dzdd gk(sJ j d zd dzzz d zzdz gdk(sJ j dzd d zzz d dzzzd zz dzgdk(sJ j dzd dzzz d d zzzd dzzz d zzdz gdk(sJ j dz dgk(sJ j dzd zz dzddgk(sJ j d zd dzzz d! zzd"z gd#k(sJ j dzd$ d zzz d% dzzzd& zz d'zgd(k(sJ j dzd) dzzz d* d zzzd+ dzzz d, zzd-z gd.k(sJ j d zdgk(sJ j dzd zzdzd/dgk(sJ j d zd dzzzd zzdzgd0k(sJ j dzd d zzzd dzzzd zzdzgd1k(sJ j dzd dzzzd d zzzd dzzzd zzdzgd2k(sJ j dzd3gk(sJ j dzd zzdzd4d3gk(sJ j d zd dzzzd! zzd"zgd5k(sJ j dzd$ d zzzd% dzzzd& zzd'zgd6k(sJ j dzd) dzzzd* d zzzd+ dzzzd, zzd-zgd7k(sJ j dzdz d8d9gk(sJ j d zdz d gk(sJ j dzdz d d gk(sJ j dzdz d gk(sJ j dzdz d d gk(sJ j d:zdz d gk(sJ j d;zdz d d gk(sJ j dk(sJ j dzd dzzzd d zzz d dzzz d zzd?zgd@k(sJ j dzdA dzzz dB dzzzdCz gdDk(sJ jd d:zz dzzdE dzzz dA dzzz dF d zzzdB dzzzdG zz dCz gdHk(sJ jd d;zzdI dzzz dJ dzzzdK dzzz dCzgdLk(sJd< dzzdz } j|dMdNgk(sJ j|td dOtdPdtdQd:ftd d:td dfgk(sJ j|td d$OtdRdStdTdUftd;dUtd.s < $ %% % ' '1qAv (9 :, -- - ' '1qAv !Q$(>AqD(H1Q3(NQS(S T6 77 7 ' '1r!Q$wAqD(@2(E F> ?? ? ' '!Q$A 1a4(?"QT'(IBqRStG(SVXYZ\]Y]V](]`bcd`d(dgi(i jG HH H ' '!Q$AqD(83q!t8(Cc!Q$h(NQS(S TO PP P !Q$ A ' ' * &   ' 'r!Ry ' 9 R)RAY "Q(Bq!H!56 77 7 ' 'r!Sz ' : R*bRj !Bq"Ir!Ry#9: ;; ; ' 'r!T{ ' ; S"+r"bz "R2Y2r $;< == = ' 'r!U| ' < S"+r$} %3 bRj'AB CC C ' 'r!V} ' = T3-D# '"S#,3 )EF GG G ' 'r!W~ ' > UD/2dC= )BsCL"T4.+IJ KK K !Q$1a4')AqD.89QT>IERSGSVWWA ' ' * Q%Au Aur!U| < Q(Bq!H 1r!u~1r!u~ ? ?? ? ' 'r!V} ' = Q,1e %1e bEl'C Q(Bq!H 1r!u~1r!u~ ? ?? ?IJAq!QQT!$QT) *6q!t; < -Q. / $  $A ' ' * "qb7FQF+ ,, , ' 'r!\/B ' C a5&2a5& R1XI1ay1Bq!HbAh3G"Q%QSTUQVX YY Y777EFQAq&1a r:A:T T!A1.1A13F1q9ST9T T9T T ' '"Q@^:_ ' ` a5&2a5& R1XI1ay1Bq!HbAh3G"Q%QSTUQVX YY Y AqD1QT6Bq!tG#bd*S0A ' ' *, -- - ' 'r!Sz ' : a5&2a5& RBZK"R*51r!u~2r TVWY[\T]G^_ `` ` AA ' 'q ' 1R 77 7 ' 'q ' 1R 77 7 ' ' *vh 66 6 ' 'q ' 1fX == = ' 'q ' 1fX == = ' 'qa ' 8VH DD D 1qA ' 'r!Qx ' 8B >> > ' 'r!Qx ' 8bAh1a=QT=U UU U ' '1ay ' 9fX EE E ' '1ay ' 91ay"ov=V VV V 6A ' 'r ' 2a 77 7 ' 'r ' 2a 77 7 ' 'rq ' 9Q >> > R=DAq 1aA 5$))Br3K7A ' ' *w.A AA A R=DAq ;CDr c tdt\jdgk(sJjdgk(sJjdzdgk(sJjddzzdgk(sJjd zzd dgk(sJjd zz dd gk(sJjdzzd zgk(sJd dg}jd zd z |k(sJjd z d z|k(sJddzzddzzz ddzzzddzzzddzzz ddzzz ddzzzddzzzddzzz d dzzzd!dzzzd"dzzz d#d zzz d$zzd%z }j|}j|t d  t dd  fd ft dd  t d d  fdft d t dd fdft dd t dd fdft ddt d fd fgk(sJj |t d  t dd  ft dd  t d d  ft d t dd ft dd t dd ft dd t d fgk(sJj|t d  t dd  fd ft dd  t d d  fd ft d t dd fd ft dd t dd fd ft dd t d fd fgk(sJd z }j|d &gk(sJj|d'gk(sJj|d gk(sJj|d &d gk(sJj|d 'd gk(sJj|d d (d gk(sJdzdd zzz dz}j|t dd&gk(sJj|t dd&t ddt dd fd fgk(sJj|t dd'd)gk(sJj|t dd'd)d t dd fd fgk(sJj|t dd 'gk(sJj|t dd 't dd  t dd fd fgk(sJj|t dd &d*gk(sJj|t dd &t dd  d+fd fd*gk(sJd)d*g}j|d,&|k(sJj|d '|k(sJj|d,d (|k(sJdzddzzz dzz ddzzzddzzz ddzzz ddzzzddzzz }j|d-.gd/k(sJj|d0.d1d gd2fd3dd dgfd4dd d+gfd5d gd2fgk(sJd6zd6d7zzz d8d9zzzd z }d:zd;d9zzz d<d=zzzd>d?zzz d@dAzzzdBdCzzz dDdEzzzdFdGzzz dHdIzzzdJdKzzz dLdMzzzdNdOzzz dPdQzzzdRdSzzz dTdUzzzdVdWzzz dXdYzzzdZd[zzz d\dzzzd]d^zzz d\d_zzzdZd`zzz dXdazzzdVdbzzz dTdczzzdRddzzz dPdzzzdNdezzz dLdzzzdJdzzz dHdzzzdFdzzz dDdzzzdBdzzz d@dzzzd>dzzz d<dzzzdfdzzz dgdzzzd;dzzz dhd zzzdizz d z}j||zdt d d fd ft d dt ddfd ft ddd fd fdjdkgk(sJtdt \ttfdly)mNrrrrrZrrBrrZrr)rYr)r[rr)r\r)r]rrr`rrIrDir_i?ri@ ri#ri(iGUrLi6iTihid i<irrrr\rr]rrGr-Fbasis)rr)r[rrTr\rrr-rZr[r]-,i+.iL;i#rpiȸ0riτ&ij۪A%l+erl\2X6 ral7h$"lszc^rlEX3rl`MLl}F3rilVC]lN6e-A rlX.xrEl*xx gl4pTBls=l;m}rrrlrFrrCrdiiq}i /))rLrBr))rIrrc,jdzSr)dup_isolate_real_rootsrsrr&z-test_dup_isolate_real_roots..ms 8 8Q ?r ) rrr dup_sqf_partrrrrr)rrgrrs @@rtest_dup_isolate_real_rootsr!sL R=DAq # #A &" ,, , # #A &" ,, , # #AaC ([M 99 9 # #AadF + } << < # #AqD1H --1M MM M # #AqD1H -+{1K KK K # #AqD1HqL 1R 77 7  $A # #AqD1H - 22 2 # #QTEAI .! 33 3 1b52ae8bBh&QU2T!R%Z?$q!t)KdSTVWSWiW AqD A:  %ad  +-21a4Z 8:?1* EGKAqDy QSXYZSZ []a bA qA # #A & qE6Bq!H9 q !bAhYAq $:A#>"Q%AqARTU@V a8R1X  "bAh1%6$: < << < ' ' * a5&2a8) 1ay2a8)4r!ubAh6G Q(Bq!H 1a"Q%0 2 22 2 # #A & qE6Bq!H9 q !bAhYAq $:A#>"Q%AqARTU@V a8R1X  "bAh1%6$: < << < AA # #A1 # - 33 3 # #A1 # - 33 3 # #A &;- 77 7 # #A1 # -+ >> > # #A1 # -+ >> > # #A1! # 4 EE E 1qAv A # #A2a8 # 4 :: : # #A2a8 # 42a8R1X:NPQ9R8S SS S # #A2a8 # 4 GG G # #A2a8 # 4!RPQSTXXYHZ8[ [[ [ # #ABq!H9 # 5 ;; ; # #ABq!H9 # 5R1XI1ay;QST:U9V VV V # #ABq!H9 # 5+ FF F # #ABq!H9 # 5R1XIr?A:NP[9\ \\ \  $A # #A2 # .! 33 3 # #A2 # .! 33 3 # #A21 # 5 :: : 2!R%!Q$AqD(1QT61AadF:R1WDqAvMA # #AU # 3> ?? ? # #AT # 2 Az "VQA$7&!aW9MPVXY[eOfg hh h BArE C2I % )A Bq"u wq"u} ,x2~ = !R% OR\]^`b]bRb beopqsupueu uyDEFHJEJyJ JMXYZ\^Y^M^ ^amnoqsnsas svBCDFHCHvH HKWXY[]X]K] ]`lmnprmr`r ruBCDFHCHuH HKXYZ\^Y^K^ ^anoprtotat twDEFHJEJwJ JMZ[\^`[`M` `cpqrtvqvcv vyFGHJLGLyL LO\]^`b]bOb berstvxsxex x{HIJLNIN{N NQ^_`bd_dQd dgtuvxzuzgz z}JKLNPKP}P PS_`ace`eSe ehtuvxzuzhz z}I J K M O J O }O O R ^ _ ` b d _ d R d d g r s t v x s x g x x { F G H J L G L { L L O Y Z [ ] _ Z _ O _ _ b l m n p q m q b q q t } ~  A B ~ B t B B E M N O Q R N R E R R U \ ] ^ ` a ] a U a a d k l m o p l p d p p s y z { } ~ z ~ s ~ ~ A F G H J K G K A K K N R S T V W S W N W W Z \ ] ^ Z ^ ^ a b b A # #AaC ( bAh- r!QxAq2A6"Q(A8JKYfg hh h R=DAq ;?@r c  tdt\jdzzgdddifddddfgk(sJjdzz gddddfdddifgk(sJjdzdzdz dzdz dz gtd td fddiftd td fddd ftdtdfdddd fgk(sJjdzdzdz dzdz dzgtd td fddd ftd td fddd ftdtdfddd fgk(sJd zd dzzz d zdz }}j||gtdd gk(sJj||gtddtddtddfddifgk(sJj||gtdddddifdddifgk(sJj||gtdd dddifdddifdtddfddifgk(sJj||gtdd  gk(sJj||gtdd tdd tdd fddifgk(sJj||gtdd dddifdddifgk(sJj||gtdd  tdd dfddifdddifdddifgk(sJddzzdz dzdz }}j||gtd td fddiftd tdfddiftdtdfddiftdtdfddifgk(sJj||gdtdd td d fddiftd tdd fddiftddtdfddiftd dtddfddifgk(sJdzdz dzdzz dzz dz}}j||gtd td fdddftdtdfddiftdtdfdddfgk(sJdzdzz dzd zz ddzzz ddzzz}}j||gtd td fdddftdtdfdddftdtdfddiftdtdfdddfgk(sJdzddzzz dzz ddzzzddzzz dd zzz ddzzzd dzzz dzdd zzz ddzzzd dzzz dzz}}j||gddddifddddfddddfdddifgk(sJj||gddddigd fddddddgfddddddgfdddigd fgk(sJtdt\t t fd!y)"NrrrYrrrZrr[)rr)rrr)rr)rrrrBrrrrr\r]rGT)strict)rrrrr_rLrDFrrc.jdzgSr)dup_isolate_real_roots_listrsrr&z2test_dup_isolate_real_roots_list..s = =q1ug Fr )rrrrrrr)rrrrs @@r test_dup_isolate_real_roots_listrps R=DAq ( (!Q$(A 7 QF f!l34 55 5 ( (!Q$(A 7 aA, &1a&!12 33 3 ( (!a%QAq1ua!eQQRU)S T qE6BqE6 QF #1v1v&6A! %EAPRSTPU\]bchiXjGkl mm m ( (!a%QAq1ua!eQQRU)S T qE6BqE6 aL )beVbeV," DD D ( (!QR1X ( > a8R1X A '( )) ) ( (!QR1X ( > QF fq!f-. // / ( (!QR1X ( > QF fq!f-Bq!H 1v/FG HH H ( (!QbAhY ( ?2 EE E ( (!QbAhY ( ? q!H9r!Qxi 1a& )* ++ + ( (!QbAhY ( ? 1a& FQF+, -- - ( (!QbAhY ( ? q!H9b/Aq6 "VaV$4v1v6FG HH H QT6A:q!taxqA ( (!Q 0 qE6BqE6 QF #1vr!uo1v%> a5"Q%.1a& !RUBqENQF#; = == = ( (!Q ( = q!H9r!Qxi 1a& )beVbAhY,?!Q+H a8RU aV $1a"Q(';aV&D F FF F a4!8QTAqD[1Q3&*qA ( (!Q 0 qE6BqE6 aL )RUBqENQF+Cr!ubQRenZ[`aVbEcd ee e a4!A#:q!tad{Qq!tV+a1f4qA ( (!Q 0 qE6BqE6 aL )RUBqENaL+I a5"Q%.1a& !RUBqENaL#A C CC C a4!AqD&=1a4 "QT' )AadF 2Qq!tV ;bAg E!Q$ NPQSTPTWXYZ\]Y]W]P]`abcefbf`fPfijklnokoioPorsturuPuqA ( (!Qu ( = QF f!l3f!l5KfWXZ[V\M]^ __ _ ( (!Qt ( < QFJ '&aA,A)G aA,B (6Aq6:*F H HH H R=DAq ;FGr ctdt\}}|dzdz }|dzdz }|j||gtddtddfd d iftd d tdd fd d ifgk(sJtdt\}}td d |dzzd z}td d |dzzd z}|j||gtddtddfd d iftd d tdd fd d ifgk(sJy)NrrrjKrerarri5rr)rrrr)rrrrs r#test_dup_isolate_real_roots_list_QQrs2 R=DAq 1s A 1s A ( (!Q 0 b":r#r{ #aV ,3 bQi/H1a&.QR SS S R=DAq As AqD1A As AqD1A ( (!Q 0 b":r#r{ #aV ,3 bQi/H1a&.QR SS Sr c|tdt\}}|jddk(sJ|jddk(sJ|dz }|j|dk(sJ|j|ddk(sJ|j|ddk(sJ|j|ddk(sJ|j|dddk(sJ|j|dddk(sJ|j|dddk(sJ|dzdz }|j|dk(sJ|j|ddk(sJ|j|d ddk(sJy) NrrrBrrrrrrG)rrdup_count_real_rootsrs rtest_dup_count_real_rootsrs R=DAq ! !! $ )) ) ! !! $ )) ) AA ! !! $ )) ) ! !! ! +q 00 0 ! !! ! +q 00 0 ! !! ! +q 00 0 ! !! ! 2a 77 7 ! !! ! 2a 77 7 ! !! ! 2a 77 7 1qA ! !! $ )) ) ! !! ! +q 00 0 ! !! ! 3q 88 8r rc>tdt\}}|dz }|j|ttdk(sJ|j|t t dk(sJ|dz}|j|ttdk(sJ|j|t t dk(sJy)Nrrrrrdup_count_complex_rootsrrrrrs rtest_dup_count_complex_roots_1rs R=DAq AA $ $Q1 - 22 2 $ $Q1 - 22 2 AA $ $Q1 - 22 2 $ $Q1 - 22 2r cntdt\}}|dz|z }|j|ttdk(sJ|j|t t dk(sJ|dz |z}|j|ttdk(sJ|j|t t dk(sJ|dz|z}|j|ttdk(sJ|j|t t dk(sJ|dz |z }|j|ttdk(sJ|j|t t dk(sJy)Nrrrrrs rtest_dup_count_complex_roots_2rs9 R=DAq 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 A A $ $Q1 - 22 2 $ $Q1 - 22 2 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 A A $ $Q1 - 22 2 $ $Q1 - 22 2r ctdt\}}|dzdz }|j|ttdk(sJ|j|t t dk(sJ|dz|z }|j|ttdk(sJ|j|t t dk(sJ|dz |z}|j|ttdk(sJ|j|t t dk(sJy)Nrrrrrrs rtest_dup_count_complex_roots_3rs R=DAq 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 A A $ $Q1 - 22 2 $ $Q1 - 22 2r ctdt\}}|dzdz}|j|ttdk(sJ|j|t t dk(sJ|dz|z}|j|ttdk(sJ|j|t t dk(sJ|dz |z }|j|ttdk(sJ|j|t t dk(sJ|dz|dzz |zdz }|j|ttdk(sJ|j|t t dk(sJ|dz|dzz |dzz|z }|j|ttdk(sJ|j|t t dk(sJ|dz |dzz|dzz |z}|j|ttdk(sJ|j|t t dk(sJ|dzdz }|j|ttdk(sJ|j|t t dk(sJ|dz|z }|j|ttdk(sJ|j|t t dk(sJ|dz |z}|j|ttdk(sJ|j|t t dk(sJyNrrrrrrrrs rtest_dup_count_complex_roots_4rs R=DAq 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 A A $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t a!A $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t adQA $ $Q1 - 22 2 $ $Q1 - 22 2 A1 q!taA $ $Q1 - 22 2 $ $Q1 - 22 2 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 A A $ $Q1 - 22 2 $ $Q1 - 22 2r ctdt\}}|dzd|zzdz}|j|ttdk(sJ|j|t t dk(sJ|dz|dzzdz }|j|ttdk(sJ|j|t t dk(sJ|dz|dzzd|zz }|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzzd|zzdz}|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzzd|dzzzd|zz}|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz|dzzd|zz dz }|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz|dzzd|dzzz d|zz }|j|ttdk(sJ|j|t t dk(sJy)Nrrrrrrrrrs rtest_dup_count_complex_roots_5rDs R=DAq 1qs QA $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t aA $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t acA $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv !aA $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv !Q$1$A $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv 1qs"Q&A $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv 1qAv%!+A $ $Q1 - 22 2 $ $Q1 - 22 2r ctdt\}}|dzd|zz dz}|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz d|zzdz }|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz d|dzzzd|zz }|j|ttdk(sJ|j|t t dk(sJ|dz|dzz dz}|j|ttdk(sJ|j|t t dk(sJ|dz|dzz d|zz}|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz |dzzd|zzdz }|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz |dzzd|dzzzd|zz }|j|ttdk(sJ|j|t t dk(sJyrrrs rtest_dup_count_complex_roots_6rks R=DAq 1qs QA $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv !aA $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv !Q$1$A $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t aA $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t acA $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv 1qs"Q&A $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv 1qAv%!+A $ $Q1 - 22 2 $ $Q1 - 22 2r ctdt\}}|dzdz}|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz d|zzdz }|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz d|dzzzdz }|j|ttdk(sJ|j|t t dk(sJ|dz|dzz d|zzdz }|j|ttdk(sJ|j|t t dk(sJ|dz|dzz d|dzzzd|zz }|j|ttdk(sJ|j|t t dk(sJ|dz|dzzd|zzdz}|j|ttdk(sJ|j|t t dk(sJ|dz|dzzd|dzzzd|zz}|j|ttdk(sJ|j|t t dk(sJ|dz|dzz d|dzzzdz }|j|ttdk(sJ|j|t t dk(sJ|d z|dzz d|dzzzd|zz }|j|ttd k(sJ|j|t t dk(sJ|dzd|dzzzdz }|j|ttdk(sJ|j|t t dk(sJy) NrrrrrrrLrrBrrs rtest_dup_count_complex_roots_7rs R=DAq 1qA $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv !aA $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv !Q$"A $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t acAA $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t a1fqs"A $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t acAA $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t a1fqs"A $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t a1fq A $ $Q1 - 22 2 $ $Q1 - 22 2 1q!t a1fqs"A $ $Q1 - 22 2 $ $Q1 - 22 2 1qAv A $ $Q1 - 22 2 $ $Q1 - 22 2r ctdt\}}|dzd|dzzzd|zz }|j|ttdk(sJ|j|t t dk(sJ|dzd|dzzz d|dzzzd |dzzz d|dzzz d |zz}|j|ttdk(sJ|j|t t dk(sJy) Nrrrrrr_rrBrLrrrs rtest_dup_count_complex_roots_8rs R=DAq 1qAv !A $ $Q1 - 22 2 $ $Q1 - 22 2 2!Q$1a4!AqD&(1QT61AaC7A $ $Q1 - 22 2 $ $Q1 - 22 2r ctdt\}}|dz|z }|j|dk(sJ|j|ddk(sJ|j|ddk(sJy)NrrrZrrr)rrrrs r%test_dup_count_complex_roots_implicitrsu R=DAq 1qA $ $Q '1 ,, , $ $QF $ 3q 88 8 $ $QF $ 3q 88 8r ctdt\}}|dz|z }td tdftdtdf}}|j|||dk(sJ|j|||dgdk(sJ|j|||d gdk(sJ|j|||dd gd k(sJ|j|||d gdk(sJ|j|||d gdk(sJ|j|||d d gdk(sJ|j|||gd d k(sJ|j|||dgdk(sJ|j|||dgdk(sJ|j|||ddgd k(sJ|j|||gddk(sJ|j|||gddk(sJtdtdftdtdf}}|j|||ddk(sJy)NrrrrrS)excluderNrEW)rrrrSWSE)rrr)rrrrT)rrrr)rrrrrs r$test_dup_count_complex_roots_excludersW R=DAq 1qA UFBqE?RUBqENqA $ $Q1 - 22 2 $ $Q1se $ < AA A $ $Q1se $ < AA A $ $Q1sCj $ AQ FF F $ $Q1se $ < AA A $ $Q1se $ < AA A $ $Q1sCj $ AQ FF F $ $Q16J $ Kq PP P $ $Q1tf $ = BB B $ $Q1tf $ = BB B $ $Q1tTl $ Cq HH H $ $Q16G $ HA MM M $ $Q16L $ MQR RR R qE2a5>BqE2a5>qA $ $Q1d $ ;q @@ @r c >tdt\}}|dzd|zz dz}|j|ddgk(sJ|j|dDcgc]}|jc}ddgk(sJ|j|t dd  t d d t dd ft d dt dd fft d d t ddft d dt ddffgk(sJ|j|t dd t ddt dd ft ddt dd fft ddt ddft ddt ddffgk(sJd|dzzd|dzzz d|dzzzd|zzdz}|j|t dd t dd fdft dd dfdt ddffdt dd ft dddffdt ddt ddffgk(sJycc}w)Nrrr))r)rLr)rZ)rLrLT)blackboxrrrJrdrrrrrikiiirBrrFrlrCrprZr)rrdup_isolate_complex_roots_sqfas_tupler)rrrrs r"test_dup_isolate_complex_roots_sqfrsm R=DAq 1qs QA * *1 - ,- .. .#$#B#B1t#B#T VaQZZ\ V ,- .. . * *1"Q) * < b":1ay !Br2JB #< = b":r"bz "RBZAq$: ; = == = * *1"Q* * = c3<"S#, '"S#,C )F G c3<C &Cr#s|(D E G GG G !Q$AqD2ad7"RT)B.A * *1 - r1I:2q z "F +2q z1o2b!9~-N r"ayj/Br1Iq> *VbQiB5K,L N NN N WsHc :tdt\}}d|dzz|dzz d|dzzzd|zz}|j|ddgdtdd ftdddffdtddtddffgfk(sJ|j|td d  td d tddfdgtddtdd ftdd tdd fftddtddftdd tddffgfk(sJy)NrrrrrrrZrrrrJrrrBra@rA)rrdup_isolate_all_roots_sqfrrs rtest_dup_isolate_all_roots_sqfrsS R=DAq !Q$A !Q$1$A & &q ) 6  1ay>Bq!Ha= )FR1Xr!Qx4H+I J L LL L & &qbBi & 8 b!9bQi & ) r2JB $r!Qx"R*&= >"R*bQSUWjAY\^_`bc\dfhikmofp[q@r s u uu ur c tdt\}d|dzz|dzz d|dzzzd|zzjddgdtdd ftdddffd fd tddtddffd fgfk(sJjtd d  td dtddfd fdgtddtdd ftddtdd ffd ftddtddftddtddffd fgfk(sJ|dz|dzzd|dzzz d|dzzz |zd zt t fdy)Nrrrrr)rrrrrrZrrJrrrrBrarrrc&jSr#)dup_isolate_all_rootsrAsrr&z,test_dup_isolate_all_roots..7s(?(?(Br )rrrrrNotImplementedError)rrrs @@rtest_dup_isolate_all_rootsr(s R=DAq !Q$A !Q$1$A " "1 %  $ Aq NR1XqM *A . R1Xr!Qx( )1 - / 0 00 0 " "1"Q) " 4 r1Ir"ay !1 %{ 3 BZ"R* %1a2b":+'> ? C BZB $r!QxB&< =q A C D DD D 1q!t a1fqAv%)A-A  BCr N)-__doc__sympy.polys.ringsrsympy.polys.domainsrrrrsympy.polys.polyerrorsrr r sympy.polys.rootisolationr r r sympy.testing.pytestrrr/r6r;rWrrrrrrrrrrrrrrrrrrrrrrr%r rr sK"00QQ(ZGJR>ABoEbLA^<H~S$9, AA"Q%A1 AA"Q%A1 3303&.3b$3N$3N33l 3 9ADN. uDr