
    g                        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,dS ) 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          dt                    \  } }|                     d          dgk    sJ |                     |          |dgk    sJ |dz  d|dz  z  z
  d|z  z   dz
  }|                     |          |d|dz  z  d|z  z
  dz   t          dd           |z  t          d	d          z   t          d
d           gk    sJ d S )Nx               
   	      i  d   )r   r   	dup_sturmRr   fs      `/var/www/html/ai-engine/env/lib/python3.11/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!HH9Q;Bq3IBtTWLL=YYYYYYY    c                     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 d S )Nc                  ,    t          g t                    S Nr   r    r    r   <lambda>z-test_dup_cauchy_upper_bound.<locals>.<lambda>       $:2r$B$B r    c                  H    t          t          d          gt                    S Nr   r$   r%   r    r   r&   z-test_dup_cauchy_upper_bound.<locals>.<lambda>       $:BqEE7B$G$G r    c                  d    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 P r    r   r   r   )r   r
   r   r   r   zeror%   r    r   test_dup_cauchy_upper_boundr/      s    
?BBCCC
?GGHHH
;PPQQQ!2a55"Q%%A"7<<GGGG!2a55"Q%%B"8"==AFFF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 d S )
Nc                  ,    t          g t                    S r#   r   r   r%   r    r   r&   z-test_dup_cauchy_lower_bound.<locals>.<lambda>    r'   r    c                  H    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+    $:BqEE2a55"Q%%;PRT$U$U r    c                  d    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BCCC
?GGHHH
?UUVVV
;PPQQQ!2a55"Q%%B"8"==AqIII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 d S )Nc                  ,    t          g t                    S r#   r   r   r%   r    r   r&   z5test_dup_mignotte_sep_bound_squared.<locals>.<lambda>)   s    $B2r$J$J r    c                  H    t          t          d          gt                    S r)   r9   r%   r    r   r&   z5test_dup_mignotte_sep_bound_squared.<locals>.<lambda>*   s    $BBqEE7B$O$O r    r   r   r-   r   r   )r   r
   r   r   r%   r    r   #test_dup_mignotte_sep_bound_squaredr;   (   sl    
?JJKKK
?OOPPP)2a55"Q%%B*@"EEAqQQQQQQr    c            	         t          dt                    \  } | dz  dz
                      t          d          t          d          d          t          d          t          d          fk    sJ                     t          d          t          d          d          t          d          t          d          fk    sJ t	          t
          fd           t          dd          t          dd          }}                    ||d          t          dd          t          dd          fk    sJ                     ||d          t          dd          t          dd          fk    sJ                     ||d          t          d	d          t          dd          fk    sJ                     ||d          t          d
d          t          dd          fk    sJ                     ||d	          t          d
d          t          dd
          fk    sJ t          dd          t          dd          }}                    ||d          t          dd          t          dd          fk    sJ                     ||d          t          d	d          t          dd          fk    sJ                     ||d          t          d
d          t          dd          fk    sJ                     ||d          t          d
d          t          dd
          fk    sJ                     ||d	          t          d
d          t          dd          fk    sJ t          dd          t          dd          }}                    ||d          t          dd          t          dd          fk    sJ                     ||d          t          dd          t          dd          fk    sJ                     ||d          t          d
d          t          dd          fk    sJ                     ||d          t          d
d          t          dd          fk    sJ                     ||d	          t          d
d          t          dd          fk    sJ t          dd          t          dd          }}                    ||d          t          dd           t          dd           fk    sJ                     ||d          t          dd           t          dd           fk    sJ                     ||d          t          dd           t          d	d           fk    sJ                     ||d          t          dd           t          d
d           fk    s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\  }}}}}                    ||t          dd                    ||fk    sJ                     ||d          ||fk    sJ                     ||t          dd          d          ||fk    sJ                     ||t          dd          d          ||fk    sJ                     ||t          dd          d
          ||fk    sJ t          d          t          d          t          dd          t          dd          f\  }}}}                    ||t          d                    ||fk    sJ                     |||           ||fk    sJ                     |||          ||fk    sJ t          d          t          d          t          d	d          t          dd          f\  }}}}                    ||t          d                    ||fk    sJ                     |||           ||fk    sJ                     |||          ||fk    sJ d S )Nr   r   r   )stepsr   c                  f                          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G r    r   r   r      r   r         r         r-   c                  f                          t          d          t          d                    S )Nr   r   r?   rA   s   r   r&   z+test_dup_refine_real_root.<locals>.<lambda>X   s%    Q%;%;Ar!uubee%L%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   /   s   R==DAq	1qA!!!RUUBqEE!;;1r!uu~MMMM!!!RUUBqEE!;;1r!uu~MMMM
:GGGGGHHHa88R1XXqA!!!Q!331a"Q((7KKKKK!!!Q!331a"Q((7KKKKK!!!Q!331a"Q((7KKKKK!!!Q!331a"Q((7KKKKK!!!Q!331a"R))7LLLLLa88R1XXqA!!!Q!331a"Q((7KKKKK!!!Q!331a"Q((7KKKKK!!!Q!331a"Q((7KKKKK!!!Q!331a"R))7LLLLL!!!Q!331a"R**7MMMMMa88R1XXqA!!!Q!331a"Q((7KKKKK!!!Q!331a"Q((7KKKKK!!!Q!331a"Q((7KKKKK!!!Q!331a"R))7LLLLL!!!Q!331a"R**7MMMMMb!99bQiiqA!!!Q!33Aq	Bq!HH97MMMMM!!!Q!33Aq	Bq!HH97MMMMM!!!Q!33Aq	Bq!HH97MMMMM!!!Q!33Aq	Bq!HH97MMMMM!!!Q!33B
R1XXI7NNNNN
LLLLLMMMqEE2a55"R**bRjj"Q((BMAq!Q!!!Qr!Szz!::q!fDDDD!!!Q!331v====!!!Qr!Szz!CC1vMMMM!!!Qr!Szz!CC1vMMMM!!!Qr!Szz!CC1vMMMMBBBBr1II5JAq!Q!!!QBrFF!;;1vEEEE!!!QQB!77Aq6AAAA!!!QA!661a&@@@@A1r!QxxAq1JAq!Q!!!QBqEE!::q!fDDDD!!!QQB!77Aq6AAAA!!!QA!661a&@@@@@@r    c            	      $   t          dt                    \                      d          g k    sJ                     d          g k    sJ                     dz  z             ddgk    sJ                     dz  z
            ddgk    sJ                     dz  z   d	z             g k    sJ d
dg}                     dz  dz
            | k    sJ                     dz   dz             | k    sJ                     d	z
            dgk    sJ                     dz  dz  z
  dz             ddgk    sJ                     dz  ddz  z  z
  dz  z   dz
            g dk    sJ                     dz  ddz  z  z
  ddz  z  z   dz  z
  dz             g dk    s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                     dz
            dgk    sJ                     dz  dz  z
  dz             ddgk    sJ                     dz  d dz  z  z
  d!z  z   d"z
            g d#k    sJ                     dz  d$dz  z  z
  d%dz  z  z   d&z  z
  d'z             g d(k    s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                     d	z             dgk    sJ                     dz  dz  z   dz             d/dgk    sJ                     dz  ddz  z  z   dz  z   dz             g d0k    sJ                     dz  ddz  z  z   ddz  z  z   dz  z   dz             g d1k    s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                     dz             d3gk    sJ                     dz  dz  z   dz             d4d3gk    sJ                     dz  d dz  z  z   d!z  z   d"z             g d5k    sJ                     dz  d$dz  z  z   d%dz  z  z   d&z  z   d'z             g d6k    s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                     dz  dz
            d8d9gk    sJ                     dz  dz
            dgk    sJ                     dz  dz
            d
dgk    sJ                     dz  dz
            dgk    sJ                     dz  dz
            d
dgk    sJ                     d:z  dz
            dgk    sJ                     d;z  dz
            d
dgk    sJ                     d<z  dz
            dgk    sJ                     dz  d	z
            ddgk    sJ                     dz  ddz  z  z   z
  dz
            g d=k    sJ                     dz  ddz  z  z
  dz             g d>k    s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                     dz  dAdz  z  z
  dBdz  z  z   dCz
            g dDk    s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                     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
  }                    |          dMdNgk    sJ                     |t          d	d          O          t          dPd          t          dQd:          ft          dd:          t          d	d          fgk    sJ                     |t          d	d$          O          t          dRdS          t          dTdU          ft          d;dU          t          d<dS          fgk    sJ                     |t          d	dV          O          t          dWdX          t          dTdU          ft          d;dU          t          dYdX          fgk    sJ                     |t          d	dZ          O          t          dWdX          t          d[d\          ft          d]d\          t          dYdX          fgk    sJ                     |t          d	d^          O          t          d_d`          t          dadb          ft          dcdb          t          ddd`          fgk    s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
  }                    |          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                     |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   }                    |          | | fdMdN||fgk    s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                     |dwx          \  \  }}}}	\  }
}|| cxk     r|k     rWn nT|t          d	           t          d          fk    r1|	t          d          t          d	          fk    r|
|cxk     r|k     sn 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
  }                    |          g dk    s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
  }                    |d          g k    sJ                     |d          g k    sJ                     |          dgk    sJ                     |d	          dgk    sJ                     |d	          dgk    sJ                     |d	d	          dgk    sJ dz  dz
  }                    |t          d:d                    g k    sJ                     |t          d:d                    t          d:d          t          dd          fgk    sJ                     |t          d:d                    d
gk    sJ                     |t          d:d                    d
d	t          dd          fgk    sJ                     |t          d:d                     g k    sJ                     |t          d:d                     t          dd           t          d:d           fgk    sJ                     |t          d:d                     dgk    sJ                     |t          d:d                     t          dd           dPfdgk    sJ d
dg}                     |d          | k    sJ                     |d          | k    sJ                     |dd          | k    sJ t          dt                    \  t          d;d          dz  z  t          dd          z  z
  t          dUd          z
  }                    |          dMdgk    sJ t          dt                    \  t          t          fd           d S )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                  4                          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 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   sD   R==DAq''**b0000''**b0000''1q11h5GGGGG''1q11h5GGGGG''1q155;;;;	6A''1q11Q6666''A	22a7777''A..	   ''1qs
Q77	   ''1qAv1(<q(@AA   ! ! ! !''1r!Q$wAqD(@2a4(G"(LMM((() ) ) )''1r!Q$wAqD(@3q!t8(KcRSe(SVY(YZZ0001 1 1 1 ''B//	
   ''1r!tc(9::	8   ''1r!Q$wa(?$(FGG&&&' ' ' '''1s1a4x$q!t)(CeAg(MPV(VWW0001 1 1 1''1s1a4x$q!t)(CfQPQTk(QT[\]T](]`h(hii:::; ; ; ; ''A..	
   ''1qs
Q77	8   ''1qAv1(<q(@AA&&&' ' ' '''1r!Q$wAqD(@2a4(G"(LMM0001 1 1 1''1r!Q$wAqD(@3q!t8(KcRSe(SVY(YZZ:::; ; ; ; ''B//	   ''1r!tc(9::	Z ! ! ! !''1r!Q$wa(?$(FGG,,,- - - -''1s1a4x$q!t)(CeAg(MPV(VWW8889 9 9 9''1s1a4x$q!t)(CfQPQTk(QT[\]T](]`h(hiiDDDE E E E ''1q11h5GGGGG''1q11fX====''1q11h5GGGGG''1q11fX====''1q11h5GGGGG''1q11fX====''1q11h5GGGGG''1q11fX====''1q11	6   ''1qAv(9A(=>>$$$% % % %''1qAv(9::,,,- - - -''1qAv!Q$(>AqD(H1Q3(NQS(STT6667 7 7 7''1r!Q$wAqD(@2(EFF>>>? ? ? ?''!Q$A1a4(?"QT'(IBqRStG(SVXYZ\]Y]V](]`bcd`d(dgi(ijjGGGH H H H''!Q$AqD(83q!t8(Cc!Q$h(NQS(STTOOOP P P P 	
!Q$
A''**	&    ''r!Ryy'99
R))RAYY	"Q((Bq!HH!567 7 7 7''r!Szz'::
R**bRjj	!Bq"IIr!Ryy#9:; ; ; ;''r!T{{';;
S"++r"bzz	"R2YY2r

$;<= = = =''r!U||'<<
S"++r$}}	%3bRjj'ABC C C C''r!V}}'==
T3--D#	'"S#,,3)EFG G G G''r!W~~'>>
UD//2dC==	)BsCLL"T4..+IJK K K K 	!Q$1a4')AqD.89QT>IERSGSVWWA''**
Q%%Au	Aur!U|| <
Q((Bq!HH	1r!uu~1r!uu~	?? ? ? ? ''r!V}}'==
Q,,1e	%1ebEll'C
Q((Bq!HH	1r!uu~1r!uu~	?? ? ? ? IJAq!QQT!$QT)	*6q!t;	< 	-Q.	/ 	$		$A ''**"qb7FQF+, , , , ''r!\/B/B'CCa55&2a55&	R1XXI1ay1Bq!HHbAhh3G"Q%%QSTUQVQVXY Y Y Y 777EEFQAq&1ar::::A:::::!A1..1A13F3F1q9999ST999999''"Q@^:_:_'``a55&2a55&	R1XXI1ay1Bq!HHbAhh3G"Q%%QSTUQVQVXY Y Y Y 	AqD1QT6Bq!tG#bd*S0A''**,,,- - - - ''r!Szz'::a55&2a55&	RBZZK"R**51r!uu~2r

TVWY[\T]T]G^_` ` ` ` 	
AA''q'11R7777''q'11R7777''**vh6666''q'11fX====''q'11fX====''qa'88VHDDDD	1qA''r!Qxx'88B>>>>''r!Qxx'88bAhh1a=Q<RRRRR''r!Qxx'88XJFFFF''r!Qxx'88X2aQR88}<UUUUU''1ay'99R????''1ay'991ay2aQR88)>T=UUUUU''1ay'99fXEEEE''1ay'991ay"ov=VVVVV	6A''r'22a7777''r'22a7777''rq'99Q>>>>R==DAq
1aA5$))Br3KK7A''**w.AAAAAR==DAq
;CCCCCDDDDDr    c            	      v   t          dt                    \                      d          g k    sJ                     d          g k    sJ                     dz            dgk    sJ                     ddz  z            dgk    sJ                     d	z  z             d
dgk    sJ                     d	z  z
            ddgk    sJ                     dz  z   dz             g k    sJ ddg}                     d	z  d	z
            | k    s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
  }                    |          }                    |          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                     |          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                     |          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
  }                    |d	&          g k    sJ                     |d'          g k    sJ                     |          dgk    sJ                     |d&          dgk    sJ                     |d'          dgk    sJ                     |dd(          dgk    sJ dz  dd	z  z  z
  dz   }                    |t	          dd          &          g k    sJ                     |t	          dd          &          t	          dd          t	          dd	          fd	fgk    sJ                     |t	          dd          '          d)gk    sJ                     |t	          dd          '          d)dt	          dd	          fd	fgk    sJ                     |t	          dd           '          g k    sJ                     |t	          dd           '          t	          dd	           t	          dd           fd	fgk    sJ                     |t	          dd           &          d*gk    sJ                     |t	          dd           &          t	          dd	           d+fd	fd*gk    sJ d)d*g}                     |d,&          | k    sJ                     |d	'          | k    s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
  }                    |d-.          g d/k    s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   }                    ||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           d S )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                  4                          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   !  s   R==DAq##A&&",,,,##A&&",,,,##AaC(([M9999##AadF++}<<<<##AqD1H---1MMMMM##AqD1H--+{1KKKKK##AqD1HqL11R7777	$A##AqD1H--2222##QTEAI..!3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&&qEE6Bq!HH9
