
    sg                     r   d Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
mZ ddlmZmZmZ ddlmZ d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Z ed        ed       f ed       ed      fcZZ ed       ed      f ed       ed      fcZZd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,y) zETests for real and complex root isolation and refinement algorithms.     )ring)ZZQQZZ_IEX)DomainErrorRefinementFailedPolynomialError)dup_cauchy_upper_bounddup_cauchy_lower_bounddup_mignotte_sep_bound_squared)raisesc                  T   t        dt              \  } }| j                  d      dgk(  sJ | j                  |      |dgk(  sJ |dz  d|dz  z  z
  d|z  z   dz
  }| j                  |      |d|dz  z  d|z  z
  dz   t        dd       |z  t        d	d      z   t        d
d       gk(  sJ y )Nx               
   	      i  d   )r   r   	dup_sturmRr   fs      W/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/tests/test_rootisolation.pytest_dup_sturmr      s    R=DAq;;q>aS   ;;q>aV###	1qAv!aA;;q>a1a4!A#!1Br!H9Q;Bq3IBtTWL=YYYY    c                  d   t        t        d        t        t        d        t        t        d        t        t	        d      t	        d      t	        d      gt              t        j
                  k(  sJ t        t	        d      t	        d      t	        d      gt              t	        d      k(  sJ y )Nc                  "    t        g t              S Nr   r    r    r   <lambda>z-test_dup_cauchy_upper_bound.<locals>.<lambda>       $:2r$B r    c                  6    t        t        d      gt              S Nr   r$   r%   r    r   r&   z-test_dup_cauchy_upper_bound.<locals>.<lambda>       $:BqE7B$G r    c                  J    t        t        d      t        d      gt              S r)   )r   r   r%   r    r   r&   z-test_dup_cauchy_upper_bound.<locals>.<lambda>        6Qa7I4 P r    r   r   r   )r   r
   r   r   r   zeror%   r    r   test_dup_cauchy_upper_boundr/      s{    
?BC
?GH
;PQ!2a5"Q%A"7<GGG!2a5"Q%B"8"=AFFFr    c                     t        t        d        t        t        d        t        t        d        t        t        d        t        t	        d      t	        d      t	        d      gt              t	        dd	      k(  sJ y )
Nc                  "    t        g t              S r#   r   r   r%   r    r   r&   z-test_dup_cauchy_lower_bound.<locals>.<lambda>    r'   r    c                  6    t        t        d      gt              S r)   r2   r%   r    r   r&   z-test_dup_cauchy_lower_bound.<locals>.<lambda>!   r*   r    c                  ^    t        t        d      t        d      t        d      gt              S )Nr   r   r2   r%   r    r   r&   z-test_dup_cauchy_lower_bound.<locals>.<lambda>"   s"    $:BqE2a5"Q%;PRT$U r    c                  J    t        t        d      t        d      gt              S r)   )r   r   r%   r    r   r&   z-test_dup_cauchy_lower_bound.<locals>.<lambda>#   r,   r    r   r   r-   r   r   )r   r
   r   r   r   r%   r    r   test_dup_cauchy_lower_boundr6      s\    
?BC
?GH
?UV
;PQ!2a5"Q%B"8"=AqIIIr    c                      t        t        d        t        t        d        t        t        d      t        d      t        d      gt              t        dd      k(  sJ y )Nc                  "    t        g t              S r#   r   r   r%   r    r   r&   z5test_dup_mignotte_sep_bound_squared.<locals>.<lambda>)   s    $B2r$J r    c                  6    t        t        d      gt              S r)   r9   r%   r    r   r&   z5test_dup_mignotte_sep_bound_squared.<locals>.<lambda>*   s    $BBqE7B$O r    r   r   r-   r   r   )r   r
   r   r   r%   r    r   #test_dup_mignotte_sep_bound_squaredr;   (   sF    
