+
    ih              
       L   R t ^ RIHtHtHt ^ RIHt ^ RIHtH	t	H
t
 ^ RIHtHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHtHtHt ^ R	IHt ^ R
IHt ^ RIHt ^ RI H!t!H"t"H#t#H$t$H%t% ^ RI&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0 ^ RI1H2t2 ^ RI3H4t4H5t5 ^ RI6H7t7 ^ RI8H9t9H:t: ^ RI;H<t< ^ RI=t=^ RI>H?t? ]
! R4      w
  t@tAtBtCtDtEtFtGtHtIR tJR tKR tLR tMR tNR tOR tPR tQR tRR tSR  tTR! tUR" tVR# tWR$ tXR% tYR& tZR' t[R( t\R) t]R* t^R+ t_R, t`R- taR. tbR/ tc]:R0 4       tdR1 teR2 tfR3 tgR4 thR5 tiR6 tjR# )7zBTests for algorithms for computing symbolic roots of polynomials. )IRationalpi)S)SymbolWildsymbols)	conjugateimre)exp)rootsqrt)	Piecewise)acoscossin)ZZ)Interval)powsimp)Polycyclotomic_poly	intervalsnrootsrootof)
root_factorsroots_linearroots_quadraticroots_cubicroots_quarticroots_quinticroots_cyclotomicroots_binomialpreprocess_rootsroots)legendre_poly)PolynomialErrorUnsolvableFactorError)_nsort)raisesslow)verify_numericallyN)productza,b,c,d,e,q,t,x,y,zc                 *   \        R  V  4       4      p\        V RV 4      \        V RV 4      8X  g   Q h\        V\	        V 4      ^4       FE  pW^,           ,          W,          8X  d   K  W^,           ,          \        W,          4      8X  d   KD   R# 	  R# )c              3   L   "   T F  qP                   '       d   ^M^ x  K  	  R# 5i   N)is_real.0is   & ^/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/polys/tests/test_polyroots.py	<genexpr>_check.<locals>.<genexpr>(   s     5u!YYYA%us   "$NFT)sumsortedlistrangelenr	   )r$   nrealixs   &  r5   _checkr?   $   s|     5u55E%- Dv$7777E3u:q)1f*1f59!55	 *
     c                      \        \        ^\        ,          ^,           \        4      4      \        R^4      .8X  g   Q hR# )   N)r   r   xr    r@   r5   test_roots_linearrF   2   s-    QqS1Wa()hr1o->>>>r@   c            	      h   \        \        ^\        ^,          ,          \        4      4      ^ ^ .8X  g   Q h\        \        ^\        ^,          ,          ^\        ,          ,           \        4      4      \        R^4      ^ .8X  g   Q h\        \        ^\        ^,          ,          ^,           \        4      4      \        ) \        ^4      ,          ^,          \        \        ^4      ,          ^,          .8X  g   Q h\        \        ^\        ^,          ,          ^\        ,          ,           ^,           \        4      4      R\        \        ^4      ,          ^,          ,
          R\        \        ^4      ,          ^,          ,           .8X  g   Q h\        \        ^\        ^,          ,          ^\        ,          ,           ^,           \        4      P                  4       4       \        ^,          ^\        ,          \        ,          ^\        ,          \        ,          ,           \        \        ,
          ,          \        ,          ,           \        \        ,
          \        \        ^,          ,          ,           \        \        ^,          ,          ,
          \        \        ,
          ,          ,           p \        \        V \        4      4      \        ) \        \        ,           ,          \        \        ,
          ,          \        \        \        ,          \        \        ,          ,           \        \        ,          ,
          \        \        ,          ,
          ^\        ,          \        ,          \        ^,          ,          ,           4      \        \        ,
          ,          ,
          \        ) \        \        ,           ,          \        \        ,
          ,          \        \        \        ,          \        \        ,          ,           \        \        ,          ,
          \        \        ,          ,
          ^\        ,          \        ,          \        ^,          ,          ,           4      \        \        ,
          ,          ,           .8X  g   Q h\        \        \        ^,          ,          ^\        ,          ,
          ^\        ,          ,
          \        4      p \        V 4      \        ^\        ^,          ,          ^,           4      ) \        ,          ^\        ,          ,           \        ^\        ^,          ,          ^,           4      \        ,          ^\        ,          ,           .8X  g   Q h\        \        ^,          \        ^,          ) ^,
          \        ,          ,           \        ^,          ,           ^,           \        4      p \        V 4      ^\        ^,          ^,           .8X  g   Q h\        \        ^4      \        ^,          ,          ^,
          \        4      p \        V 4      pV\        V4      8X  g   Q h\        R\        ^,          ,          ^\        ,          ,
          R,           4      p V P                  RR7       Uu. uF  q"P                  ^4      NK  	  upV P                  RR7       Uu. uF  q"P                  ^4      NK  	  up8X  g   Q h\!        R	R	R
4       FY  w  r4p\        V\        ^,          ,          V\        ,          ,           V,           4      p \        V 4      pV\        V4      8X  d   KY  Q h	  R# u upi u upi )rB   i  T)radicalsFNrC   i)rB   )    rC   )r   r   rD   r   r   r   r?   	all_rootsaecdbyr(   nr,   )frw_a_b_cr$   s          r5   test_roots_quadraticrZ   6   sN   4!Q$?+1v5554!Q$1a01hr1oq5IIII4!Q$
A./QBtAwJqL!DG)A+3NNNN4!Q$1q 0!45"qay{:JBQRSWXYSZQZ[\Q\L\9]]]]
4!Q$1q !$..01	1!A!AA&q((AEAadFNQq!tV,Ca!e+LLA41:&
QUQU	d1Q319qs?QqS#81Q3q5A:#EFAN	N
QUQU	d1Q319qs?QqS#81Q3q5A:#EFAN	N	PP P P
 	Qq!tVac\AaC#A1
qAvz
	1	qs	"D1a4!$4Q$61$<=> > >QTadUQYM!AqD(1,a0A1	
1a4!8   	T!WQT\Aq!AAq	>> 	SAXA#$AKKK676qCCF67KKK787qCCF789 9 9gw8
AqD2a4"$%"u%%% 9 88s   -\*\/c                  x   \        \        ^,          \        ,          \        ^,          ,           \        ,           \        4      p \        V 4      \	        \        ^,          \	        ^4      \        ,          ^,          ,           4      ^\	        \	        ^4      ) \        ,          ^,          \        ^,          ,           4      ^\	        \        ^,          \	        ^4      \        ,          ^,          ,           4      ) ^\	        \	        ^4      ) \        ,          ^,          \        ^,          ,           4      ) ^/8X  g   Q hR#    N)r   rD   r   r$   r   eqs    r5   test_issue_7724r`   X   s    	ad1fq!tma	#B9QqS4719Q;d1gXaZ\AaC !	acDGAIaK	  !	tAwhqjlQqS 	!!1	& & & &r@   c                  B  aa \        ^\        RR.\        4      P                  4       o\	        \        S\        4      \        4      p \        R^4      \        ^,          ^,          ,
          oV  Uu. uF  qP                  \        S4      NK  	  pp\        V4      \        \	        \        SP                  \        S4      \        4      4      4      8X  g   Q h\        ;QJ d     VV3R lV 4       F  '       d   K   RM	  RM! VV3R lV 4       4      '       g   Q hR# u upi )r0   c              3      <"   T F6  pSP                  \        S\        V/4      P                  ^RR7      ^ 8H  x  K8  	  R# 5i)rB   TchopN)subsrR   rD   rS   )r3   r4   pzs   & r5   r6   "test_issue_8438.<locals>.<genexpr>i   s7     G$Qqvvq!Ql#%%ad%3q8$s   >AFTNrJ   rI   )