q	!bAhhYAq	$:A#>"Q%%AqARTU@Va88R1XX
	"bAhh1%6$:	<< < < < ''**a55&2a88)	1ay2a88)4r!uubAhh6G
Q((Bq!HH	1a"Q%%0	22 2 2 2 ##A&&qEE6Bq!HH9
q	!bAhhYAq	$:A#>"Q%%AqARTU@Va88R1XX
	"bAhh1%6$:	<< < < < 	
AA##A1#--3333##A1#--3333##A&&;-7777##A1#--+>>>>##A1#--+>>>>##A1!#44EEEE	1qAvA##A2a88#44::::##A2a88#442a88R1XX:NPQ9R8SSSSS##A2a88#44GGGG##A2a88#44!RPQSTXXXYHZ8[[[[[##ABq!HH9#55;;;;##ABq!HH9#55R1XXI1ay;QST:U9VVVVV##ABq!HH9#55+FFFF##ABq!HH9#55R1XXIr?A:NP[9\\\\\	$A##A2#..!3333##A2#..!3333##A21#55::::	2!R%!Q$AqD(1QT61AadF:R1WDqAvMA##AU#33>>>? ? ? ?##AT#22
Azzz	"VQA$7&!aW9MPVXY[e[e[eOfgh 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Ahh-	r!QxxAq2A6"Q((A8JKYfgh h h h R==DAq
;?????@@@@@r    c            	      `   t          dt                    \                      dz  z   g          dddifddddfgk    sJ                     dz  z
  g          ddddfdddifgk    s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                     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
  }}                     | |gt          dd                    g k    sJ                     | |gt          dd                    t          dd          t          dd          fddifgk    sJ                     | |gt          dd                    dddifdddifgk    s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                     | |gt          dd                     g k    sJ                     | |gt          dd                     t          dd           t          dd           fddifgk    sJ                     | |gt          dd                     dddifdddifgk    s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
  }}                     | |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                     | |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   }}                     | |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   }}                     | |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   }}                     | |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                     | |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!           d S )"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                  6                          dz   g          S r   )dup_isolate_real_roots_listr   s   r   r&   z2test_dup_isolate_real_roots_list.<locals>.<lambda>  s     = =q1ug F 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7
QF	f!ll345 5 5 5((!Q$(A77
aA,,	&1a&!123 3 3 3 ((!a%QAq1ua!eQQRU)STTqEE6BqEE6
QF	#1v1v&6A!%EAPRSTPUPU\]bchiXjXjGklm m m m ((!a%QAq1ua!eQQRU)STTqEE6BqEE6
aLL	)beeVbeeV,<!ll+KrRSuuVXYZV[V[nbchi^j^jMklm m m m a4!AqD&=1a!eqA((!QR1XX(>>"DDDD((!QR1XX(>>a88R1XX
A	'() ) ) )((!QR1XX(>>
QF	fq!f-./ / / /((!QR1XX(>>
QF	fq!f-Bq!HH1v/FGH H H H((!QbAhhY(??2EEEE((!QbAhhY(??q!HH9r!Qxxi
 1a&	)*+ + + +((!QbAhhY(??
1a&	FQF+,- - - -((!QbAhhY(??q!HH9b/Aq6	"VaV$4v1v6FGH H H H QT6A:q!taxqA((!Q00qEE6BqEE6
QF	#1vr!uuo1v%>a55"Q%%.1a&	!RUUBqEENQF#;	== = = = ((!Q(==q!HH9r!Qxxi
 1a&	)beeVbAhhY,?!Q+Ha88RUU
aV	$1a"Q((';aV&D	FF F F F a4!8QTAqD[1Q3&*qA((!Q00qEE6BqEE6
aLL	)RUUBqEENQF+Cr!uubQReenZ[`aVbVbEcde e e e a4!A#:q!tad{Qq!tV+a1f4qA((!Q00qEE6BqEE6
aLL	)RUUBqEENaLL+Ia55"Q%%.1a&	!RUUBqEENaLL#A	C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!ll3f!ll5KfWXZ[V\M]^_ _ _ _((!Qt(<<
QFJJJ	'&aA,,A)G
aA,,B	(6Aq6:::*F	HH H H H R==DAq
;FFFFFGGGGGr    c                  z   t          dt                    \  } }|dz  dz
  }|dz  dz
  }|                     ||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   }|                     ||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 d S )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     sh   R==DAq	1s