?JK
?OP)2a5"Q%B*@"EAqQQQr    c            	         t        dt              \  } | dz  dz
  j                  t        d      t        d      d      t        d      t        d      fk(  sJ j                  t        d      t        d      d      t        d      t        d      fk(  sJ t	        t
        fd       t        dd      t        dd      }}j                  ||d      t        dd      t        dd      fk(  sJ j                  ||d      t        dd      t        dd      fk(  sJ j                  ||d      t        d	d      t        dd      fk(  sJ j                  ||d      t        d
d      t        dd      fk(  sJ j                  ||d	      t        d
d      t        dd
      fk(  sJ t        dd      t        dd      }}j                  ||d      t        dd      t        dd      fk(  sJ j                  ||d      t        d	d      t        dd      fk(  sJ j                  ||d      t        d
d      t        dd      fk(  sJ j                  ||d      t        d
d      t        dd
      fk(  sJ j                  ||d	      t        d
d      t        dd      fk(  sJ t        dd      t        dd      }}j                  ||d      t        dd      t        dd      fk(  sJ j                  ||d      t        dd      t        dd      fk(  sJ j                  ||d      t        d
d      t        dd      fk(  sJ j                  ||d      t        d
d      t        dd      fk(  sJ j                  ||d	      t        d
d      t        dd      fk(  sJ t        dd      t        dd      }}j                  ||d      t        dd       t        dd       fk(  sJ j                  ||d      t        dd       t        dd       fk(  sJ j                  ||d      t        dd       t        d	d       fk(  sJ j                  ||d      t        dd       t        d
d       fk(  sJ j                  ||d	      t        dd
       t        d
d       fk(  sJ t	        t        fd       t        d      t        d      t        dd      t        dd      t        d
d      f\  }}}}}j                  ||t        dd            ||fk(  sJ j                  ||d      ||fk(  sJ j                  ||t        dd      d      ||fk(  sJ j                  ||t        dd      d      ||fk(  sJ j                  ||t        dd      d
      ||fk(  sJ t        d      t        d      t        dd      t        dd      f\  }}}}j                  ||t        d            ||fk(  sJ j                  |||       ||fk(  sJ j                  |||      ||fk(  sJ t        d      t        d      t        d	d      t        dd      f\  }}}}j                  ||t        d            ||fk(  sJ j                  |||       ||fk(  sJ j                  |||      ||fk(  sJ y )Nr   r   r   )stepsr   c                  N     j                  t        d      t        d            S )Nr-   r   dup_refine_real_rootr   r   r   s   r   r&   z+test_dup_refine_real_root.<locals>.<lambda>6   s    q55aBAG r    r   r   r      r   r         r         r-   c                  N     j                  t        d      t        d            S )Nr   r   r?   rA   s   r   r&   z+test_dup_refine_real_root.<locals>.<lambda>X   s    Q%;%;Ar!ube%L r       r   eps   )rK   r=   )disjoint)r   r   r@   r   r   
ValueErrorr	   )r   stuvwr   r   s         @@r   test_dup_refine_real_rootrW   /   sZ   R=DAq	1qA!!!RUBqE!;1r!u~MMM!!!RUBqE!;1r!u~MMM
:GHa8R1XqA!!!Q!31a"Q(7KKKK!!!Q!31a"Q(7KKKK!!!Q!31a"Q(7KKKK!!!Q!31a"Q(7KKKK!!!Q!31a"R)7LLLLa8R1XqA!!!Q!31a"Q(7KKKK!!!Q!31a"Q(7KKKK!!!Q!31a"Q(7KKKK!!!Q!31a"R)7LLLL!!!Q!31a"R*7MMMMa8R1XqA!!!Q!31a"Q(7KKKK!!!Q!31a"Q(7KKKK!!!Q!31a"Q(7KKKK!!!Q!31a"R)7LLLL!!!Q!31a"R*7MMMMb!9bQiqA!!!Q!3Aq	Bq!H97MMMM!!!Q!3Aq	Bq!H97MMMM!!!Q!3Aq	Bq!H97MMMM!!!Q!3Aq	Bq!H97MMMM!!!Q!3B
R1XI7NNNN
LMqE2a5"R*bRj"Q(BMAq!Q!!!Qr!Sz!:q!fDDD!!!Q!31v===!!!Qr!Sz!C1vMMM!!!Qr!Sz!C1vMMM!!!Qr!Sz!C1vMMMBBBBr1I5JAq!Q!!!QBrF!;1vEEE!!!QQB!7Aq6AAA!!!QA!61a&@@@A1r!QxAq1JAq!Q!!!QBqE!:q!fDDD!!!QQB!7Aq6AAA!!!QA!61a&@@@r    c            	      p   t        dt              \  j                  d      g k(  sJ j                  d      g k(  sJ j                  dz  z         ddgk(  sJ j                  dz  z
        ddgk(  sJ j                  dz  z   d	z         g k(  sJ d
dg} j                  dz  dz
        | k(  sJ j                  dz   dz         | k(  sJ j                  d	z
        dgk(  sJ j                  dz  dz  z
  dz         ddgk(  sJ j                  dz  ddz  z  z
  dz  z   dz
        g dk(  sJ j                  dz  ddz  z  z
  ddz  z  z   dz  z
  dz         g dk(  sJ j                  dz  ddz  z  z
  ddz  z  z   ddz  z  z
  dz  z   dz
        g dk(  sJ j                  dz
        dgk(  sJ j                  dz  dz  z
  dz         ddgk(  sJ j                  dz  d dz  z  z
  d!z  z   d"z
        g d#k(  sJ j                  dz  d$dz  z  z
  d%dz  z  z   d&z  z
  d'z         g d(k(  sJ j                  dz  d)dz  z  z
  d*dz  z  z   d+dz  z  z
  d,z  z   d-z
        g d.k(  sJ j                  d	z         dgk(  sJ j                  dz  dz  z   dz         d/dgk(  sJ j                  dz  ddz  z  z   dz  z   dz         g d0k(  sJ j                  dz  ddz  z  z   ddz  z  z   dz  z   dz         g d1k(  sJ j                  dz  ddz  z  z   ddz  z  z   ddz  z  z   dz  z   dz         g d2k(  sJ j                  dz         d3gk(  sJ j                  dz  dz  z   dz         d4d3gk(  sJ j                  dz  d dz  z  z   d!z  z   d"z         g d5k(  sJ j                  dz  d$dz  z  z   d%dz  z  z   d&z  z   d'z         g d6k(  sJ j                  dz  d)dz  z  z   d*dz  z  z   d+dz  z  z   d,z  z   d-z         g d7k(  sJ j                  dz  dz
        d8d9gk(  sJ j                  dz  dz
        dgk(  sJ j                  dz  dz
        d
dgk(  sJ j                  dz  dz
        dgk(  sJ j                  dz  dz
        d
dgk(  sJ j                  d:z  dz
        dgk(  sJ j                  d;z  dz
        d
dgk(  sJ j                  d<z  dz
        dgk(  sJ j                  dz  d	z
        ddgk(  sJ j                  dz  ddz  z  z   z
  dz
        g d=k(  sJ j                  dz  ddz  z  z
  dz         g d>k(  sJ j                  dz  ddz  z  z   ddz  z  z
  ddz  z  z
  dz  z   d?z         g d@k(  sJ j                  dz  dAdz  z  z
  dBdz  z  z   dCz
        g dDk(  sJ j                  dd:z  z  dz  z   dEdz  z  z
  dAdz  z  z
  dFdz  z  z   dBdz  z  z   dGz  z
  dCz
        g dHk(  sJ j                  dd;z  z  dIdz  z  z
  dJdz  z  z   dKdz  z  z
  dCz         g dLk(  sJ d<dz  z  dz
  }j                  |      dMdNgk(  sJ j                  |t        d	d      O      t        dPd      t        dQd:      ft        dd:      t        d	d      fgk(  sJ j                  |t        d	d$      O      t        dRdS      t        dTdU      ft        d;dU      t        d<dS      fgk(  sJ j                  |t        d	dV      O      t        dWdX      t        dTdU      ft        d;dU      t        dYdX      fgk(  sJ j                  |t        d	dZ      O      t        dWdX      t        d[d\      ft        d]d\      t        dYdX      fgk(  sJ j                  |t        d	d^      O      t        d_d`      t        dadb      ft        dcdb      t        ddd`      fgk(  sJ j                  |t        d	de      O      t        dfdg      t        dadb      ft        dcdb      t        dhdg      fgk(  sJ didz  z  djdz  z  z
  dkdz  z  z   dldz  z  z
  dmz  z   dz
  }j                  |      t        d      t        d	dn      ft        d	dn      t        d	dn      ft        d	d      t        d	d      ft        d	      t        d	      ft        d      t        d      fgk(  sJ j                  |t        d	d^      O      t        d	do      t        d	do      ft        d	dn      t        d	dn      ft        d	d      t        d	d      ft        d	      t        d	      ft        d      t        d      fgk(  sJ dp\  }}}}dqdz  z  drdz  z  z   dsdz  z  z
  dtz  z
  duz   }j                  |      | | fdMdN||fgk(  sJ j                  |t        d	dv      O      t        |       t        |       ft        d	|       t        d	|       ft        d	|      t        d	|      ft        |      t        |      fgk(  sJ j                  |dwx      \  \  }}}}	\  }
}|| cxk  r|k  rEn J |t        d	       t        d      fk(  r'|	t        d      t        d	      fk(  r|
|cxk  r|k  sJ  J j                  |dwt        d	dy      z      t        |       t        |       ft        d	|       t        d	|       ft        d	|      t        d	|      ft        |      t        |      fgk(  sJ d{dz  z  d;dz  z  z   d|dz  z  z   d}z  z
  d~z
  }j                  |      g dk(  sJ j                  |t        d	d$      O      t        d       t        d       ft        ddA       t        dd       ft        d      t        d      ft        dd      t        dd<      fgk(  sJ d	z
  }j                  |d      g k(  sJ j                  |d      g k(  sJ j                  |      dgk(  sJ j                  |d	      dgk(  sJ j                  |d	      dgk(  sJ j                  |d	d	      dgk(  sJ dz  dz
  }j                  |t        d:d            g k(  sJ j                  |t        d:d            t        d:d      t        dd      fgk(  sJ j                  |t        d:d            d
gk(  sJ j                  |t        d:d            d
d	t        dd      fgk(  sJ j                  |t        d:d             g k(  sJ j                  |t        d:d             t        dd       t        d:d       fgk(  sJ j                  |t        d:d             dgk(  sJ j                  |t        d:d             t        dd       dPfdgk(  sJ d
dg} j                  |d      | k(  sJ j                  |d      | k(  sJ j                  |dd      | k(  sJ t        dt              \  t        d;d      dz  z  t        dd      z  z
  t        dUd      z
  }j                  |      dMdgk(  sJ t        dt              \  t        t        fd       y )Nr   r   r   r   rG   rG   r   r   r   r   r   r   r-   rG   r   r   r   r   r   rL      )r[   r^   r   r   r   #   2   rI   )r[   r^   r`   r   r      U      i  x   )r[   r^   r`   rc   )r   r   r   r            rl   <   iL  ip  )rh   rk   ri   ri   r   i  iP  i )rh   rk   rn   (   rp      i4!  in i ) i  )rh   rk   rn   ro   )rb   rb   r-   r-   )rM   rM   rr   rY   )rN   rN   rs   rr   rY   ))rO   rO   rt   rs   rr   rY   rv   rx   )rz   rw   ru   )r|   ry   rw   ru   ))r}   r{   ry   rw   ru   )rM   r-   r   r   rB      r   )rr   rY   r[   )rr   rY   r[   r^   rD   )rs   rr   rY   r[   r^      1   $   )rs   rr   rY   r[   r^   r`      b   H   )rs   rr   rY   rG   r   r[   r^   r`   9         )rs   rr   rY   r   r   r   r[   r^   r`   r   r   rJ   rG   rM   irF   irC   i  iF   !   i'  i   k   i ii  iiA  i  i1  i@B iiJ	  ia  iHi)i_)ikiQ  i'  i'  )l   j'a$i7wl   w (	 l   Hk}a$l   N,-U, l   *0Bde_/ l   @FR{.hN^3ma3 l   Yv~1b@
Ml   H_Zee W
l    h] T)fastl      @*_kzcP )r   rK   rv   P          )rr   r\   r^   r~         '         infsupr   r   r-   iNU i  i  )r   rd   c                  ,     j                  dz         S Nr   )dup_isolate_real_roots_sqfr   r   s   r   r&   z1test_dup_isolate_real_roots_sqf.<locals>.<lambda>  s     < <QU C r    )r   r   r   r   r   r   r   )Ir   abcdrT   rU   BCrR   rS   r   r   s               @@r   test_dup_isolate_real_roots_sqfr   p   s   R=DAq''*b000''*b000''1q1h5GGGG''1q1h5GGGG''1q15;;;	6A''1q1Q666''A	2a777''A.	  ''1qs
Q7	  ''1qAv1(<q(@A ! ! !''1r!Q$wAqD(@2a4(G"(LM() ) )''1r!Q$wAqD(@3q!t8(KcRSe(SVY(YZ01 1 1 ''B/	
  ''1r!tc(9:	8  ''1r!Q$wa(?$(FG&' ' '''1s1a4x$q!t)(CeAg(MPV(VW01 1 1''1s1a4x$q!t)(CfQPQTk(QT[\]T](]`h(hi:; ; ; ''A.	
  ''1qs
Q7	8  ''1qAv1(<q(@A&' ' '''1r!Q$wAqD(@2a4(G"(LM01 1 1''1r!Q$wAqD(@3q!t8(KcRSe(SVY(YZ:; ; ; ''B/	  ''1r!tc(9:	Z ! ! !''1r!Q$wa(?$(FG,- - -''1s1a4x$q!t)(CeAg(MPV(VW89 9 9''1s1a4x$q!t)(CfQPQTk(QT[\]T](]`h(hiDE E E ''1q1h5GGGG''1q1fX===''1q1h5GGGG''1q1fX===''1q1h5GGGG''1q1fX===''1q1h5GGGG''1q1fX===''1q1	6  ''1qAv(9A(=>$% % %''1qAv(9:,- - -''1qAv!Q$(>AqD(H1Q3(NQS(ST67 7 7''1r!Q$wAqD(@2(EF>? ? ?''!Q$A1a4(?"QT'(IBqRStG(SVXYZ\]Y]V](]`bcd`d(dgi(ijGH H H''!Q$AqD(83q!t8(Cc!Q$h(NQS(STOP P P 	
!Q$
A''*	&   ''r!Ry'9
R)RAY	"Q(Bq!H!567 7 7''r!Sz':
R*bRj	!Bq"Ir!Ry#9:; ; ;''r!T{';
S"+r"bz	"R2Y2r
$;<= = =''r!U|'<
S"+r$}	%3bRj'ABC C C''r!V}'=
T3-D#	'"S#,3)EFG G G''r!W~'>
UD/2dC=	)BsCL"T4.+IJK K K 	!Q$1a4')AqD.89QT>IERSGSVWWA''*
Q%Au	Aur!U| <
Q(Bq!H	1r!u~1r!u~	?? ? ? ''r!V}'=
Q,1e	%1ebEl'C
Q(Bq!H	1r!u~1r!u~	?? ? ? IJAq!QQT!$QT)	*6q!t;	< 	-Q.	/ 	$		$A ''*"qb7FQF+, , , ''r!\/B'Ca5&2a5&	R1XI1ay1Bq!HbAh3G"Q%QSTUQVXY Y Y 777EFQAq&1ar:A:TT!A1.1A13F1q9ST9TT9TT''"Q@^:_'`a5&2a5&	R1XI1ay1Bq!HbAh3G"Q%QSTUQVXY Y Y 	AqD1QT6Bq!tG#bd*S0A''*,- - - ''r!Sz':a5&2a5&	RBZK"R*51r!u~2r
TVWY[\T]G^_` ` ` 	
AA''q'1R777''q'1R777''*vh666''q'1fX===''q'1fX===''qa'8VHDDD	1qA''r!Qx'8B>>>''r!Qx'8bAh1a=Q<RRRR''r!Qx'8XJFFF''r!Qx'8X2aQR8}<UUUU''1ay'9R???''1ay'91ay2aQR8)>T=UUUU''1ay'9fXEEE''1ay'91ay"ov=VVVV	6A''r'2a777''r'2a777''rq'9Q>>>R=DAq
1aA5$))Br3K7A''*w.AAAAR=DAq
;CDr    c            	         t        dt              \  j                  d      g k(  sJ j                  d      g k(  sJ j                  dz        dgk(  sJ j                  ddz  z        dgk(  sJ j                  d	z  z         d
dgk(  sJ j                  d	z  z
        ddgk(  sJ j                  dz  z   dz         g k(  sJ ddg} j                  d	z  d	z
        | k(  sJ j                  d	z   d	z         | k(  sJ ddz  z  ddz  z  z
  ddz  z  z   ddz  z  z   ddz  z  z
  ddz  z  z
  ddz  z  z   ddz  z  z   ddz  z  z
  d dz  z  z   d!dz  z  z   d"dz  z  z
  d#d	z  z  z
  d$z  z   d%z
  }j                  |      }j                  |      t	        d	       t	        dd	       fd	ft	        dd	       t	        dd       fdft	        d      t	        dd	      fdft	        dd	      t	        dd	      fdft	        dd      t	        d	      fd	fgk(  sJ j                  |      t	        d	       t	        dd	       ft	        dd	       t	        dd       ft	        d      t	        dd	      ft	        dd	      t	        dd	      ft	        dd	      t	        d	      fgk(  sJ j                  |      t	        d	       t	        dd	       fdft	        dd	       t	        dd       fdft	        d      t	        dd	      fdft	        dd	      t	        dd	      fdft	        dd	      t	        d	      fdfgk(  sJ dz
  }j                  |d	&      g k(  sJ j                  |d'      g k(  sJ j                  |      dgk(  sJ j                  |d&      dgk(  sJ j                  |d'      dgk(  sJ j                  |dd(      dgk(  sJ dz  dd	z  z  z
  dz   }j                  |t	        dd      &      g k(  sJ j                  |t	        dd      &      t	        dd      t	        dd	      fd	fgk(  sJ j                  |t	        dd      '      d)gk(  sJ j                  |t	        dd      '      d)dt	        dd	      fd	fgk(  sJ j                  |t	        dd       '      g k(  sJ j                  |t	        dd       '      t	        dd	       t	        dd       fd	fgk(  sJ j                  |t	        dd       &      d*gk(  sJ j                  |t	        dd       &      t	        dd	       d+fd	fd*gk(  sJ d)d*g} j                  |d,&      | k(  sJ j                  |d	'      | k(  sJ j                  |d,d	(      | k(  sJ dz  ddz  z  z
  dz  z
  ddz  z  z   ddz  z  z
  ddz  z  z
  ddz  z  z   ddz  z  z
  }j                  |d-.      g d/k(  sJ j                  |d0.      d1d	g d2fd3dddgfd4ddd+gfd5d	g d2fgk(  sJ d6z  d6d7z  z  z
  d8d9z  z  z   dz
  }d:z  d;d9z  z  z
  d<d=z  z  z   d>d?z  z  z
  d@dAz  z  z   dBdCz  z  z
  dDdEz  z  z   dFdGz  z  z
  dHdIz  z  z   dJdKz  z  z
  dLdMz  z  z   dNdOz  z  z
  dPdQz  z  z   dRdSz  z  z
  dTdUz  z  z   dVdWz  z  z
  dXdYz  z  z   dZd[z  z  z
  d\dz  z  z   d]d^z  z  z
  d\d_z  z  z   dZd`z  z  z
  dXdaz  z  z   dVdbz  z  z
  dTdcz  z  z   dRddz  z  z
  dPdz  z  z   dNdez  z  z
  dLdz  z  z   dJdz  z  z
  dHdz  z  z   dFdz  z  z
  dDdz  z  z   dBdz  z  z
  d@dz  z  z   d>dz  z  z
  d<dz  z  z   dfdz  z  z
  dgdz  z  z   d;dz  z  z
  dhd	z  z  z   diz  z
  dz   }j                  ||z        dt	        dd	      fdft	        d	d      t	        dd      fdft	        dd      dfdfdjdkgk(  sJ t        dt              \  t        t        fdl       y )mNr   r   r   r   rZ   r   rB   r   rZ   r   r   )rY   r   )r[   r   r   )r\   r   )r]   r   r   r   `   r   rI   rD   i  r_   i?  r   i@  r   i#  r   i(  iGU  rL   i6  iT  ih  id  i<  i  r   r   r   r\   r   r]   r   rG   r-   Fbasis)r   r   )r[   r   r   Tr\   r   r   r-   rZ   r[   r]   -   ,   i  +   .   iL;  i# rp   iȸ0r   iτ&   ij۪A%   l   +e r   l   \2X6 ra   l   7h$ "   l   szc^ r   l   EX3 r   l   `ML   l   }F3ri   l   VC]   l   N6e-A
r   l   X.xrE   l   *xx	g   l   4pTB   l   s=l   ;m}r   r      rl   rF   r   rC   rd   i iq} i  /   ))rL   rB   r   ))rI   r   r   c                  ,     j                  dz         S r   )dup_isolate_real_rootsr   s   r   r&   z-test_dup_isolate_real_roots.<locals>.<lambda>m  s     8 8Q ? r    )	r   r   r   dup_sqf_partr   r   r   r   r   )r   r   gr   r   s      @@r   test_dup_isolate_real_rootsr   !  sL   R=DAq##A&",,,##A&",,,##AaC([M999##AadF+}<<<##AqD1H--1MMMM##AqD1H-+{1KKKK##AqD1HqL1R777	$A##AqD1H-222##QTEAI.!333
1b52ae8bBh&QU2T!R%Z?$q!t)KdSTVWSWiWAqD	A:	 %ad
	+-21a4Z	8:?1*	EGKAqDy	QSXYZSZ	[]a	bA	qA##A&qE6Bq!H9
q	!bAhYAq	$:A#>"Q%AqARTU@Va8R1X
	"bAh1%6$:	<< < < ''*a5&2a8)	1ay2a8)4r!ubAh6G
Q(Bq!H	1a"Q%0	22 2 2 ##A&qE6Bq!H9
q	!bAhYAq	$:A#>"Q%AqARTU@Va8R1X
	"bAh1%6$:	<< < < 	
AA##A1#-333##A1#-333##A&;-777##A1#-+>>>##A1#-+>>>##A1!#4EEE	1qAvA##A2a8#4:::##A2a8#42a8R1X:NPQ9R8SSSS##A2a8#4GGG##A2a8#4!RPQSTXXYHZ8[[[[##ABq!H9#5;;;##ABq!H9#5R1XI1ay;QST:U9VVVV##ABq!H9#5+FFF##ABq!H9#5R1XIr?A:NP[9\\\\	$A##A2#.!333##A2#.!333##A21#5:::	2!R%!Q$AqD(1QT61AadF:R1WDqAvMA##AU#3>? ? ?##AT#2
Az	"VQA$7&!aW9MPVXY[eOfgh h h 
BArE	C2I	%	)A	
Bq"u	wq"u}	,x2~	=	!R%	OR\]^`b]bRb	beopqsupueu	u  yD  EF  HJ  EJ  yJ  
J  MX  YZ  \^  Y^  M^  
^  am  no  qs  ns  as  
s  vB  CD  FH  CH  vH  
H  KW  XY  []  X]  K]  
]  `l  mn  pr  mr  `r  
r  uB  CD  FH  CH  uH  
H  KX  YZ  \^  Y^  K^  
^  an  op  rt  ot  at  
t  wD  EF  HJ  EJ  wJ  
J  MZ  [\  ^`  [`  M`  
`  cp  qr  tv  qv  cv  
v  yF  GH  JL  GL  yL  
L  O\  ]^  `b  ]b  Ob  
b  er  st  vx  sx  ex  
x  {H  IJ  LN  IN  {N  
N  Q^  _`  bd  _d  Qd  
d  gt  uv  xz  uz  gz  
z  }J  KL  NP  KP  }P  
P  S_  `a  ce  `e  Se  
e  ht  uv  xz  uz  hz  
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(bAh-	r!QxAq2A6"Q(A8JKYfgh h h R=DAq
;?@r    c            	         t        dt              \  j                  dz  z   g      dddifddddfgk(  sJ j                  dz  z
  g      ddddfdddifgk(  sJ j                  dz   dz   dz
  dz   dz
  dz
  g      t        d       t        d       fddift        d       t        d       fddd	ft        d      t        d      fdddd
fgk(  sJ j                  dz   dz   dz
  dz   dz
  dz   g      t        d       t        d       fdddft        d       t        d       fddd	ft        d      t        d      fdddfgk(  sJ dz  ddz  z  z
  dz   dz
  }} j                  | |gt        dd            g k(  sJ j                  | |gt        dd            t        dd      t        dd      fddifgk(  sJ j                  | |gt        dd            dddifdddifgk(  sJ j                  | |gt        dd            dddifdddifdt        dd      fddifgk(  sJ j                  | |gt        dd             g k(  sJ j                  | |gt        dd             t        dd       t        dd       fddifgk(  sJ j                  | |gt        dd             dddifdddifgk(  sJ j                  | |gt        dd             t        dd       dfddifdddifdddifgk(  sJ ddz  z  dz
  dz  dz
  }} j                  | |g      t        d       t        d       fddift        d       t        d      fddift        d      t        d      fddift        d      t        d      fddifgk(  sJ j                  | |gd      t        dd       t        dd       fddift        d       t        dd       fddift        dd      t        d      fddift        dd      t        dd      fddifgk(  sJ dz  dz
  dz  dz  z
  dz  z
  dz   }} j                  | |g      t        d       t        d       fdddft        d      t        d      fddift        d      t        d      fdddfgk(  sJ dz  dz  z
  dz  dz  z
  ddz  z  z
  ddz  z  z   }} j                  | |g      t        d       t        d       fdddft        d      t        d      fdddft        d      t        d      fddift        d      t        d      fdddfgk(  sJ dz  ddz  z  z
  dz  z
  ddz  z  z   ddz  z  z
  ddz  z  z
  ddz  z  z   ddz  z  z
  dz  ddz  z  z
  ddz  z  z   ddz  z  z
  dz  z   }} j                  | |gd      dddifddddfddddfdddifgk(  sJ j                  | |gd      dddig d fddddddgfddddddgfdddig d fgk(  sJ t        dt              \  t        t        fd!       y )"Nr   r   rY   r   r   rZ   r   r[   )r   r   )r   r   r   )r   r   )r   r   r   rB   r   r   r   r   r\   r]   rG   T)strict)r   r   r   r   r_   rL   rD   Fr   r   c                  .     j                  dz   g      S r   )dup_isolate_real_roots_listr   s   r   r&   z2test_dup_isolate_real_roots_list.<locals>.<lambda>  s     = =q1ug F r    )r   r   r   r   r   r   r   )r   r   r   r   s     @@r    test_dup_isolate_real_roots_listr   p  s   R=DAq((!Q$(A7
QF	f!l345 5 5((!Q$(A7
aA,	&1a&!123 3 3 ((!a%QAq1ua!eQQRU)STqE6BqE6
QF	#1v1v&6A!%EAPRSTPU\]bchiXjGklm m m ((!a%QAq1ua!eQQRU)STqE6BqE6
aL	)beVbeV,<!l+KrRSuVXYZV[nbchi^jMklm m m a4!AqD&=1a!eqA((!QR1X(>"DDD((!QR1X(>a8R1X
A	'() ) )((!QR1X(>
QF	fq!f-./ / /((!QR1X(>
QF	fq!f-Bq!H1v/FGH H H((!QbAhY(?2EEE((!QbAhY(?q!H9r!Qxi
 1a&	)*+ + +((!QbAhY(?
1a&	FQF+,- - -((!QbAhY(?q!H9b/Aq6	"VaV$4v1v6FGH H H QT6A:q!taxqA((!Q0qE6BqE6
QF	#1vr!uo1v%>a5"Q%.1a&	!RUBqENQF#;	== = = ((!Q(=q!H9r!Qxi
 1a&	)beVbAhY,?!Q+Ha8RU
aV	$1a"Q(';aV&D	FF F F a4!8QTAqD[1Q3&*qA((!Q0qE6BqE6
aL	)RUBqENQF+Cr!ubQRenZ[`aVbEcde e e a4!A#:q!tad{Qq!tV+a1f4qA((!Q0qE6BqE6
aL	)RUBqENaL+Ia5"Q%.1a&	!RUBqENaL#A	CC C C a4!AqD&=1a4"QT')AadF2Qq!tV;bAgE!Q$NPQSTPTWXYZ\]Y]W]P]`abcefbf`fPfijklnokoioPorsturuPuqA((!Qu(=
QF	f!l3f!l5KfWXZ[V\M]^_ _ _((!Qt(<
QFJ	'&aA,A)G
aA,B	(6Aq6:*F	HH H H R=DAq
;FGr    c                      t        dt              \  } }|dz  dz
  }|dz  dz
  }| j                  ||g      t        dd      t        dd      fd	d
ift        dd      t        dd      fd
d
ifgk(  sJ t        dt              \  } }t        d
d       |dz  z  d
z   }t        d
d       |dz  z  d
z   }| j                  ||g      t        dd      t        dd      fd	d
ift        dd      t        dd      fd
d
ifgk(  sJ y )Nr   r   rj      K   r   e   ra   r   r   i5  r   r   )r   r   r   r   )r   r   r   r   s       r   #test_dup_isolate_real_roots_list_QQr     s2   R=DAq	1s
A	1s
A((!Q0b":r#r{
#aV	,3bQi/H1a&.QRS S S R=DAq	AsAqD1A	AsAqD1A((!Q0b":r#r{
#aV	,3bQi/H1a&.QRS S Sr    c                  |   t        dt              \  } }| j                  d      dk(  sJ | j                  d      dk(  sJ |dz
  }| j                  |      dk(  sJ | j                  |d      dk(  sJ | j                  |d      dk(  sJ | j                  |d      dk(  sJ | j                  |dd      dk(  sJ | j                  |dd      dk(  sJ | j                  |dd      dk(  sJ |dz  dz
  }| j                  |      dk(  sJ | j                  |d      dk(  sJ | j                  |d	d      dk(  sJ y )
Nr   r   rB   r   r   r   r   r   rG   )r   r   dup_count_real_rootsr   s      r   test_dup_count_real_rootsr     s   R=DAq!!!$)))!!!$)))	AA!!!$)))!!!!+q000!!!!+q000!!!!+q000!!!!2a777!!!!2a777!!!!2a777	1qA!!!$)))!!!!+q000!!!!3q888r    r   c                  >   t        dt              \  } }|dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ y )Nr   r   r   r   r   dup_count_complex_rootsr   r   r   r   r   s      r   test_dup_count_complex_roots_1r     s    R=DAq 	
AA$$Q1-222$$Q1-222 	
AA$$Q1-222$$Q1-222r    c                  n   t        dt              \  } }|dz  |z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz   |z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz   |z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ y )Nr   r   r   r   r   s      r   test_dup_count_complex_roots_2r     s9   R=DAq 	
1qA$$Q1-222$$Q1-222 
A	A$$Q1-222$$Q1-222 	
1qA$$Q1-222$$Q1-222 
A	A$$Q1-222$$Q1-222r    c                     t        dt              \  } }|dz  dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz   |z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ y )Nr   r   r   r   r   r   s      r   test_dup_count_complex_roots_3r      s    R=DAq 	
1qA$$Q1-222$$Q1-222 	
1qA$$Q1-222$$Q1-222 
A	A$$Q1-222$$Q1-222r    c                     t        dt              \  } }|dz  dz   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz   |z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z
  |z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z
  |dz  z   |z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz   |dz  z   |dz  z
  |z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz   |z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ y Nr   r   r   r   r   r   r   r   s      r   test_dup_count_complex_roots_4r     s   R=DAq 	
1qA$$Q1-222$$Q1-222 	
1qA$$Q1-222$$Q1-222 
A	A$$Q1-222$$Q1-222 	
1q!ta!A$$Q1-222$$Q1-222 	
1q!tadQA$$Q1-222$$Q1-222 
A1q!taA$$Q1-222$$Q1-222 	
1qA$$Q1-222$$Q1-222 	
1qA$$Q1-222$$Q1-222 
A	A$$Q1-222$$Q1-222r    c                     t        dt              \  } }|dz  d|z  z   dz   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z   d|z  z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z   d|z  z   dz   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z   d|dz  z  z   d|z  z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z   |dz  z   d|z  z
  dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z   |dz  z   d|dz  z  z
  d|z  z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ y )Nr   r   r   r   r   r   r   r   r   s      r   test_dup_count_complex_roots_5r   D  s   R=DAq 	
1qs
QA$$Q1-222$$Q1-222 	
1q!taA$$Q1-222$$Q1-222 	
1q!tacA$$Q1-222$$Q1-222 	
1qAv!aA$$Q1-222$$Q1-222 	
1qAv!Q$1$A$$Q1-222$$Q1-222 	
1qAv1qs"Q&A$$Q1-222$$Q1-222 	
1qAv1qAv%!+A$$Q1-222$$Q1-222r    c                     t        dt              \  } }|dz  d|z  z
  dz   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z
  d|z  z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z
  d|dz  z  z   d|z  z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z
  dz   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z
  d|z  z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z
  |dz  z   d|z  z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z
  |dz  z   d|dz  z  z   d|z  z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ y r   r   r   s      r   test_dup_count_complex_roots_6r   k  s   R=DAq 	
1qs
QA$$Q1-222$$Q1-222 	
1qAv!aA$$Q1-222$$Q1-222 	
1qAv!Q$1$A$$Q1-222$$Q1-222 	
1q!taA$$Q1-222$$Q1-222 	
1q!tacA$$Q1-222$$Q1-222 	
1qAv1qs"Q&A$$Q1-222$$Q1-222 	
1qAv1qAv%!+A$$Q1-222$$Q1-222r    c                     t        dt              \  } }|dz  dz   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z
  d|z  z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z
  d|dz  z  z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z
  d|z  z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z
  d|dz  z  z   d|z  z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z   d|z  z   dz   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z   d|dz  z  z   d|z  z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  |dz  z
  d|dz  z  z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |d	z  |dz  z
  d|dz  z  z   d|z  z
  }| j                  |t        t              d	k(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z   dz
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ y )
Nr   r   r   r   r   r   rL   r   rB   r   r   s      r   test_dup_count_complex_roots_7r     s   R=DAq 	
1qA$$Q1-222$$Q1-222 	
1qAv!aA$$Q1-222$$Q1-222 	
1qAv!Q$"A$$Q1-222$$Q1-222 	
1q!tacAA$$Q1-222$$Q1-222 	
1q!ta1fqs"A$$Q1-222$$Q1-222 	
1q!tacAA$$Q1-222$$Q1-222 	
1q!ta1fqs"A$$Q1-222$$Q1-222 	
1q!ta1fq A$$Q1-222$$Q1-222 	
1q!ta1fqs"A$$Q1-222$$Q1-222 	
1qAvA$$Q1-222$$Q1-222r    c                     t        dt              \  } }|dz  d|dz  z  z   d|z  z
  }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ |dz  d|dz  z  z
  d|dz  z  z   d	|dz  z  z
  d|dz  z  z
  d
|z  z   }| j                  |t        t              dk(  sJ | j                  |t
        t              dk(  sJ y )Nr   r   r   r   r   r_   r   rB   rL   r   r   r   s      r   test_dup_count_complex_roots_8r     s    R=DAq 	
1qAv!A$$Q1-222$$Q1-222 	
2!Q$1a4!AqD&(1QT61AaC7A$$Q1-222$$Q1-222r    c                      t        dt              \  } }|dz  |z
  }| j                  |      dk(  sJ | j                  |d      dk(  sJ | j                  |d      dk(  sJ y )Nr   r   rZ   r   r   r   )r   r   r   r   s      r   %test_dup_count_complex_roots_implicitr     su    R=DAq 	
1qA$$Q'1,,,$$QF$3q888$$QF$3q888r    c                     t        dt              \  } }|dz  |z
  }t        d       t        d      ft        d      t        d      f}}| j                  |||      dk(  sJ | j                  |||dg      dk(  sJ | j                  |||d	g      dk(  sJ | j                  |||dd	g      d
k(  sJ | j                  |||dg      dk(  sJ | j                  |||dg      dk(  sJ | j                  |||ddg      dk(  sJ | j                  |||g d      d
k(  sJ | j                  |||dg      dk(  sJ | j                  |||dg      dk(  sJ | j                  |||ddg      d
k(  sJ | j                  |||g d      dk(  sJ | j                  |||g d      dk(  sJ t        d      t        d      ft        d      t        d      f}}| j                  |||d      dk(  sJ y )Nr   r   r   r   r   S)excluder   Nr   EW)r   r   r   r   SWSE)r   r   r   )r   r   r   r   T)r   r   r   r   )r   r   r   r   r   s        r   $test_dup_count_complex_roots_excluder     sW   R=DAq 	
1qAUFBqE?RUBqENqA$$Q1-222$$Q1se$<AAA$$Q1se$<AAA$$Q1sCj$AQFFF$$Q1se$<AAA$$Q1se$<AAA$$Q1sCj$AQFFF$$Q16J$KqPPP$$Q1tf$=BBB$$Q1tf$=BBB$$Q1tTl$CqHHH$$Q16G$HAMMM$$Q16L$MQRRRRqE2a5>BqE2a5>qA$$Q1d$;q@@@r    c            
      >   t        dt              \  } }|dz  d|z  z
  dz   }| j                  |      ddgk(  sJ | j                  |d      D cg c]  }|j                          c}ddgk(  sJ | j                  |t	        dd	      
      t	        dd      t	        dd       ft	        dd      t	        dd       fft	        dd      t	        dd      ft	        dd      t	        dd      ffgk(  sJ | j                  |t	        dd      
      t	        dd      t	        dd       ft	        dd      t	        dd       fft	        dd      t	        dd      ft	        dd      t	        dd      ffgk(  sJ d|dz  z  d|dz  z  z
  d|dz  z  z   d|z  z   dz   }| j                  |      t	        dd       t	        dd       fdft	        dd       dfdt	        dd      ffdt	        dd       ft	        dd      dffdt	        dd      t	        dd      ffgk(  sJ y c c}w )Nr   r   r   ))r   )rL   r   )rZ   )rL   rL   T)blackboxr   r   rJ   rd   r   r   r   r   r         ik  i  i   i  rB   r   rF   rl   rC   rp   rZ   r   )r   r   dup_isolate_complex_roots_sqfas_tupler   )r   r   r   rs       r   "test_dup_isolate_complex_roots_sqfr     sm   R=DAq	1qs
QA**1-	,-. . .#$#B#B1t#B#TVaQZZ\V	,-. . . **1"Q)*<b":1ay
!Br2JB#<	=b":r"bz
"RBZAq$:	;	== = = **1"Q**=c3<"S#,
'"S#,C)F	Gc3<C
&Cr#s|(D	E	GG G G 	
!Q$AqD2ad7"RT)B.A**1-r1I:2q	z
"F	+2q	z1o2b!9~-Nr"ayj/Br1Iq>	*VbQiB5K,L	NN N N Ws   Hc            	      :   t        dt              \  } }d|dz  z  |dz  z
  d|dz  z  z   d|z  z   }| j                  |      ddgdt        dd       ft        dd      dffdt        dd      t        dd      ffgfk(  sJ | j                  |t        d	d
            t        dd      t        dd      fdgt        dd      t        dd       ft        dd      t        dd       fft        dd      t        dd      ft        dd      t        dd      ffgfk(  sJ y )Nr   r   r   r   r   r   rZ   r   r   r   rJ   r   r   rB   ra   @   r   A   )r   r   dup_isolate_all_roots_sqfr   r   s      r   test_dup_isolate_all_roots_sqfr     sS   R=DAq	!Q$A!Q$1$A&&q)