r   rR   rD   as_exprr   r   r   re   setall)r$   rU   postrf   rg   s      @@r5   test_issue_8438rm   a   s    aB^Q'')AQ
A&EQ!A#a%A"'(%QFF1aL%D(t9D1q)*+, , , 3G$G333G$GGGGG	 )s   0Dc                  z   \        ^\        ^,          ,          ^,
          \        4      \        \        ^,          ^,           4      ,          P                  4       p \        V 4      '       g   Q h\        \        ^,          ^\        ^,          ,          ,           ^,           \        4      p\	        ^4       Uu. uF  p\        W4      NK  	  pp\        \        ^,          ^\        ^,          ,          ,           ^,           \        4      P                  4       p W8X  g   Q h\        V 4      '       g   Q h\        ^\        ^,          ,          ^,
          4      P                  4       p \        V 4      '       g   Q h\        \        ^\        ^
,          ,          ^,
          4      P                  4       4      ^
8X  g   Q hR# u upi r\   )r   rD   rL   r?   r;   r   r<   )r$   rT   r4   ros       r5   test_issue_8285rp   l   s"   !AqD&1*a adQh/::<E%===QTAadF]Q"A %a	)1&,B	)A!Q$"A&002E;;%=== 1a4!&&(E%===tAaeGaK **,-333 
*s   5F8c                     \        \        ^,          ^,           4      \        \        ^,          ^,           4      ,          P                  4       p \        V 4      '       g   Q h\        \        ^,          ^\        ^,          ,          ,           ^,           \        4      P                  4       p \        V 4      '       g   Q h\        \        ^,          \        ,
          ^,           4      P                  4       p \        V 4      '       g   Q h\        \        ^,          ^\        ^,          ,          ,           ^,           \        4      P                  4       p \        V 4      '       g   Q hR# )rB   N)r   rD   rL   r?   r$   s    r5   test_issue_8289rs   {   s    !Q$(^DAN*557E%===A!Q$"A&002E%===AA((*E%===A!Q$"A&002E%===r@   c            	      ~   \        \        ^,
          ^,          ^,           \        ^,
          ^,          ^,           ,          \        ^,
          ,          4      P                  4       ^^\        ,
          ^\        ,           ^\	        ^4      \        ,          ,
          ^\	        ^4      \        ,          ,           .8X  g   Q h\        ^,          ^
\        ^,          ,          ,           ^,           p \        ^4       Uu. uF  p\        W4      NK  	  pp\        V 4      P                  4       V8X  g   Q h\        V4       R# u upi r/   )r   rD   rL   r   r   r;   r   r?   )rf   r4   anss      r5   test_issue_14291rv      s    !a%!a1q51*q.11q59 

)+!QUAE1tAwqy=!d1gai-HI I I	1r!Q$wA!&q
*A6!<C
*7#%%%
3K +s   7D:c                      \        \        ^,          \        \        4      \        ,          ,           \        ,           \        RR7      p \	        V 4      p\        V4      ^8X  g   Q hR# )   EXdomainN)r   rR   r   rD   r$   r<   )r_   roots_ds     r5   test_issue_13340r}      s@    	adSVAXo!1T	2BBiGw<1r@   c                    a \        \        ^,          \        ^,          ^^ \        ,          ,           ,          ,           \        ^,          R	R\        ,          ,           ,          ,           \        R
R\        ,          ,
          ,          ,           R,
          R\        ,          ,
          \        4      o\        S4      p \        ;QJ d    V3R lV  4       F  '       d   K   RM	  RM! V3R lV  4       4      '       g   Q hR# )r]   i  i  i
  i  c              3   :   <"   T F  pS! V4      ^ 8H  x  K  	  R# 5irK   NrE   r3   rU   r_   s   & r5   r6   #test_issue_14522.<locals>.<genexpr>   s     ,8ar!uz8s   FTNii)r   rD   r   r$   rk   )roots_eqr_   s    @r5   test_issue_14522r      s    	adQT219%%1dSUl(;;aQ>OORVVY]^_Y__ab	cBRyH3,8,333,8,,,,,r@   c                     \        \        \        ^,          ^\        ^,          ,          ,
          \        \        ,          ,           ^,
          \        4      4      p V ^ ,          P	                  \        4      '       g   Q hR# r\   )r   r   trD   has)sols    r5   test_issue_15076r      sG    
QTAadF]QqS014a8
9Cq6::a===r@   c                  ^   \        \        ^,          ^\        ^4      ,          \        ^,          ,          ,
          ^\        ^,          ,          ,           ^@\        ^4      ,          \        ^,          ,          ,
          R\        ,          ,           \        4      p \        V 4      p^ V9   g   Q hR# )r]   i   N)r   rD   r   r$   )r_   r   s     r5   test_issue_16589r      sg    	adQtAwYq!t^#a1f,r$q'z!Q$>aG	KBRyH==r@   c                     \        \        ^\        ^,          ,          \        4      4      . RO8X  g   Q h\        \        \        ^,          ^\        ^,          ,          ,
          ^\        ,          ,           ^,
          \        4      4      . RO8X  g   Q h\        \        ^4      p \        \        \        ^,          \        ,
          \        4      4      V V \
        P                  ) \        ^4      \        ,          ^,          ,           ,          V \
        P                  ) \        ^4      \        ,          ^,          ,
          ,          .8X  g   Q h\        \        \        ^,          R,
          \        4      4      R\
        P                  \        \        ^4      ,          ^,          ,
          \
        P                  \        \        ^4      ,          ^,          ,           .8X  g   Q h\        \        ^\        ^,          ,          ^\        ^,          ,          ,
          ^\        ,          ,
          ^,
          \        4      4      ^ ,          \
        P                  ^\        ^^4      ,          ^,          ,           ^\        ^^4      ,          ^,          ,           8X  g   Q h\        ^,          ) ^\        ^,          ,          ,           ^\        ,          ,           ^,
          p\        VRRR7      \        \        V\        4      RR7      u;8X  EdO   \        ^^4      ^\        ^4      ,          \        \        ^\        ^4      ,          ^,          4      ^,          4      ,          ^,          ,           R\        ^4      ,          \        \        ^\        ^4      ,          ^,          4      ) ^,          \        ^,          ,           4      ,          ^,          \        ^^4      ,           R\        ^4      ,          \        \        ^\        ^4      ,          ^,          4      ) ^,          \        ^,          ,           4      ,          ^,          \        ^^4      ,           .8X  g   Q h Q hR# )	rB   T)trigmultiple)r   N)rK   rK   rK   r0   r0   r0   rC   rJ   )r   r   rD   r   rR   r   Halfr   r   r   r$   r   r   r   r   )rU   r_   s     r5   test_roots_cubicr      s   tAadFA'9444tAqD1QT6MAaC/!3Q78IEEE 	Q