A	1s
A((!Q00b"::r#r{{
#aV	,3bQii/H1a&.QRS S S S R==DAq	AsAqD1A	AsAqD1A((!Q00b"::r#r{{
#aV	,3bQii/H1a&.QRS S S S S Sr    c                      t          dt                    \  } }|                     d          dk    sJ |                     d          dk    sJ |dz
  }|                     |          dk    sJ |                     |d          dk    sJ |                     |d          dk    sJ |                     |d          dk    sJ |                     |dd          dk    sJ |                     |dd          dk    sJ |                     |dd          dk    sJ |dz  dz
  }|                     |          dk    sJ |                     |d          dk    sJ |                     |d	d          dk    sJ d S )
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0!!!!++q0000!!!!++q0000!!!!22a7777!!!!22a7777!!!!22a7777	1qA!!!$$))))!!!!++q0000!!!!33q888888r    r   c                     t          dt                    \  } }|dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ d S )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2$$Q1--2222 	
AA$$Q1--2222$$Q1--222222r    c                     t          dt                    \  } }|dz  |z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz   |z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz   |z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ d S )Nr   r   r   r   r   s      r   test_dup_count_complex_roots_2r     sq   R==DAq 	
1qA$$Q1--2222$$Q1--2222 
A	A$$Q1--2222$$Q1--2222 	
1qA$$Q1--2222$$Q1--2222 
A	A$$Q1--2222$$Q1--222222r    c                  <   t          dt                    \  } }|dz  dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz   |z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ d S )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2$$Q1--2222 	
1qA$$Q1--2222$$Q1--2222 
A	A$$Q1--2222$$Q1--222222r    c                     t          dt                    \  } }|dz  dz   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz   |z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z
  |z   dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z
  |dz  z   |z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz   |dz  z   |dz  z
  |z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz   |z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ d S Nr   r   r   r   r   r   r   r   s      r   test_dup_count_complex_roots_4r     sM   R==DAq 	