6	1ay>Bq!Ha=
)FR1Xr!Qx4H+I	J	LL L L &&qbBi&8b!9bQi
 &	)r2JB$r!Qx"R*&=
>"R*bQSUWjAY\^_`bc\dfhikmofp[q@r	s	uu u ur    c            	         t        dt              \  } d| dz  z  | dz  z
  d| dz  z  z   d| z  z   j                        ddgdt        dd       ft        dd      dffd	fd
t        dd      t        dd      ffd	fgfk(  sJ j                  t        d	d            t        dd      t        dd      fd	fdgt        dd      t        dd       ft        dd      t        dd       ffd	ft        dd      t        dd      ft        dd      t        dd      ffd	fgfk(  sJ | dz  | dz  z   d| dz  z  z
  d| dz  z  z
  | z   d	z   t	        t
        fd       y )Nr   r   r   r   r   )r   r   r   r   r   rZ   r   rJ   r   r   r   rB   ra   r   r   r   c                  &     j                        S r#   )dup_isolate_all_rootsrA   s   r   r&   z,test_dup_isolate_all_roots.<locals>.<lambda>7  s    (?(?(B r    )r   r   r   r   r   NotImplementedError)r   r   r   s    @@r   test_dup_isolate_all_rootsr  (  s   R=DAq	!Q$A!Q$1$A""1%
	$Aq	NR1XqM*A
.R1Xr!Qx()1
-
/	00 0 0
 ""1"Q)"4r1Ir"ay!1
%{	3BZ"R*%1a2b":+'>?
CBZB$r!QxB&<=q
A
C	DD D D
 	
1q!ta1fqAv%)A-A
 BCr    N)-__doc__sympy.polys.ringsr   sympy.polys.domainsr   r   r   r   sympy.polys.polyerrorsr   r	   r
   sympy.polys.rootisolationr   r   r   sympy.testing.pytestr   r   r/   r6   r;   rW   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r%   r    r   <module>r	     s    K " 0 0 Q Q  (ZGJR>ABoEbLA^<H~S$9, 
AA"Q%A1	AA"Q%A13303&.3b$3N$3N33l3	9ADN.
uDr    