AtAqD1Ha()a	AFF7T!WQYq[ !	AFF7T!WQYq[ !.# # # # tAqD2Iq)*	QVVaQik!166Ad1gIaK#789 9 9tAadFQq!tVOac1A5q9:1=	
!Xa^#A%	%8Aq>(9!(;	;< < <
Q$1a4!A#		!B$.tB{.
A48CQtBxZ^(<Q(>$??AA
48CaRjn--a/"Q$6779HQNJ
48CaRjn--a/"Q$6779HQNJ3

 
 
 
 
r@   c                    aaa \        \        \        ^,          \        4      4      . RO8X  g   Q h\        \        \        ^,          \        ^,          ,           \        4      4      . RO. RO. RO. RO39   g   Q h\        \        \        ^,          \        ^,          ,
          \        4      4      . RO. RO. RO. RO39   g   Q h\        \        \        ^,          \        ,           \        4      4      p \        P                  \
        \        ^4      ,          ^,          ,           \        P                  \
        \        ^4      ,          ^,          ,
          \        P                  \        P                  ) .p\        V \        R7      \        V\        R7      8X  g   Q h\        . RO4       EFY  w  pw  r4rVV^8X  d:   V) V^,          \        ^4      ,          V\        ^4      ,          ,
          ,          pM\V^8X  dV   W3V^,          \        ^R4      ,          V\        ^4      ,          ,
          ,          V\        ^4      ,          ,           ,          p\        ^,          V\        ^,          ,          ,           V\        ^,          ,          ,           V\        ,          ,           V,           o\        \        S\        4      4      p\        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       d   EKZ  Q h	  \        \        \        ,          \        ^,          ,           \        ^,          ,           \        ^,          ,           ^\        ^,          ,          ,           \        ^^4      ,
          \        4      o\        S4      p\        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       g   Q h\        RRR7      o\        ^,          ^\        ^,          ,          ,           ^\        ^,          ,          ,           \        S^,           ,          ,           ^,           o\        \        S\        4      4      p	\        ;QJ d     VV3R	 lV	 4       F  '       d   K   RM	  RM! VV3R	 lV	 4       4      '       g   Q h\        \         \        ^,          ,          \        ^,          ,           \        ,
          S,           \        4      o\        S4      p\        ;QJ d    R
 V 4       F  '       d   K   RM	  RM! R
 V 4       4      '       g   Q hR\        R^4      R\        R^4      /R\        R^4      R\        R^4      /R\        R^4      RR/3p
V
 F  o\        \        SP#                  S4      \        4      4      p\        ;QJ d(    V3R l\%        Wx4       4       F  '       d   K   RM	  RM! V3R l\%        Wx4       4       4      '       d   K  Q h	  R# )r]   key   c              3   v   <"   T F.  pSP                  \        V4      P                  R R7      ^ 8H  x  K0  	  R# 5i)Trc   Nre   rD   rS   )r3   air_   s   & r5   r6   %test_roots_quartic.<locals>.<genexpr>   s.     Bc2771b>###.!3cs   69FTc              3   d   <"   T F%  p\        SP                  \        V4      ^ 4      x  K'  	  R# 5ir   r+   re   rD   )r3   r4   r_   s   & r5   r6   r      s&     AS!"''!Q-33Ss   -0rg   )negativec              3   n   <"   T F*  p\        SP                  \        V3SR334      ^ 4      x  K,  	  R# 5ir0   NrC   r   )r3   r4   r_   rg   s   & r5   r6   r      s2     O$Q!"''Aq6Ar7*;"<a@@$s   25c              3   F   "   T F  p\        V4      \        8H  x  K  	  R # 5iN)typer   r2   s   & r5   r6   r      s     1StAw)#Ss   !rR   c              3   l   <"   T F)  w  r\        VP                  S4      V,
          ^ 4      x  K+  	  R# 5ir   )r+   re   )r3   rV   sreps   &  r5   r6   r      s*     Tmda%affSkAoq99ms   14NrK   rK   rK   rK   rC   )rC   rK   rK   rK   )rK   rC   rK   rK   )rK   rK   rC   rK   )rK   rK   rK   rC   )r0   rK   rK   rK   )rK   r0   rK   rK   )rK   rK   r0   rK   )rK   rK   rK   r0   ))r0   rB   rx   rK   )rx   i	   r0   rB   rx   r]   r   )r   rI   rx   )rI      r   )   irI   rJ   )r   r   rD   r   r   r   r   ZeroOner9   hash	enumerater   rk   qr   rR   re   zip)lhsrhsr4   rM   rQ   rO   rP   ru   r   zansrepsr_   r   rg   s              @@@r5   test_roots_quarticr      s   adA'<777adQTk1-.	3    adQTk1-.	3    QTAXq)
*C66Ad1gIaK!DG)A+!5qvvv
FC#4 F3D$9999 % &8 9<A! 6AqD1I!A$&'A!Vad8As++a"g561Q4?@ATAadF]Qq!tV#ac)A-DQK(sBcBsssBcBBBBB9  
acAaCi!Q$A%!Q$.!Q?	CB

C3ASA333ASAAAAAd#A	
A!Q$1a4	!QV*	,q	0Bb!%D3O$O333O$OOOOO 
a1fq!tma!#Q	'B

C31S13331S11111	hr1osHRO4	hr1osHRO4	hr1osB')D Dq12sTc#mTsssTc#mTTTTT r@   c                     \         ;QJ d    R  \        \        \        ^,          \        ^,          ^^\        ,          ,           ,          ,
          ^\        ,          R\        ,           ,          ,           ^,
          ^\        ,          ,           \        4      4       4       F  '       g   K   RM	  RM! R  \        \        \        ^,          \        ^,          ^^\        ,          ,           ,          ,
          ^\        ,          R\        ,           ,          ,           ^,
          ^\        ,          ,           \        4      4       4       4      '       d   Q hR# )c              3   B   "   T F  p\        V\        4      x  K  	  R # 5ir   )
isinstancer   r2   s   & r5   r6   #test_issue_21287.<locals>.<genexpr>   s%      B 6A:a++ 6As   TFNrC   )anyr   r   rD   r   rE   r@   r5   test_issue_21287r      s    s B]QTAqD!ac'N"QqS"q&\1A5!;Q?6A Bsss B]QTAqD!ac'N"QqS"q&\1A5!;Q?6A B B B B B Br@   c                  D  a \         ^,          ^,
          \         ^,          ^,           ^,          ^\         ^,          ^,           ,          ,
          ^,           \         ^,          ^n\         ^,          ,          ,
          ^7\         ^,          ,          ,
          R\         ,          ,           R,           3p V  Fk  o\        \        S4      4      p\        V4      ^8X  g   Q h\        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       d   Kk  Q h	  R# )r   i	  i  c              3      <"   T F=  pSP                  \        VP                  ^
4      4      P                  RR7      ^ 8H  x  K?  	  R# 5i)
   gh㈵>rc   Nr   r   s   & r5   r6   %test_roots_quintic.<locals>.<genexpr>  s7     JEq2771acc"g&(((5:Es   AAFTN)rD   r    r   r<   rk   )eqsr$   r_   s     @r5   test_roots_quinticr      s    a4!8qS1WqL1acAg;&+qD3q!t8ObAg%Q.46C d2h'5zQsJEJsssJEJJJJJ r@   c                     \        \        ^\        RR7      4      ^.8X  g   Q h\        \        ^\        RR7      4      R.8X  g   Q h\        \        ^\        RR7      4      \        R^4      \        \        ^4      ,          ^,          ,
          \        R^4      \        \        ^4      ,          ^,          ,           .8X  g   Q h\        \        ^\        RR7      4      \        ) \        .8X  g   Q h\        \        ^\        RR7      4      \        P                  \        \        ^4      ,          ^,          ,
          \        P                  \        \        ^4      ,          ^,          ,           .8X  g   Q h\        \        ^\        RR7      4      \        \        ^,          4      ) \        \        \        ^,          4      ,          ,
          \        \        ^,          4      ) \        \        \        ^,          4      ,          ,           \        \        \        ^^4      ,          4      ) \        \        \        \        ^^4      ,          4      ,          ,
          \        \        \        ^^4      ,          4      ) \        \        \        \        ^^4      ,          4      ,          ,           \        \        \        ^^4      ,          4      \        \        \        \        ^^4      ,          4      ,          ,
          \        \        \        ^^4      ,          4      \        \        \        \        ^^4      ,          4      ,          ,           .8X  g   Q h\        \        ^\        RR7      4      \        ^4      ) ^,          \        \        ^4      ,          ^,          ,
          \        ^4      ) ^,          \        \        ^4      ,          ^,          ,           \        ^4      ^,          \        \        ^4      ,          ^,          ,
          \        ^4      ^,          \        \        ^4      ,          ^,          ,           .8X  g   Q h\        \        ^\        RR7      4      \        ^4      ) ^,          \        ^,          ,
          \        ^4      ) ^,          \        ^,          ,           \        ^4      ^,          \        ^,          ,
          \        ^4      ^,          \        ^,          ,           .8X  g   Q h\        \        ^\        RR7      RR7      ^.8X  g   Q h\        \        ^\        RR7      RR7      R.8X  g   Q h\        \        ^\        RR7      RR7      \        R^4      ) R\        R^4      ,           .8X  g   Q h\        \        ^\        RR7      RR7      \        ) \        .8X  g   Q h\        \        ^\        RR7      RR7      \        R^4      ) \        R^4      ^,          ) \        R^4      ^,          R\        R^4      ^,          ,
          \        R^4      ,           \        R^4      ^,          ,           .8X  g   Q h\        \        ^\        RR7      RR7      ^\        R^4      ,
          \        R^4      .8X  g   Q hR# )r0   Tpolys)factorNrC   )r!   r   rD   r   r   r   r   r   r   r   r   r   rE   r@   r5   test_roots_cyclotomicr     s   OAq=>1#EEEOAq=>2$FFFO	1D 'A471<hr1oPQRVWXRYPYZ[P[>[\] ] ]OAq=>A2q'IIIO	1D  vv$q'	!3QVVaQik5IJK K K OAq=>	RT