1qA$$Q1--2222$$Q1--2222 	
1qA$$Q1--2222$$Q1--2222 
A	A$$Q1--2222$$Q1--2222 	
1q!ta!A$$Q1--2222$$Q1--2222 	
1q!tadQA$$Q1--2222$$Q1--2222 
A1q!taA$$Q1--2222$$Q1--2222 	
1qA$$Q1--2222$$Q1--2222 	
1qA$$Q1--2222$$Q1--2222 
A	A$$Q1--2222$$Q1--222222r    c                     t          dt                    \  } }|dz  d|z  z   dz   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z   dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z   d|z  z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z   d|z  z   dz   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z   d|dz  z  z   d|z  z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z   |dz  z   d|z  z
  dz
  }|                     |t          t                    dk    s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
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ d S )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2$$Q1--2222 	
1q!taA$$Q1--2222$$Q1--2222 	
1q!tacA$$Q1--2222$$Q1--2222 	
1qAv!aA$$Q1--2222$$Q1--2222 	
1qAv!Q$1$A$$Q1--2222$$Q1--2222 	
1qAv1qs"Q&A$$Q1--2222$$Q1--2222 	
1qAv1qAv%!+A$$Q1--2222$$Q1--222222r    c                     t          dt                    \  } }|dz  d|z  z
  dz   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z
  d|z  z   dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z
  d|dz  z  z   d|z  z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z
  dz   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z
  d|z  z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z
  |dz  z   d|z  z   dz
  }|                     |t          t                    dk    s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
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ d S 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2$$Q1--2222 	
1qAv!aA$$Q1--2222$$Q1--2222 	
1qAv!Q$1$A$$Q1--2222$$Q1--2222 	
1q!taA$$Q1--2222$$Q1--2222 	
1q!tacA$$Q1--2222$$Q1--2222 	
1qAv1qs"Q&A$$Q1--2222$$Q1--2222 	
1qAv1qAv%!+A$$Q1--2222$$Q1--222222r    c                     t          dt                    \  } }|dz  dz   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z
  d|z  z   dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z
  d|dz  z  z   dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z
  d|z  z   dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z
  d|dz  z  z   d|z  z
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z   d|z  z   dz   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z   d|dz  z  z   d|z  z   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |dz  |dz  z
  d|dz  z  z   dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ |d	z  |dz  z
  d|dz  z  z   d|z  z
  }|                     |t          t                    d	k    sJ |                     |t
          t                    dk    sJ |dz  d|dz  z  z   dz
  }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ d S )