Qs2a4y[ 	RT
Qs2a4y[ 	RA	!C8Aq>(9$:"::	RA	!C8Aq>(9$:"::Bx1~3r(1a.'8#9!99Bx1~3r(1a.'8#9!99C    OAq=>	a
QtAwYq[ 	a
QtAwYq[ Q	Ad1gIaKQ	Ad1gIaK	C    OB>?	a
QqS	a
QqSQ	AaCQ	AaC	D    1D)$8<=3? ? ?1D)$8<>4@ @ @ OAq=dK
r1+rDQK'() ) )OAq=dK
Q  OAq=dK
r1+RQRQT"a[!^8KdSUWXk8Y\`acef\gij\j8jkl l l OAq=dK	
T"a[$r1+&' ' 'r@   c            
         \        \        ^\        ,          \        4      4      ^ .8X  g   Q h\        \        ^\        ^,          ,          \        4      4      . RO8X  g   Q h\        \        ^\        ,          ^,           \        4      4      \        R^4      .8X  g   Q h^
\        ^^4      ,          ^
,          p \        \        ^\        ^,          ,          ^,           \        4      4      V ) V \        ,          ,
          V ) V \        ,          ,           W \        ,          ,
          W \        ,          ,           .8X  g   Q h\        \        \        \        ^,          ^,
          4      4      4       \        RRR7      p\        RRR7      p\        \        V\        ^,          ,          V,           \        4      4      p\        \        V\        ^,          ,          V,           \        4      4      p\        V^ ,          4      \        V^ ,          4      8X  g   Q h\        V^,          4      \        V^,          4      8X  g   Q h\        RRR
R4       F\  w  rVrxWV8X  d
   V^8w  d   K  \        V\        V,          ,          Wv,          ,           4      p	\        V	4      p
V
\        V
4      8X  d   K\  Q h	  \        \        ^\        ^,          ,          ^\        ^,          ,          ,
          \        4      4      ^\        ,          \        R	^4      \        ^4      \        ,          ^,          ,
          ,          ^^\        ,          ^^\        ,          \        R	^4      \        ^4      \        ,          ^,          ,           ,          ^/8X  g   Q hR# )r   a1T)nonnegativeb1Nr   rJ   )r0   rB   rC   )rC   r0   )rB   rx   r]   r   )r"   r   rD   r   r   r?   r   r   r   r,   r(   r$   rR   r   )Ar   r   r0r1rM   rQ   r   rS   rf   ru   s              r5   test_roots_binomialr   7  sh   $qsA,'A3...$qAvq/*l:::$qsQw*+Q/@@@@
HQN2A$qAvz1-.
acA2!8Q1WaA#g./ / /
>$q!tax.)*	$	'B	$	'B	bAglA.	/B	R1Wr\1-	.B2a5>WRU^+++2a5>WRU^+++ffg|D
a6a1f1a4!#QfSk!!! E a1fr!Q$w&*+	!Xb!_tAwqy{*+Q	!Q	!Xb!_tAwqy{*+Q00 0 0 0r@   c            	         \         \        ,          \        ^,          ,          \        ,           \        ,
          p \	        \        V \        4      4      w  rV^8X  g   Q hV\        \         \        ,          \        ^,          ,          \        ,           \        ,
          \        4      8X  g   Q h\        ^,          \        ^,          ,          \        ^,          \        ^,          ,          ,           \        \        ,          ,           \         ,           p \	        \        V \        4      4      w  rV^\        ,          8X  g   Q hV\        \        ^,          \        ^,          ,           \        ,           \         ,           \        4      8X  g   Q h\        ^,          \        ^,          ,          \        ^,          \        ^,          ,          ,           \         ,           p \	        \        V \        4      4      w  rV^\        ,          8X  g   Q hV\        \        ^,          \        ^,          ,           \         ,           \        4      8X  g   Q h\        ^,          \        ^,          ,          \        \        ,          ,           \         ,           p \	        \        V \        4      4      w  rV^\        ,          8X  g   Q hV\        \        ^,          \        ,           \         ,           \        4      8X  g   Q h\        ^,          \        ^,          ,          \         ,           p \	        \        V \        4      4      w  rV^\        ,          8X  g   Q hV\        \        ^,          \         ,           \        4      8X  g   Q h\        R4      w  r4rVRV^,          ,          V^,          ,          V^,          ,          RV,          \        ,          V^,          ,          V^,          ,          V^,          ,          ,           RV^,          ,          V^,          ,          V^,          ,          \        ^,          ,          V^,          ,          ,
          RV^,          ,          V^,          ,          V^,          ,          \        ^,          ,          V^
,          ,          ,           RV^,          ,          V^,          ,          V^,          ,          \        ^,          ,          V^,          ,          ,
          RV^,          ,          V^,          ,          V^,          ,          \        ^,          ,          V^,          ,          ,           RV^,          ,          V^,          ,          V^,          ,          \        ^,          ,          ^V^,          ,          ,          ,           RV,          V,          V^,          ,          \        ^,          ,          ^PV^,          ,          ,          ,
          R	V^,          ,          \        ^,          ,          R
,          ,           p \	        \        V \        4      4      w  rV^V,          V,          WF^,          ,          ,          8X  g   Q hVR	\        ^,          ,          R\        ^,          ,          ,
          R\        ^,          ,          ,           R\        ^,          ,          ,           R\        ^,          ,          ,
          R\        ^,          ,          ,           R\        ^,          ,          ,
          R\        ,          ,           R,
          8X  g   Q h\        \        ^,          ) \        ^,          \        \        4      ,          ,           \        \        \        \        \        4      3,          R7      p \        \        ^,          ) \        \        4      ,           \        \        \        \        4      ,          R7      p\	        V 4      \        V38X  g   Q hR# )rB   E,F,J,L    83ll8   ]$=,y    /@:   D!^ q 
    y   q id i B i߰l   ul   /1g&l   g l   FW&k rz   N [r|)s2^ )
rM   rR   rD   rQ   r#   r   rO   r   r   r   )rT   coeffpolyEFJLgs           r5   test_roots_preprocessingr   X  s   	!AqD1qA"41:.KEA::4!AqD1q(!,,,,	1QT	AqDAI!#a'A"41:.KEAaC<<41q!ta!+Q////	1QT	AqDAI!A"41:.KEAaC<<41q!ta++++	1QT	AaC!A"41:.KEAaC<<41q1a((((	1QT	AA"41:.KEAaC<<41q!$$$$#JA!ad"1a4'2-1Qq!t#AqD(B.	/Aad"1a4'1,QU2	3 	q!tAqD A%ad*1b50	1 	AqDAad"1a4'1,		-
 	Aad1a41$QT)	* 	ad
1a41QT!1QT6*	+ 	QqAadBq!tG$	% 	AqDAf	A #41:.KEBqDFAdFO###3q!t8fQTk)GAqDL89QT>IKXY[\X\L\\QT*1a4/02@2BCETU U U U 	adUQT#a&[ !Bq#a&yM:AadUSV^Qr#a&z2AA1a&(((r@   c                  f?   \        ^\        4      / 8X  g   Q h\        \        \        4      \        P                  ^/8X  g   Q h\        \        ^	,          \        4      \        P                  ^	/8X  g   Q h\        \        ^,
          \        ^,           ,          \        ^,
          ,          P	                  4       \        4      \        ^4      ) ^\        ^4      ^\        ^4      ^/8X  g   Q h\        ^\        ,          ^,           \        4      \        R^4      ^/8X  g   Q h\        ^\        ,          ^,           ^,          \        4      \        R^4      ^/8X  g   Q h\        ^\        ,          ^,           ^,          \        4      \        R^4      ^/8X  g   Q h\        ^\        ,          ^,           ^
,          \        4      \        R^4      ^
/8X  g   Q h\        \        ^,          ^,
          \        4      \        ^\        P                  ^\        P                  ) ^\        ) ^/8X  g   Q h\        \        ^,          ^,
          ^,          \        4      \        ^\        P                  ^\        P                  ) ^\        ) ^/8X  g   Q h\        ^\        ,          ^,
          ^,          P	                  4       \        4      \        ^^4      ^/8X  g   Q h\        ^\        ,          ^,           ^,          P	                  4       \        4      \        R^4      ^/8X  g   Q h\        ^\        ,          ^,
          ^,          P	                  4       \        4      \        ^^4      ^/8X  g   Q h\        ^\        ,          ^,           ^,          P	                  4       \        4      \        R^4      ^/8X  g   Q h\        ^\        ,          ^,
          ^,          P	                  4       \        4      \        ^^4      ^/8X  g   Q h\        ^\        ,          ^,           ^,          P	                  4       \        4      \        R^4      ^/8X  g   Q h\        \        \        ,          \        ,
          ^,          P	                  4       \        4      \        \        ,          ^/8X  g   Q h\        \        \        ,          \        ,           ^,          P	                  4       \        4      \        ) \        ,          ^/8X  g   Q h\        \        ^,          \        ) ^,
          \        ,          ,           \        ,           \        4      \        ^\        P                  ^/8X  g   Q h\        \        ^,          ^\        ^,          ,          ,
          ^,           \        4      \        P                  ^\        P                  ^/8X  g   Q h\        \        ^,          ^\        ^,          ,          ,
          ^\        ^,          ,          ,           \        ^,          ,
          \        4      \        P                  ^R\        ^4      ,
          ^\        P                  ^R\        ^4      ,           ^/8X  g   Q h\        \        ^,          ^,
          \        4      \        ^4      ^,          \        \        ^4      ,          ^,          ,           ^\        ^4      ^,          \        \        ^4      ,          ^,          ,
          ^\        ^4      ) ^,          \        \        ^4      ,          ^,          ,           ^\        ^4      ) ^,          \        \        ^4      ,          ^,          ,
          ^\        P                  ^\        P                  ) ^\        ^\        ) ^/8X  g   Q hR\        ^,          ,          R\        ^,          ,          ,
          R\        ^,          ,          ,
          R\        ^,          ,          ,           R\        ^,          ,          ,           ^\        ^,          ,          ,
          R\        ^,          ,          ,
          ^@\        ^	,          ,          ,
          p \        V 4      \        P                  ^\        ^4      ) ^\        ^4      ^\        R^4      ^\        R^4      ^\        R^4      ^\        ^^4      ^/8X  g   Q h\        \        \        ,           \        ,           \        ,          \        \        ,           \        ,           \        ,           ,
          \        4      \        \        ,           \        ,           \        ,           \        \        ,           \        ,           ,          ^/8X  g   Q h\        \        ^,          \        ^,          ,           \        ,
          ^,           \        RR7      / 8X  g   Q h\        \        ^,
          \        ^,           ,          \        ^,
          ,          P	                  4       \        RR7      \        ^4      ) ^\        ^4      ^\        ^4      ^/8X  g   Q h\        \        ^,
          \        ^,           ,          \        ^,
          ,          \        ^,
          ,          P	                  4       \        RR7      \        ^4      ) ^\        ^4      ^\        ^4      ^\        ^4      ^/8X  g   Q h\        \        ^,          ^\        ^,          ,          ,           ^\        ,          ,           ^,           \        4      \        ^4      ) ^R\        ,          ^^\        ,          ^/8X  g   Q h\        \        ^,          ^\        ^,          ,          ,           ^\        ,          ,           ^,           \        RR7      R\        ,          ^^\        ,          ^\        ^4      ) ^/8X  g   Q h\        \        ^,          \        ,
          \        ^,          ^\        ^,          ,          ,           ^\        ,          ,           ^,           ,          \        4      \        P                  ^\        P                  ^\        ^4      ) ^R\        ,          ^^\        ,          ^/8X  g   Q h\        P                  \        ^^4      r!^\        ^!4      ,          ^,           V,          p^V,          ^,          pV^,          p\        ^4      \        ,          ^,          pWa,
          pV) V,
          p\        \        ^,          \        ^,          ,           \        ,
          ^,           \        RR7      V) V,
          V,
          ^V) V,          WW,          ,
          V,
          ^V) V,          WX,          ,
          V,
          ^/8X  g   Q h\        ^,          ^\        ,          ,           ^,           P                  \        ^\        ^,          ,          ^\        ,          ,           4      P                  \        ^\        ,          ^,
          4      p R U	u. uF  p	\        V	!  NK  	  up	w  r\        ^4      p\        V \        4      W\        ^^\        ,          V,          ,
          4      ,          ,           ^W\        ^^\        ,          V,          ,
          4      ,          ,
          ^W\        ^^\        ,          V,          ,           4      ,          ,           ^W\        ^^\        ,          V,          ,           4      ,          ,
          ^/8X  g   Q h\        ^,          \        ^,          ,           \        ^,          ,           \        ,           ^,           p R U	u. uF  p	\        V	!  NK  	  up	w  rp\        V \        4      V) V^V,          ,          ,           \        W^V,          ,          ,           V,          ,          ,           ^V) V^V,          ,          ,           \        W^V,          ,          ,           V,          ,          ,
          ^V) V^V,          ,          ,
          \        W^V,          ,          ,
          V,          ,          ,           ^V) V^V,          ,          ,
          \        W^V,          ,          ,
          V,          ,          ,
          ^/8X  g   Q h\         ^,          R\"        ,
          \         ^,          ,          ,           ^^\"        ,          ,           ^\        ^,          ,          ,
          \         ,          ,           \"        ,
          ^\        ^,          ,          ,           p \        V \         4      \        P                  ^\        P                  \        P                  \"        ,          ,           \        P                  \        ^^\"        ,          ,
          \"        ^,          ,           ^\        ^,          ,          ,           4      ,          ,           ^\        P                  \        P                  \"        ,          ,           \        P                  \        ^^\"        ,          ,
          \"        ^,          ,           ^\        ^,          ,          ,           4      ,          ,
          ^/8X  g   Q h\        \        \        ,          \        ,          \        ^,          ,          ^\        ^,          ,          ,           ^\        ,          ,           ^,           \        RR7      / 8X  g   Q h\        \        \        ,          \        ,          \        ^,          ,          ^\        ^,          ,          ,           ^\        ,          ,           ^,           \        RR7      / 8w  g   Q h\        \        ^,          ^,
          \        R	R
7      \        P                  ^\        P                  ) ^/8X  g   Q h\        \        ^,          ^,
          \        RR
7      \        ^\        ) ^/8X  g   Q h\        \        ^,
          \        ^,           ,          \        4      \        P                  ^\        P                  ) ^/8X  g   Q h\        \        ^,
          \        ^,           ,          \        R R7      \        P                  ^/8X  g   Q h\        \        ^,          ^,
          \        R	RR7      \        P                  ) \        P                  .8X  g   Q h\        \        ^,          ^,
          \        RRR7      \        \        ) .8X  g   Q h\%        RRR7      w  pp\        ^,          VV,
          ^,          ,          ^\        ,          VV,
          ,          ,           ^,           p\        V\        RR