Nr   r   r   r   r   r   rL   r   rB   r   r   s      r   test_dup_count_complex_roots_7r     s0   R==DAq 	
1qA$$Q1--2222$$Q1--2222 	
1qAv!aA$$Q1--2222$$Q1--2222 	
1qAv!Q$"A$$Q1--2222$$Q1--2222 	
1q!tacAA$$Q1--2222$$Q1--2222 	
1q!ta1fqs"A$$Q1--2222$$Q1--2222 	
1q!tacAA$$Q1--2222$$Q1--2222 	
1q!ta1fqs"A$$Q1--2222$$Q1--2222 	
1q!ta1fq A$$Q1--2222$$Q1--2222 	
1q!ta1fqs"A$$Q1--2222$$Q1--2222 	
1qAvA$$Q1--2222$$Q1--222222r    c                     t          dt                    \  } }|dz  d|dz  z  z   d|z  z
  }|                     |t          t                    dk    s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   }|                     |t          t                    dk    sJ |                     |t
          t                    dk    sJ d S )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2$$Q1--2222 	
2!Q$1a4!AqD&(1QT61AaC7A$$Q1--2222$$Q1--222222r    c                      t          dt                    \  } }|dz  |z
  }|                     |          dk    sJ |                     |d          dk    sJ |                     |d          dk    sJ d S )Nr   r   rZ   r   r   r   )r   r   r   r   s      r   %test_dup_count_complex_roots_implicitr     s    R==DAq 	