7      ^VV,
          ,          ^/8X  g   Q h\        \        ^,          \        RR7      \        P                  \        P                  \        P                  .8X  g   Q h\        R\        RR7      . 8X  g   Q h\        ^,          \        ^,          ,
          \        ^,          ,           \        ^,          ,
          \        ^,          ,           \        ,
          ^,           p \        V 4      \        ) \'        \(        ^,          4      ,          \+        \(        ^,          4      ,           ^\        ) \'        \(        \        ^^4      ,          4      ,          \+        \(        \        ^^4      ,          4      ,
          ^\        ) \'        \(        \        ^^4      ,          4      ,          \+        \(        \        ^^4      ,          4      ,           ^\        \'        \(        ^,          4      ,          \+        \(        ^,          4      ,           ^\        \'        \(        \        ^^4      ,          4      ,          \+        \(        \        ^^4      ,          4      ,
          ^\        \'        \(        \        ^^4      ,          4      ,          \+        \(        \        ^^4      ,          4      ,           ^/8X  g   Q h\        ^,          ^,           V ^,          ,          P	                  4       p\        V4      \        ) \'        \(        ^,          4      ,          \+        \(        ^,          4      ,           ^\        ) \'        \(        \        ^^4      ,          4      ,          \+        \(        \        ^^4      ,          4      ,
          ^\        ) \'        \(        \        ^^4      ,          4      ,          \+        \(        \        ^^4      ,          4      ,           ^\        \'        \(        ^,          4      ,          \+        \(        ^,          4      ,           ^\        \'        \(        \        ^^4      ,          4      ,          \+        \(        \        ^^4      ,          4      ,
          ^\        \'        \(        \        ^^4      ,          4      ,          \+        \(        \        ^^4      ,          4      ,           ^\        ) ^\        ^/8X  g   Q h\        \        ^,          ^(\        ,          ,           ^@,           4      p	V	 Uu. uF  pVP,                  '       g   K  VNK  	  up^ ,          p^l^\        R4      ,          ,           pVR\/        V^4      ,          ^,          ^\/        V^4      ,          ,           8X  g   Q h\1        ^^\        ^4      ,          ,           \        ^,          ,          R^\        ^4      ,          ,
          \        ^,          ,          ,           \        ^4      ) ^,
          \        ,          ,           ^,           \        RR7      p\        V4      R\        ^4      ,           ^R^\        ^4      ,          ,           ^\        ^4      ) ^,           ^/8X  g   Q h\1        ^)\        ^,          ,          ^\        ^4      ,          \        ^,          ,          ,           ^\        ^,          ,          ,
          ^l\        ^4      ,          \        ^,          ,          ,
          ^\        ^,          ,          ,           ^}\        ^4      ,          \        ^,          ,          ,           ^-\        ^,          ,          ,
          ^\        ^4      ,          \        ^,          ,          ,
          ^\        ^4      ,          \        ,          ,
          ^\        ,          ,
          ^,           \        RR7      p\        V4      \        ^4      ) ^,           ^R^\        ^4      ,          ,           ^R\        ^4      ,           ^R ^\        ^4      ,          ,           ^R^\        ^4      ,          ,           ^/8X  g   Q h\1        \        ^,          ^\        ^,          ,          ,
          ^\        ^4      ,          \        ^,          ,          ,           ^\        ^4      ,          \        ,          ,
          ^\        ,          ,           ^,
          ^\        ^4      ,          ,           \        RR7      p\        V4      R\        ^4      ,          ^,           ^R\        ^4      ,          ^,           ^R\        ^4      ,          ^,
          ^/8X  g   Q h\        \1        \        \        ^4      ,           ^,          ^,
          \        RR7      4      \        ^4      ) \/        ^^4      \        P                  ) \        ^4      \        ,          ^,          ,
          ,          ,           ^\        ^4      ) \/        ^^4      \        P                  ) \        ^4      \        ,          ^,          ,           ,          ,           ^\        ^4      ) \/        ^^4      ,           ^/8X  g   Q hR# u up	i u up	i u upi )!r0   i  i  i  i  i  F)cubicsTZfilterr   c                     V P                   # r   )is_positive)rU   s   &r5   <lambda>test_roots0.<locals>.<lambda>  s    r@   )	predicate)r   r   za, b)realRr   i  i2  ry   rz   NrC   rI   i r   rJ   ))      )r0   r   ))r0   r]   )r0      )r   r   r   r   )r$   rD   r   r   expandr   r   r   rM   rQ   NegativeOner   rO   rP   r   re   rg   rR   r   r   r   r   r1   r   r   )rT   r1_2r1_3x0x1x2x3x4x5rU   r13_20r1_20s2r1_4r1_8r5_8arbrrf   r   rx	real_rootcrr_   s                           r5   test_roots0r    s   A;"A;1661+%%%Aq>affa[(((1q51q5/1q5)113Q7QqTE1adAqQRtUV;WWWW1q!"a! 4444!A#'Aq!hr1oq%9999!A#'Aq!hr1oq%9999!A#'B"xA&;;;;A1!Qq155&!aR!CCCC!Q$(Q"q!QUUAvq1"a&HHHH1Q37Q,&&(!,1a!0DDDD1Q37Q,&&(!,"a!0DDDD1Q37Q,&&(!,1a!0DDDD1Q37Q,&&(!,"a!0DDDD1Q37Q,&&(!,1a!0DDDD1Q37Q,&&(!,"a!0DDDD1Q37Q,&&(!,!A#q	9991Q37Q,&&(!,!Aq	999A!a
"Q&*q!QUUA.>>>>A!Q$"A&155!Q]]A*FFFFA!Q$1a4'!Q$.2	
2Q<AFFArDG|Q?@ @ @ A1Q	Ad1gIaKQ	Ad1gIaK	a
QtAwYq[ !	a
QtAwYq[ !	q155&!QA2q"    	ad
T!Q$Yad*T!Q$Y6adBAqD	q!t8	 Ag	&A 8AaD5!QqT1hr1oqQHROQAK K K K !a%!)Q!a%!)a-0!4!a%!)a-!a%RS)9TVW8XXXXA1q1$a6"<<<1q5	AA!E389!ua1q!A$PQ6RS S S1q51q5/1q5)1q5199;QuM
A$1Q4AaD!QqT1-. . .A!Q$1$q(!,!A$2a4AaC0KKKKA!Q$1$q(!D9	Aq!A#q1Q4%#$ $ $!Q$(QTAadF]QqS0145q:	
1661qteQ1a1a89 9 9 !Q$
DH*r/D	 B	
2aB	AB	a1B	B
tBA1q1$a5	b4	Bq	Bq:    
A!aa1a4!A#.33AqsQw?A %'$A l$'MF 
aBA;tA!BJ'''tA!BJ'''tA!BJ'''tA!BJ'''	    	
1q!tadQ"A/GI/G!1/GIDA;	QWq$ag"5!<<<a	QWq$ag"5!<<<a	QWq$ag"5!<<<a	QWq$ag"5!<<<a	    	
1Q1}AaC!AqD& 0!33a7!AqD&@AA;	q	AFF4AaC!Q$1a4(?#@@@!	AFF4AaC!Q$1a4(?#@@@!    1Qq!ta1f$qs*Q.%@BFFF1Qq!ta1f$qs*Q.$?2EEEA1S)aeeQ-BBBBA1S)aQB]:::!a%!a%!$AEE61(====	
QQ&=?CD55!*M M M A1S48aeeVQUUOKKKA1S48QGCCCV$'FB	1beaZ!A#r"u+%)AAc"q"r'{A&6666Aq4(QVVQVVQVV,DDDDq4(B...	1q!tadQT!AqD(1,q0A8	
3r!t9s2a4y !	
3r(1a. !!C8Aq>(9$::A	
3r(1a. !!C8Aq>(9$::A	#bd)c"Q$i	#b!Q
  3r(1a.'8#991	#b!Q
  3r(1a.'8#991    Q$(AqD  "A8	
3r!t9s2a4y !	
3r(1a. !!C8Aq>(9$::A	
3r(1a. !!C8Aq>(9$::A	#bd)c"Q$i	#b!Q
  3r(1a.'8#991	#b!Q
  3r(1a.'8#991	
Aq!    	adRTkBA.a2::a.q1I	qd|	B4A;q(2d2qk>9999	q1T!W9}ad"b1T!W9nad%::tAwhlA=MMPQQST]a	bB9d1gq"qay.!d1gX\1MMMM	bAg47
1a4'#ad(2Sa[A5EE1H47{1a4 "$QT'*,.tAwJq!tO<>@ajlKqD	
B 9$q'Aq"qay.!R$q'\1aQiB47NA? ? ? ? 
adQq!tVmaQi1n,qay{:RTABFtAwJ$
(B9DGaBtAwJNAr$q'zA~qQQQQq47{Q&*Ad;<
q'DAJ$q'!)A+ 56	6
q'DAJ$q'!)A+ 56	6
q'DAJ		## # #w' Jz /s   A~$A~)iA~.i2A~.c            
        \        R4      w  rr#pV^,          V,          W,          ,           WB,          V,          ,           V ,
          pV^,          WW#,
          ,          V ,          ,           ,          W@,          V,          V,          W,          V,
          ,          ,           W,          W#,          ,
          ,           p\        \        WT4      P                  4       4      ^^.8X  g   Q h\        \        Wd4      P                  4       4      ^^.8X  g   Q h\        R4      w  rxrrpW},
          W,
          ,          W,
          ,          W,          V,          ,           V,           V
,
          V,
          pW},
          V,          V,          WV,
          ,          V,          ,           W,          W,
          ,          ,           p\        \        W,
          V4      P                  4       4      . RO8X  g   Q hV^,          ^V^,          ,          ,           ^,           p\        \        V4      P	                  4       4      p\
        ;QJ dL    R V Uu. uF%  pVP                  VV4      P                  RR7      NK'  	  up 4       F  '       g   K   RMA	  RM=! R V Uu. uF%  pVP                  VV4      P                  RR7      NK'  	  up 4       4      '       d   Q hR# u upi u upi )	z6Just test that calculating these roots does not hang. z	a,b,c,d,xzzz,yy,xx,zy,zx,yx,kc              3   $   "   T F  qx  K  	  R # 5ir   rE   r2   s   & r5   r6   "test_roots_slow.<locals>.<genexpr>T  s     GF1Fs   Trc   FNr   )r   r:   r$   valueskeysr   re   rS   )rM   rQ   rO   rP   rD   f1f2zzyyxxzyzxyxke1e2rT   r   ris                      r5   test_roots_slowr  @  s   K(MA!	
Aa13!#a%	!	#B	
Aqae9Q;	!#a%'137"3	3qsQSy	ABb##%&1a&000b##%&1a&000")*?"@RRRQ
&26	BF	#beBh	.	3b	82	=B
&"R"1f+b.	(25"&>	9Bbgq!((*+y888	1qAvAU1X]]_AsGAFAbqvva}D9AFGsssGAFAbqvva}D9AFGGGGGGFFs   +K+K
c                     \        \        ^,          \        ,           ^,           \        RR7      p \        \        ^,          \        ,           R,           \        RR7      p\        W4       F  w  r#\        W#,
          4      R8  d   K  Q h	  \        ^,          R\	        R4      ,          \        ^,          ,          ,           RR\	        R4      ,          ,           \        ^,          ,          ,
          R	^\	        R4      ,          R
,           ,          ,           p\        VRR7      p Rp\        W4       F  w  r#\        W#,
          4      R8  d   K  Q h	  R# )rB   Tr   g      ?g-q=g      @g       @g     S@g      8@g      b@g      "@绽|=N)g؋~)g)cg3!	@g
 @)r$   rD   r   absr   )R1R2r   r2rT   s        r5   test_roots_inexactr$  W  s    	q!tax!|Q	.B	q!tax#~q4	0Bb+27|e###  	
1s49}QT!!TDcN%:AqD$@@
49s"
#	$A 
q4	 B
.B b+27|e### r@   c                     \        R 4      w  rr#RV ^,          ,          V^,          ,          V^,          ,          RV,          \        ,          V ^,          ,          V^,          ,          V^,          ,          ,           RV ^,          ,          V^,          ,          V^,          ,          \        ^,          ,          V^,          ,          ,
          RV ^,          ,          V^,          ,          V^,          ,          \        ^,          ,          V^
,          ,          ,           RV ^,          ,          V^,          ,          V^,          ,          \        ^,          ,          V^,          ,          ,
          RV ^,          ,          V^,          ,          V^,          ,          \        ^,          ,          V^,          ,          ,           RV ^,          ,          V^,          ,          V^,          ,          \        ^,          ,          ^V^,          ,          ,          ,           RV ,          V,          V^,          ,          \        ^,          ,          ^PV^,          ,          ,          ,
          RV^,          ,          \        ^,          ,          R	,          ,           p\        V\        4      / 8X  g   Q h\        VP                  4       \        R
R7      p. ROp\	        R4      pWp,          V,          W^,          ,          ,          p\        V4      \        V4      8X  g   Q h\        WV4       F9  w  rV	P                  V4      pVe    \        W,          V
,
          4      R8  d   K9  Q h	  R# )r   r   r   r   r   r   r   r   r   r   Tr   rV   Nr  r   )g?|YcgOXLzGX@g'I^g@g|۰n@gdZw@g5`e@gS$Ȫ@gJm@)	r   rD   r$   evalfr   r<   r   matchr   )r   r   r   r   rT   r!  r"  rV   rf   r   r#  r'  s               r5   test_roots_preprocessedr(  i  sa   #JA!ad"1a4'2-1Qq!t#AqD(B.	/Aad"1a4'1,QU2	3 	q!tAqD A%ad*1b50	1 	AqDAad"1a4'1,		-
 	Aad1a41$QT)	* 	ad
1a41QT!1QT6*	+ 	QqAadBq!tG$	% 	AqDAf	A A;"	qwwy!d	+B
RB 	S	A	AqAvAr7c"gb+ SB%7%%??? r@   c                     \        \        ^,          ^\        ,          ,
          ^,           RR7      ^^/8X  g   Q h\        \        ^,          ^\        ,          ,
          ^,           RR7      ^^/8X  g   Q h\        \        ^,          ^\        ^,          ,          ,
          \        ^,          ,
          ^\        ,          ,           ^,
          RR7      ^^/8X  g   Q h\        \        R 4       R# )rB   FstrictTc                      \        \        ^,          ^\        ^,          ,          ,
          \        ^,          ,
          ^\        ,          ,           ^,
          RR7      # )r   Tr*  )r$   rD   rE   r@   r5   r   #test_roots_strict.<locals>.<lambda>  s3    %1qAv10Dqs0JQ0NW[*\r@   N)r$   rD   r)   r'   rE   r@   r5   test_roots_strictr.    s    A!a.1a&888A!a-!Q777A!Q$A%!+a/>1a&HHH
 "\]r@   c                  b   RR\         ,          ,
          R\         ^,          ,          ,
          R\         ^,          ,          ,           ^1\         ^,          ,          ,
          p \        V RR7      w  r\        V 4      p\        V RR7      pV UUUu. uF  w  w  rVp\	        WV4      NK  	  ppppV UUUu. uFI  w  w  rVp\	        \        V4      \        V4      4      \	        \        V4      \        V4      4      ,          NKK  	  ppppW,           pV U	u. uF  qP                  4       NK  	  pp	\        VR R7      p\        VR	 R7      pW43 FP  p
\        W4       F>  w  rV	P                  '       d   W9   g   Q hK!  \        V	4      \        V	4      3V9   d   K>  Q h	  KR  	  R
# u upppi u upppi u up	i )i  i  i  i
  T)rk   r   c                 "    V P                  4       # r   sort_keyrD   s   &r5   r   "test_roots_mixed.<locals>.<lambda>  
    AJJLr@   r   c                 "    V P                  4       # r   r1  r3  s   &r5   r   r4    r5  r@   Nip)rD   r   r   r$   r   r   r
   r&  r9   r   r1   )rT   _re_im_nroots_srootsrM   rQ   _
_intervalsrU   _rootsr4   s               r5   test_roots_mixedr>    s[   Qad"T!Q$Y.AqD8A%HCQiGA%G,/
1CyvqHQNCC
1?fq RUBqE"8BqE2a5#999   J#*,7a	7G,W"89GW"89G$
+DAyyyvv1r!u~***	 , % 2 -s   F0AF%F,c            
         \        \        ^\        4      4      \        ^\        4      .8X  g   Q h\        \        \        \        4      4      \        \        \        4      .8X  g   Q h\        \        ^,          ^,
          \        4      \        ^,           \        ^,
          .8X  g   Q h\        \        ^,          \        ,
          \        4      \        \	        \        4      ,
          \        \	        \        4      ,           .8X  g   Q h\        \        ^,          ^,
          ^,          4      \        ^,           \        ^,           \        ^,
          \        ^,
          \        \
        ,
          \        \
        ,
          \        \
        ,           \        \
        ,           .8X  g   Q h\        \        \        ^,          ^,
          \        4      RR7      \        \        ^,           \        4      \        \        ^,
          \        4      \        \        ^,          ^,           \        4      .8X  g   Q h\        ^\        ^,          ,          ^\        ^,          ,          ,           ^\        ^,          ,          ,           \        ^,          ,           \        RR7      \        \        \        ^,          ^\        ^,          ,          ,           ^\        ^,          ,          ,           ^,           .8X  g   Q hR# )r0   r   r   QN)r   r   rD   rR   r   r   rE   r@   r5   test_root_factorsrA    s   Q
#Q
|333Q
#Q
|3331q!$QA6661q!$T!Wa$q'k(BBBBAA&	
QAq1ua!eQUAE1q5!a%@A A A QTAXq)#6	a!eQa!eQadQh):;< < <!Q$AqD(1QT61AqD8!CH	
Aq!ta1f}r!Q$w&*+, , ,r@   c                    a ^@p \        V \        RR7      o\        \        P                  P
                  V3R l4       SP                  ^R7      pV Uu. uF  p\        V4      NK  	  up. RNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDN8X  g   Q hRE# u upi )F@   Tr   c                  *   < S P                  ^^R7      # )rx   )rS   maxsteps)r   )rf   s   r5   r   test_nroots1.<locals>.<lambda>  s    AHHq1H,Er@   rS   z-0.999z-0.996z-0.991z-0.983z-0.973z-0.961z-0.946z-0.930z-0.911z-0.889z-0.866z-0.841z-0.813z-0.784z-0.753z-0.720z-0.685z-0.649z-0.611z-0.572z-0.531z-0.489z-0.446z-0.402z-0.357z-0.311z-0.265z-0.217z-0.170z-0.121z-0.0730z-0.0243z0.0243z0.0730z0.121z0.170z0.217z0.265z0.311z0.357z0.402z0.446z0.489z0.531z0.572z0.611z0.649z0.685z0.720z0.753z0.784z0.813z0.841z0.866z0.889z0.911z0.930z0.946z0.961z0.973z0.983z0.991z0.996z0.999N)r%   rD   r)   mpmathmpNoConvergencer   str)rS   r$   rU   rf   s      @r5   test_nroots1rL    s   
Aa$'A
699""$EFHHqHME ""EqCFE"	KX 	Kx 	K 	K8 	KX 	Kx 	K	K	K (	K*2	K4<	K>F	K	K	K (	K*2	K4<	K>F	K 	K 	K !)	K +3	K 5=	K ?G	K 		K 		K !)		K +3		K 5=		K ?G		K
 	K
 !	K
 #+	K
 -5	K
 7>	K
 @G	K 	K 	K &	K (/	K 18	K :A	K CJ	K 	K 	K &	K (/	K 18	K :A	K CJ	K 	K 	K &	K (/	K 18	K :A	K CJ	K 	K 	K &	K (/	K 18	K :A	K CJ	K
K 
K 
K"s   C4c                  Z   \        \        ^,          ^\        ,          ,           ^,           \        4      p V P                  ^R7      pV Uu. uF  p\        V4      NK  	  up. RO8X  g   Q hV P                  ^R7      pV Uu. uF  p\        V4      NK  	  up. RO8X  g   Q hR# u upi u upi )r   rG  N)z-0.332z-0.839 - 0.944*Iz-0.839 + 0.944*Iz1.01 - 0.937*Iz1.01 + 0.937*I)z-0.33199z-0.83907 - 0.94385*Iz-0.83907 + 0.94385*Iz1.0051 - 0.93726*Iz1.0051 + 0.93726*I)r   rD   r   rK  )rf   r$   rU   s      r5   test_nroots2rN    s    QTAaCZ!^QAHHqHME ""EqCFE"44 4 4 HHqHME!"EqCFE":: : : #
 #s   B#B(c                      \        \        \        \        ^,          \        ^,          \	        \
        4      ,          ,           \        ,           \
        ,           \        RR7      4      4      ^8X  g   Q hR# )rx   T)	compositeN)r<   r$   r   rR   r   rD   rE   r@   r5   test_roots_compositerQ    sB    uT!Q$Ad1g-1A5qDIJKqPPPr@   c                     a  \        \        4      ^,          \        \        4      ,
          ^,           o \        \        V 3R l4       R# )rx   c                     < \        S 4      # r   rr   r^   s   r5   r   "test_issue_19113.<locals>.<lambda>  s	    E"Ir@   N)r   rD   r)   r&   r^   s   @r5   test_issue_19113rU    s)    	QSV	a	B
?-.r@   c                      \        ^RR^\        ,          ,
          ^,          ,          ^,          ^\        ,          ,           ^ .RR7      ^ ^ .8X  g   Q hR# )r0   Tr   NrI   r   )r$   r   rE   r@   r5   test_issue_17454rW    sA    !RacA%a'"Q$.2TBq!fLLLr@   c                     \        \        R ,           \        4      P                  4       R.8X  g   Q h\        \        ^,          ^,           \        4      P                  4       ^\        ^4      ^,          ,          ) .8X  g   Q hR# )l          Nl       )r   rD   
real_rootsr   rE   r@   r5   test_issue_20913rZ    s`    --q1<<>C]B^^^^1q!'')q1Q46{l^;;;r@   c            
         \        ^^4      p R\        ,          V ,          \        ^,           ^V ,          ,          ,          p\        \        \        \        ^,          ,          \        ^,           ^,          ,           \        4      4      V^V) ^\        ^4      \        ,          ,           ,          ^,          ^VR\        ^4      \        ,          ,           ,          ^,          ^/8X  g   Q hR# r   )r   rM   r$   r   rD   r   r   )rN   rU   s     r5   test_issue_22768r\    s    AA	A	1q5AaC. Aa1fAz)1-.	1	
AQ	M1a	2Q	>1a3! ! ! !r@   )k__doc__sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr   r   r   $sympy.functions.elementary.complexesr	   r
   r   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   r   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   r   r   sympy.polys.domains.integerringr   sympy.sets.setsr   sympy.simplify.powsimpr   sympy.polysr   r   r   r   r   sympy.polys.polyrootsr   r   r   r   r   r    r!   r"   r#   r$   sympy.polys.orthopolysr%   sympy.polys.polyerrorsr&   r'   sympy.polys.polyutilsr(   sympy.testing.pytestr)   r*   sympy.core.randomr+   rH  	itertoolsr,   rM   rQ   rO   rP   rN   r   r   rD   rR   rg   r?   rF   rZ   r`   rm   rp   rs   rv   r}   r   r   r   r   r   r   r   r   r   r   r  r  r$  r(  r.  r>  rA  rL  rN  rQ  rU  rW  rZ  r\  rE   r@   r5   <module>rq     sK   H 0 0 " 5 5 D D 6 A : E E . $ * H H? ? ? 1 ( - 0    ''<= 1aAq!Q1?&D&H4	-

.7UtB
K-'`0B9)xj#XH.$$@:^+2,  K K*:"Q/
M<
!r@   