1qA$$Q''1,,,,$$QF$33q8888$$QF$33q888888r    c                     t          dt                    \  } }|dz  |z
  }t          d           t          d          ft          d          t          d          f}}|                     |||          dk    sJ |                     |||dg          dk    sJ |                     |||d	g          dk    sJ |                     |||dd	g          d
k    sJ |                     |||dg          dk    sJ |                     |||dg          dk    sJ |                     |||ddg          dk    sJ |                     |||g d          d
k    sJ |                     |||dg          dk    sJ |                     |||dg          dk    sJ |                     |||ddg          d
k    sJ |                     |||g d          dk    sJ |                     |||g d          dk    sJ t          d          t          d          ft          d          t          d          f}}|                     |||d          dk    sJ d S )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     s   R==DAq 	
1qAUUFBqEE?RUUBqEENqA$$Q1--2222$$Q1se$<<AAAA$$Q1se$<<AAAA$$Q1sCj$AAQFFFF$$Q1se$<<AAAA$$Q1se$<<AAAA$$Q1sCj$AAQFFFF$$Q16J6J6J$KKqPPPP$$Q1tf$==BBBB$$Q1tf$==BBBB$$Q1tTl$CCqHHHH$$Q16G6G6G$HHAMMMM$$Q16L6L6L$MMQRRRRRqEE2a55>BqEE2a55>qA$$Q1d$;;q@@@@@@r    c            
         t          dt                    \  } }|dz  d|z  z
  dz   }|                     |          ddgk    sJ d |                     |d          D             ddgk    s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 |                     |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   }|                     |          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 d S ) Nr   r   r   ))r   )rL   r   )rZ   )rL   rL   c                 6    g | ]}|                                 S r%   )as_tuple).0rs     r   
<listcomp>z6test_dup_isolate_complex_roots_sqf.<locals>.<listcomp>
  s     VVVaQZZ\\VVVr    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_sqfr   r   s      r   "test_dup_isolate_complex_roots_sqfr     s   R==DAq	1qs
QA**1--	,-. . . .VV1#B#B1t#B#T#TVVV	,-. . . . **1"Q))*<<b"::1ay
!Br2JJB#<	=b"::r"bzz
"RBZZAq$:	;	== = = = **1"Q***==c3<<"S#,,
'"S#,,C)F	Gc3<<C
&Cr#s||(D	E	GG G G G 	
!Q$AqD2ad7"RT)B.A**1--r1II:2q		z
"F	+2q		z1o2b!99~-Nr"ayyj/Br1IIq>	*VbQiiB5K,L	NN N N N N Nr    c            	         t          dt                    \  } }d|dz  z  |dz  z
  d|dz  z  z   d|z  z   }|                     |          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 |                     |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 d S )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     s   R==DAq	!Q$A!Q$1$A&&q))
6	1ay>Bq!HHa=
)FR1XXr!Qxx4H+I	J	LL L L L &&qbBii&88b!99bQii
 &	)r2JJB$r!Qxx"R**&=
>"R**bQSUWjjAY\^_`bc\d\dfhikmofpfp[q@r	s	uu u u u u ur    c            	      b   t          dt                    \  } d| dz  z  | dz  z
  d| dz  z  z   d| z  z                                 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                     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           d S )Nr   r   r   r   r   )r   r   r   r   r   rZ   r   rJ   r   r   r   rB   ra   r   r   r   c                  .                                    S r#   )dup_isolate_all_rootsrA   s   r   r&   z,test_dup_isolate_all_roots.<locals>.<lambda>7  s    (?(?(B(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1XXqM*A
.R1XXr!Qxx()1
-
/	00 0 0 0
 ""1"Q))"44r1IIr"ayy!1
%{	3BZZ"R**%1a2b"::+'>?
CBZZB$r!QxxB&<=q
A
C	DD D D D
 	
1q!ta1fqAv%)A-A
 B B B B BCCCC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 K " " " " " " 0 0 0 0 0 0 0 0 0 0 0 0 Q Q Q Q Q Q Q Q Q Q          ( ' ' ' ' 'Z Z ZG G GJ J JR R R>A >A >ABoE oE oEbLA LA LA^<H <H <H~S S S$9 9 9, 
AA""Q%%A1	AA""Q%%A13 3 33 3 303 3 3&.3 .3 .3b$3 $3 $3N$3 $3 $3N33 33 33l3 3 3	9 	9 	9A A ADN N N.
u 
u 
uD D D D Dr    