o
    GZŽhÔ  ã                   @   s`  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d„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedƒ edƒ fedƒedƒfZZedƒedƒfedƒedƒfZZdd„ Z dd„ Z!d d!„ Z"d"d#„ Z#d$d%„ Z$d&d'„ Z%d(d)„ Z&d*d+„ Z'd,d-„ Z(d.d/„ Z)d0d1„ Z*d2d3„ Z+d4d5„ Z,d6S )7zETests 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                  C   s¨   t dtƒ\} }|  d¡dgksJ ‚|  |¡|dgksJ ‚|d d|d   d|  d }|  |¡|d|d  d|  d tddƒ | td	dƒ td
dƒ gksRJ ‚d S )NÚxé   é   é   é   é   é
   é	   é   iç  éd   )r   r   Z	dup_sturm©ÚRr   Úf© r   úS/var/www/auris/lib/python3.10/site-packages/sympy/polys/tests/test_rootisolation.pyÚtest_dup_sturm   s
    Pr   c                   C   s|   t tdd„ ƒ t tdd„ ƒ t td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                   S   ó
   t g tƒS ©N©r
   r   r   r   r   r   Ú<lambda>   ó   
 z-test_dup_cauchy_upper_bound.<locals>.<lambda>c                   S   ó   t tdƒgtƒS ©Nr   r    r   r   r   r   r!      ó    c                   S   ó   t tdƒtdƒgtƒS r$   )r
   r   r   r   r   r   r!      ó    r   r   éþÿÿÿr   )r   r	   r   r
   r   Úzeror   r   r   r   Útest_dup_cauchy_upper_bound   s
   &,r*   c                   C   sf   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ ttdƒtdƒtdƒgtƒtd	d
ƒks1J ‚d S )Nc                   S   r   r   ©r   r   r   r   r   r   r!       r"   z-test_dup_cauchy_lower_bound.<locals>.<lambda>c                   S   r#   r$   r+   r   r   r   r   r!   !   r%   c                   S   s   t tdƒtdƒtdƒgtƒS )Nr   r   r+   r   r   r   r   r!   "   s    c                   S   r&   r$   )r   r   r   r   r   r   r!   #   r'   r   r   r(   r   r   )r   r	   r   r   r   r   r   r   r   Útest_dup_cauchy_lower_bound   s
   .r,   c                   C   sJ   t tdd„ ƒ t tdd„ ƒ ttdƒtdƒtdƒgtƒtddƒks#J ‚d S )	Nc                   S   r   r   ©r   r   r   r   r   r   r!   )   r"   z5test_dup_mignotte_sep_bound_squared.<locals>.<lambda>c                   S   r#   r$   r-   r   r   r   r   r!   *   r%   r   r   r(   r   r   )r   r	   r   r   r   r   r   r   Ú#test_dup_mignotte_sep_bound_squared(   s   .r.   c                     s|  t dtƒ\‰ } | d d ‰ˆ jˆtdƒtdƒddtdƒtdƒfks$J ‚ˆ jˆtdƒtdƒddtdƒtdƒfks;J ‚tt‡ ‡fdd„ƒ tddƒtddƒ}}ˆ jˆ||ddtddƒtddƒfkseJ ‚ˆ jˆ||ddtddƒtd	dƒfkszJ ‚ˆ jˆ||ddtd
d	ƒtd	dƒfksJ ‚ˆ jˆ||d	dtddƒtd	dƒfks¤J ‚ˆ jˆ||d
dtddƒtddƒfks¹J ‚tddƒtd	dƒ}}ˆ jˆ||ddtddƒtd	dƒfksÙJ ‚ˆ jˆ||ddtd
d	ƒtd	dƒfksîJ ‚ˆ jˆ||ddtddƒtd	dƒfksJ ‚ˆ jˆ||d	dtddƒtddƒfksJ ‚ˆ jˆ||d
dtddƒtddƒfks0J ‚tddƒtdd	ƒ}}ˆ jˆ||ddtddƒtdd	ƒfksQJ ‚ˆ jˆ||ddtddƒtd	dƒfksgJ ‚ˆ jˆ||ddtddƒtd	dƒfks}J ‚ˆ jˆ||d	dtddƒtddƒfks“J ‚ˆ jˆ||d
dtddƒtddƒfks©J ‚tddƒtddƒ}}ˆ jˆ||ddtddƒ tddƒ fksÌJ ‚ˆ jˆ||ddtd	dƒ tddƒ fksäJ ‚ˆ jˆ||ddtd	dƒ td
d	ƒ fksüJ ‚ˆ jˆ||d	dtd	dƒ tddƒ fksJ ‚ˆ jˆ||d
dtddƒ tddƒ fks,J ‚tt‡ ‡fdd„ƒ tdƒtdƒtddƒtddƒtddƒf\}}}}}ˆ jˆ||tddƒd||fksbJ ‚ˆ jˆ||dd||fksrJ ‚ˆ jˆ||tddƒdd||fks†J ‚ˆ jˆ||tddƒdd||fksšJ ‚ˆ jˆ||tddƒdd||fks®J ‚tdƒtdƒtddƒtdd	ƒf\}}}}ˆ jˆ||tdƒd||fksÔJ ‚ˆ jˆ||| d||fksåJ ‚ˆ jˆ|||d||fksõJ ‚tdƒtdƒtd
d	ƒtd	dƒf\}}}}ˆ jˆ||tdƒd||fksJ ‚ˆ jˆ||| d||fks,J ‚ˆ jˆ|||d||fks<J ‚d S )Nr   r   r   )Ústepsr   c                      ó   ˆ   ˆtdƒtdƒ¡S )Nr(   r   ©Údup_refine_real_rootr   r   ©r   r   r   r   r!   6   r'   z+test_dup_refine_real_root.<locals>.<lambda>r   r   r   é   r   r   é   é   r   é   é   éÿÿÿÿr(   c                      r0   )Nr   r   r1   r   r3   r   r   r!   X   r'   é   r   ©Úepsé   )r<   r/   éýÿÿÿéüÿÿÿéûÿÿÿ)Zdisjoint)r   r   r2   r   r   Ú
ValueErrorr   )r   ÚsÚtÚuÚvÚwr   r3   r   Útest_dup_refine_real_root/   sX   ..*******,,,,,,,,000002& (((($" ($"$rG   c                     sN  t dtƒ\‰ ‰ˆ  d¡g ksJ ‚ˆ  d¡g ksJ ‚ˆ  ˆd ˆ ¡ddgks(J ‚ˆ  ˆd ˆ ¡ddgks7J ‚ˆ  ˆd ˆ d	 ¡g ksFJ ‚d
dg} ˆ  ˆd d ¡| ksWJ ‚ˆ  ˆd  d ¡| kseJ ‚ˆ  ˆd	 ¡dgksqJ ‚ˆ  ˆd dˆ  d ¡ddgks„J ‚ˆ  ˆd dˆd   dˆ  d ¡g d¢ksJ ‚ˆ  ˆd dˆd   dˆd   dˆ  d ¡g d¢ks¼J ‚ˆ  ˆd dˆd   dˆd   dˆd   dˆ  d ¡g d¢ksáJ ‚ˆ  ˆd ¡dgksíJ ‚ˆ  ˆd dˆ  d ¡ddgksJ ‚ˆ  ˆd d ˆd   d!ˆ  d" ¡g d#¢ksJ ‚ˆ  ˆd d$ˆd   d%ˆd   d&ˆ  d' ¡g d(¢ks;J ‚ˆ  ˆd d)ˆd   d*ˆd   d+ˆd   d,ˆ  d- ¡g d.¢ksaJ ‚ˆ  ˆd	 ¡dgksnJ ‚ˆ  ˆd dˆ  d ¡d/dgks‚J ‚ˆ  ˆd dˆd   dˆ  d ¡g d0¢ksœJ ‚ˆ  ˆd dˆd   dˆd   dˆ  d ¡g d1¢ks¼J ‚ˆ  ˆd dˆd   dˆd   dˆd   dˆ  d ¡g d2¢ksâJ ‚ˆ  ˆd ¡d3gksïJ ‚ˆ  ˆd dˆ  d ¡d4d3gksJ ‚ˆ  ˆd d ˆd   d!ˆ  d" ¡g d5¢ksJ ‚ˆ  ˆd d$ˆd   d%ˆd   d&ˆ  d' ¡g d6¢ks=J ‚ˆ  ˆd d)ˆd   d*ˆd   d+ˆd   d,ˆ  d- ¡g d7¢kscJ ‚ˆ  ˆd d ¡d8d9gkssJ ‚ˆ  ˆd d ¡dgks‚J ‚ˆ  ˆd d ¡d
dgks’J ‚ˆ  ˆd d ¡dgks¡J ‚ˆ  ˆd d ¡d
dgks±J ‚ˆ  ˆd: d ¡dgksÀJ ‚ˆ  ˆd; d ¡d
dgksÐJ ‚ˆ  ˆd< d ¡dgksßJ ‚ˆ  ˆd d	 ¡ddgksïJ ‚ˆ  ˆd dˆd   ˆ d ¡g d=¢ksJ ‚ˆ  ˆd dˆd   d ¡g d>¢ksJ ‚ˆ  ˆd dˆd   dˆd   dˆd   dˆ  d? ¡g d@¢ksCJ ‚ˆ  ˆd dAˆd   dBˆd   dC ¡g dD¢ks_J ‚ˆ  dˆd:  ˆd  dEˆd   dAˆd   dFˆd   dBˆd   dGˆ  dC ¡g dH¢ks‘J ‚ˆ  dˆd;  dIˆd   dJˆd   dKˆd   dC ¡g dL¢ksµJ ‚d<ˆd  d }ˆ  |¡dMdNgksÉJ ‚ˆ j|td	dƒdOtdPdƒtdQd:ƒftdd:ƒtd	dƒfgksêJ ‚ˆ j|td	d$ƒdOtdRdSƒtdTdUƒftd;dUƒtd<dSƒfgksJ ‚ˆ j|td	dVƒdOtdWdXƒtdTdUƒftd;dUƒtdYdXƒfgks,J ‚ˆ j|td	dZƒdOtdWdXƒtd[d\ƒftd]d\ƒtdYdXƒfgksMJ ‚ˆ j|td	d^ƒdOtd_d`ƒtdadbƒftdcdbƒtddd`ƒfgksnJ ‚ˆ j|td	deƒdOtdfdgƒtdadbƒftdcdbƒtdhdgƒfgksJ ‚diˆd  djˆd   dkˆd   dlˆd   dmˆ  d }ˆ  |¡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^ƒdO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  drˆd   dsˆd   dtˆ  du }ˆ  |¡| | fdMdN||fgksIJ ‚ˆ j|td	dvƒdOt|ƒ t|ƒ ftd	|ƒ td	|ƒ ftd	|ƒtd	|ƒft|ƒt|ƒfgks|J ‚ˆ j|dwdx\\}}}}	\}
}||   k r˜|k rÀn J ‚|td	ƒ tdƒfkrÀ|	tdƒtd	ƒfkrÀ|
|  k r¿|k sÂJ ‚ J ‚ˆ j|dwtd	dyƒdzt|ƒ t|ƒ ftd	|ƒ td	|ƒ ftd	|ƒtd	|ƒft|ƒt|ƒfgksöJ ‚d{ˆd  d;ˆd   d|ˆd   d}ˆ  d~ }ˆ  |¡g d¢ksJ ‚ˆ j|td	d$ƒdOtdƒ tdƒ ftd€dAƒ tddƒ ftdƒtdƒftd‚dƒƒtd„d<ƒfgksMJ ‚ˆd	 }ˆ j|dd…g ks]J ‚ˆ j|dd†g ksiJ ‚ˆ  |¡dgkstJ ‚ˆ j|d	d…dgksJ ‚ˆ j|d	d†dgksŽJ ‚ˆ j|d	d	d‡dgksœJ ‚ˆd d }ˆ j|td:dƒd…g ks±J ‚ˆ j|td:dƒd…td:dƒtddƒfgksÉJ ‚ˆ j|td:dƒd†d
gksÙJ ‚ˆ j|td:dƒd†d
d	tddƒfgksïJ ‚ˆ j|td:dƒ d†g ksÿJ ‚ˆ j|td:dƒ d†tddƒ td:dƒ fgksJ ‚ˆ j|td:dƒ d…dgks+J ‚ˆ j|td:dƒ d…tddƒ dPfdgksCJ ‚d
dg} ˆ j|dˆd…| ksSJ ‚ˆ j|dd†| ks_J ‚ˆ j|dˆdd‡| kslJ ‚t dtƒ\‰ ‰td;dƒˆd  td‰dŠƒˆ  tdUd‹ƒ }ˆ  |¡dMdŒgks”J ‚t dtƒ\‰ ‰tt‡ ‡fddŽ„ƒ d S )Nr   r   r   r   ©r9   r9   ©r   r   ©r   r   r   r   ©r(   r9   ©r   r   r   ©r   r   r=   é   )rJ   rM   ©r   r   r   é#   é2   r:   )rJ   rM   rO   ©r   r   é   éU   éá   i  éx   )rJ   rM   rO   rR   )r   r   ©r   r   é   éÈ   ©é   r[   é<   iL  ip  )rW   rZ   ©rX   rX   r   i¬  iPÃ  i€© )rW   rZ   r]   ©é(   r_   é–   i4!  ièn i Ï) i · )rW   rZ   r]   r^   )rQ   rQ   ©r(   r(   )©r>   r>   ra   rH   )©r?   r?   rb   ra   rH   ))r@   r@   rc   rb   ra   rH   ©éöÿÿÿre   ©éìÿÿÿrg   )©éâÿÿÿri   rf   rd   )©éØÿÿÿrk   rh   rf   rd   ))éÎÿÿÿrl   rj   rh   rf   rd   )r>   r(   ©r   r   r4   é   r   )ra   rH   rJ   )ra   rH   rJ   rM   r6   )rb   ra   rH   rJ   rM   é   é1   é$   )rb   ra   rH   rJ   rM   rO   é   éb   éH   )rb   ra   rH   ©r9   r   rJ   rM   rO   é9   éÒ   éÁ   )rb   ra   rH   ru   ©r   r   rJ   rM   rO   ru   ry   r;   r9   r>   i÷ÿÿÿr8   iøÿÿÿr5   iè  ißÿÿÿéF   é!   i'  i•ÿÿÿéã   ék   i † iÏþÿÿi‡  iðþÿÿiA  i  i1  i@B iŸûÿÿiJ	  ia  i¬Híi¤¿)i_¡À)i¶kïiQœ  i'  i'  )l   jŸ'a$i£7wl   çw (	 l   Hk}a$l   N•,-UŸ, l   ñ*0B¿de_Ê/ l   Å@FRµ{®.hNÛ^À3Ðma3 l   Yv~1¤bÎ@´Þý
Ml   H_ø‹Zee W
l    hí] T)Úfastl      @*_kæzÁcP )r~   r<   re   éP   é    é    )ra   rK   rM   rm   é   é   é'   é   é   ©Úinf©Úsup©rˆ   rŠ   r(   iNU i  i  )ro   rS   c                      ó   ˆ   ˆd ¡S ©Nr   )Údup_isolate_real_roots_sqfr   ©r   r   r   r   r!     ó    z1test_dup_isolate_real_roots_sqf.<locals>.<lambda>)r   r   rŽ   r   r   r   r   )ÚIr   ÚaÚbÚcÚdrD   rE   ÚBÚCrB   rC   r   r   r   Útest_dup_isolate_real_roots_sqfp   sp  ÿÿ$ÿ0ÿ<ÿÿ
ÿ$
ÿ0
ÿ<
ÿ
ÿ
ÿ$
ÿ0
ÿ<
ÿ
ÿ
ÿ$
ÿ0
ÿ<
ÿ    
ÿ 
ÿ
ÿ<
ÿ(
ÿT
ÿ8
ÿ
ÿ&
ÿ&
ÿ&
ÿ&
ÿ&
ÿ&
ÿ<".ÿ
ÿ$.ÿ
ÿ

ÿ
þýü
ÿJ
ÿnJ
ÿ0
ÿJ
ÿ0 , 6"0*r˜   c                     sÎ  t dtƒ\‰ ‰ˆ  d¡g ksJ ‚ˆ  d¡g ksJ ‚ˆ  dˆ ¡dgks%J ‚ˆ  dˆd  ¡dgks3J ‚ˆ  ˆd	 ˆ ¡d
dgksBJ ‚ˆ  ˆd	 ˆ ¡ddgksQJ ‚ˆ  ˆd ˆ d ¡g ks`J ‚ddg} ˆ  ˆd	 d	 ¡| ksqJ ‚ˆ  ˆd	  d	 ¡| ksJ ‚dˆd  dˆd   dˆd   dˆd   dˆd   dˆd   dˆd   dˆd   dˆd   d ˆd   d!ˆd   d"ˆd   d#ˆd	   d$ˆ  d% }ˆ  |¡}ˆ  |¡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sRJ ‚ˆ  |¡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 }ˆ j|d	d&g ks¤J ‚ˆ j|dd'g ks°J ‚ˆ  |¡dgks»J ‚ˆ j|dd&dgksÈJ ‚ˆ j|dd'dgksÕJ ‚ˆ j|ddd(dgksãJ ‚ˆd dˆd	   d }ˆ j|tddƒd&g ksþJ ‚ˆ j|tddƒd&tddƒtdd	ƒfd	fgksJ ‚ˆ j|tddƒd'd)gks(J ‚ˆ j|tddƒd'd)dtdd	ƒfd	fgks@J ‚ˆ j|tddƒ d'g ksPJ ‚ˆ j|tddƒ d'tdd	ƒ tddƒ fd	fgksmJ ‚ˆ j|tddƒ d&d*gks~J ‚ˆ j|tddƒ d&tdd	ƒ d+fd	fd*gks˜J ‚d)d*g} ˆ j|d,d&| ks¨J ‚ˆ j|d	d'| ks´J ‚ˆ j|d,d	d(| ksÁJ ‚ˆd dˆd   ˆd  dˆd   dˆd   dˆd   dˆd   dˆd   }ˆ j|d-d.g d/¢ksûJ ‚ˆ j|d0d.d1d	g d2¢fd3dddgfd4ddd+gfd5d	g d2¢fgksJ ‚ˆd6 d6ˆd7   d8ˆd9   d }ˆd: d;ˆd9   d<ˆd=   d>ˆd?   d@ˆdA   dBˆdC   dDˆdE   dFˆdG   dHˆdI   dJˆdK   dLˆdM   dNˆdO   dPˆdQ   dRˆdS   dTˆdU   dVˆdW   dXˆdY   dZˆd[   d\ˆd   d]ˆd^   d\ˆd_   dZˆd`   dXˆda   dVˆdb   dTˆdc   dRˆdd   dPˆd   dNˆde   dLˆd   dJˆd   dHˆd   dFˆd   dDˆd   dBˆd   d@ˆd   d>ˆd   d<ˆd   dfˆd   dgˆd   d;ˆd   dhˆd	   diˆ  d }ˆ  || ¡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sTJ ‚t dtƒ\‰ ‰tt‡ ‡fdldm„ƒ d S )nNr   r   r   r   ©rI   r   r4   r   ©rI   r   r   )rH   r   )rJ   r   r   )rK   r   )rL   r   r…   ro   é`   r   r:   r6   i¨  rN   i?  r   i@  r   iì#  rn   i(  iGU  r=   i6  iºT  i h  id  iÀ<  iÈ  r‡   r‰   r‹   ©rK   r   ©rL   r   r9   r(   F©Zbasis)rœ   rš   )rJ   r   r   TrK   ©r   r   r(   rI   rJ   rL   é-   é,   iÞ  é+   é.   iL;  i#íŽ r_   iÈ¸0r„   iÏ„é&   ijÛªAé%   l   Õ+ðe rq   l   \2X6 rP   l   7h$ é"   l   szc^ r{   l   EX¡3ß r€   l   `MLÜé   l   ê}F3›rX   l   ¬VæC]é   l   N6e-A
rr   l   X.Ëxr7   l   *xx	gé   l   4pÞTBé   l   Þsˆ=´l   °;m}ór‚   r†   é   r[   r8   rƒ   r5   rS   i‚ê iq} i  é/   ))r=   r4   r   ))r:   rª   r   c                      rŒ   r   )Údup_isolate_real_rootsr   r   r   r   r!   m  r   z-test_dup_isolate_real_roots.<locals>.<lambda>)	r   r   r­   Zdup_sqf_partr   rŽ   r   r   r   )r‘   r   Úgr   r   r   Útest_dup_isolate_real_roots!  sž   R
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÿÿ
F*ÿ
ÿ:"ÿ
ÿF*ÿ
ÿ4 0 :"4X
ÿ2
ÿ$þö <
ÿr¯   c               	      s"  t dtƒ\‰ ‰ˆ  ˆd ˆ ˆg¡dddifddddœfgks!J ‚ˆ  ˆd ˆ ˆg¡ddddœfdddifgks;J ‚ˆ  ˆd ˆd ˆd ˆd ˆd ˆd 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 ˆd ˆd ˆd ˆd ˆd 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 dˆd   d ˆd } }ˆ j| |gtddƒdg ksâJ ‚ˆ j| |gtd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difdddifgksJ ‚ˆ j| |gtd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ƒ dg ksQJ ‚ˆ j| |gtddƒ dtddƒ tddƒ fddifgksrJ ‚ˆ j| |gtddƒ ddddifdddifgksŽJ ‚ˆ j| |gtd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  d ˆd d } }ˆ  | |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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sCJ ‚ˆd d ˆd ˆd  dˆ  d } }ˆ  | |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 dˆ  ˆd ˆd  dˆd   dˆd   } }ˆ  | |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 dˆd   ˆd  dˆd   dˆd   dˆd   dˆd   dˆd   ˆd dˆd   dˆd   dˆd   dˆ  } }ˆ j| |gdddddifddddœfddddœfdddifgksNJ ‚ˆ j| |gd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"„ƒ d S )#Nr   r   rH   r   r   rI   ry   rJ   )r   r   )r   r   r   )r   r   )r   r   r   r4   r‡   r   r   r‰   rK   rL   r9   T)Ústrict)r   r   r   rn   rN   r=   r6   Frž   rŸ   c                      s   ˆ   ˆd g¡S r   )Údup_isolate_real_roots_listr   r   r   r   r!   ¬  r%   z2test_dup_isolate_real_roots_list.<locals>.<lambda>)r   r   r±   r   r   r   r   )r   r®   r   r   r   Ú test_dup_isolate_real_roots_listp  s„   ÿÿ,Rÿ,Rÿ" ÿ
ÿ*
ÿ$ 
ÿ
ÿ,
ÿ2,ÿ
ÿ:2ÿ
ÿ*L
ÿ:4.ÿ
ÿŽ.
ÿ""ÿ
ÿr²   c                  C   sü   t dtƒ\} }|d d }|d d }|  ||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s8J ‚t dtƒ\} }td
dƒ |d  d
 }td
dƒ |d  d
 }|  ||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   rY   éÉ   éK   r©   ée   rP   r   r   i5  r}   r   )r   r   r±   r   )r   r   r   r®   r   r   r   Ú#test_dup_isolate_real_roots_list_QQ¯  s   6ÿ6ÿr¶   c                  C   s&  t dtƒ\} }|  d¡dksJ ‚|  d¡dksJ ‚|d }|  |¡dks&J ‚| j|dddks1J ‚| j|dddks<J ‚| j|dddksGJ ‚| j|ddddksSJ ‚| j|ddddks_J ‚| j|ddddkskJ ‚|d d }|  |¡dkszJ ‚| j|dddks…J ‚| j|d	dddks‘J ‚d S )
Nr   r   r4   r   r‡   r‰   r‹   r   r9   )r   r   Zdup_count_real_rootsr   r   r   r   Útest_dup_count_real_rootsÁ  s   r·   r   c                  C   sz   t dtƒ\} }|d }|  |tt¡dksJ ‚|  |tt¡dks!J ‚|d }|  |tt¡dks0J ‚|  |tt¡dks;J ‚d S )Nr   r   r   ©r   r   Údup_count_complex_rootsr’   r“   r”   r•   r   r   r   r   Útest_dup_count_complex_roots_1Ú  s   rº   c                  C   sö   t dtƒ\} }|d | }|  |tt¡dksJ ‚|  |tt¡dks#J ‚|d  | }|  |tt¡dks5J ‚|  |tt¡dks@J ‚|d | }|  |tt¡dksQJ ‚|  |tt¡dks\J ‚|d  | }|  |tt¡dksnJ ‚|  |tt¡dksyJ ‚d S )Nr   r   r   r¸   r   r   r   r   Útest_dup_count_complex_roots_2è  s   r»   c                  C   s¼   t dtƒ\} }|d d }|  |tt¡dksJ ‚|  |tt¡dks#J ‚|d | }|  |tt¡dks4J ‚|  |tt¡dks?J ‚|d  | }|  |tt¡dksQJ ‚|  |tt¡dks\J ‚d S )Nr   r   r   r   r¸   r   r   r   r   Útest_dup_count_complex_roots_3   s   r¼   c                  C   s@  t dtƒ\} }|d d }|  |tt¡dksJ ‚|  |tt¡dks#J ‚|d | }|  |tt¡dks4J ‚|  |tt¡dks?J ‚|d  | }|  |tt¡dksQJ ‚|  |tt¡dks\J ‚|d |d  | d }|  |tt¡dkssJ ‚|  |tt¡dks~J ‚|d |d  |d  | }|  |tt¡dks—J ‚|  |tt¡dks¢J ‚|d  |d  |d  | }|  |tt¡dks¼J ‚|  |tt¡dksÇJ ‚|d d }|  |tt¡dksØJ ‚|  |tt¡dksãJ ‚|d | }|  |tt¡dksôJ ‚|  |tt¡dksÿJ ‚|d  | }|  |tt¡dksJ ‚|  |tt¡dksJ ‚d S ©Nr   r   r   r   r   r   r¸   r   r   r   r   Útest_dup_count_complex_roots_4  s8   r¾   c                  C   s*  t dtƒ\} }|d d|  d }|  |tt¡dksJ ‚|  |tt¡dks'J ‚|d |d  d }|  |tt¡dks<J ‚|  |tt¡dksGJ ‚|d |d  d|  }|  |tt¡dks^J ‚|  |tt¡dksiJ ‚|d d|d   d|  d }|  |tt¡dks„J ‚|  |tt¡dksJ ‚|d d|d   d|d   d|  }|  |tt¡dks®J ‚|  |tt¡dks¹J ‚|d d|d   |d  d|  d }|  |tt¡dksØJ ‚|  |tt¡dksãJ ‚|d d|d   |d  d|d   d|  }|  |tt¡dksJ ‚|  |tt¡dksJ ‚d S )Nr   r   r   r   r   r   r   r¸   r   r   r   r   Útest_dup_count_complex_roots_5D  s,    ((0r¿   c                  C   s*  t dtƒ\} }|d d|  d }|  |tt¡dksJ ‚|  |tt¡dks'J ‚|d d|d   d|  d }|  |tt¡dksBJ ‚|  |tt¡dksMJ ‚|d d|d   d|d   d|  }|  |tt¡dkslJ ‚|  |tt¡dkswJ ‚|d |d  d }|  |tt¡dksŒJ ‚|  |tt¡dks—J ‚|d |d  d|  }|  |tt¡dks®J ‚|  |tt¡dks¹J ‚|d d|d   |d  d|  d }|  |tt¡dksØJ ‚|  |tt¡dksãJ ‚|d d|d   |d  d|d   d|  }|  |tt¡dksJ ‚|  |tt¡dksJ ‚d S r½   r¸   r   r   r   r   Útest_dup_count_complex_roots_6k  s,    ((0rÀ   c                  C   s  t dtƒ\} }|d d }|  |tt¡dksJ ‚|  |tt¡dks#J ‚|d d|d   d|  d }|  |tt¡dks>J ‚|  |tt¡dksIJ ‚|d d|d   d|d   d }|  |tt¡dksfJ ‚|  |tt¡dksqJ ‚|d |d  d|  d }|  |tt¡dksŠJ ‚|  |tt¡dks•J ‚|d |d  d|d   d|  }|  |tt¡dks²J ‚|  |tt¡dks½J ‚|d |d  d|  d }|  |tt¡dksÖJ ‚|  |tt¡dksáJ ‚|d |d  d|d   d|  }|  |tt¡dksþJ ‚|  |tt¡dks
J ‚|d |d  d|d   d }|  |tt¡dks&J ‚|  |tt¡dks2J ‚|d	 |d  d|d   d|  }|  |tt¡d	ksPJ ‚|  |tt¡dks\J ‚|d d|d   d }|  |tt¡dkstJ ‚|  |tt¡dks€J ‚d S )
Nr   r   r   r   r   rn   r=   r   r4   r¸   r   r   r   r   Útest_dup_count_complex_roots_7’  s>    $$$ $rÁ   c                  C   sÆ   t dtƒ\} }|d d|d   d|  }|  |tt¡dks J ‚|  |tt¡dks+J ‚|d d|d   d|d   d	|d   d|d   d
|  }|  |tt¡dksVJ ‚|  |tt¡dksaJ ‚d S )Nr   r   r   r   r   rN   r   r4   r=   rn   r¸   r   r   r   r   Útest_dup_count_complex_roots_8È  s   @rÂ   c                  C   s\   t dtƒ\} }|d | }|  |¡dksJ ‚| j|dddks!J ‚| j|dddks,J ‚d S )Nr   r   rI   r‰   r   r‡   )r   r   r¹   r   r   r   r   Ú%test_dup_count_complex_roots_implicitÖ  s
   rÃ   c                  C   sð  t dtƒ\} }|d | }tdƒ tdƒftdƒtdƒf}}|  |||¡dks*J ‚| j|||dgddks8J ‚| j|||d	gddksFJ ‚| j|||dd	gdd
ksUJ ‚| j|||dgddkscJ ‚| j|||dgddksqJ ‚| j|||ddgddks€J ‚| j|||g d¢dd
ksJ ‚| j|||dgddksJ ‚| j|||dgddks«J ‚| j|||ddgdd
ksºJ ‚| j|||g d¢ddksÉJ ‚| j|||g d¢ddksØJ ‚tdƒtdƒftdƒtdƒf}}| j|||d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“   r   r   r   Ú$test_dup_count_complex_roots_excludeâ  s$   $"rË   c               	   C   sâ  t dtƒ\} }|d d|  d }|  |¡ddgksJ ‚dd„ | j|dd	D ƒddgks.J ‚| j|td
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sdJ ‚| j|td
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  d|d   d|d   d|  d }|  |¡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   éúÿÿÿ)r=   r   )rI   )r=   r=   c                 S   s   g | ]}|  ¡ ‘qS r   )Úas_tuple)Ú.0Úrr   r   r   Ú
<listcomp>
  s    z6test_dup_isolate_complex_roots_sqf.<locals>.<listcomp>T)Zblackboxr   r   r;   rS   r…   r{   r€   r    r   éÿ   é   ik  i  i   iÓ  r4   r   r8   r[   r5   r_   rI   r   )r   r   Zdup_isolate_complex_roots_sqfr   r   r   r   r   Ú"test_dup_isolate_complex_roots_sqf  s0   ÿÿ*&ÿÿ*&ÿÿ062ÿÿrÓ   c                  C   s
  t dtƒ\} }d|d  |d  d|d   d|  }|  |¡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sAJ ‚| j|td	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   ru   rI   r   r   r   r;   éùÿÿÿrn   rÌ   r4   rP   é@   r€   éA   )r   r   Zdup_isolate_all_roots_sqfr   r   r   r   r   Útest_dup_isolate_all_roots_sqf  s   (4ÿÿRÿÿr×   c                     sb  t dtƒ\‰ } d| d  | d  d| d   d|   ‰ˆ  ˆ¡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sEJ ‚ˆ jˆtd	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sJ ‚| d | d  d| d   d| d   |  d	 ‰tt‡ ‡fdd„ƒ d S )Nr   r   r   r   r   )ru   r   r™   r   r   rI   r   r;   rÔ   rn   rÌ   r4   rP   rÕ   r€   rÖ   c                      s
   ˆ   ˆ¡S r   )Údup_isolate_all_rootsr   r3   r   r   r!   7  r"   z,test_dup_isolate_all_roots.<locals>.<lambda>)r   r   rØ   r   r   ÚNotImplementedError)r   r   r3   r   Útest_dup_isolate_all_roots(  s$   ( ÿÿÿ.*ÿÿÿ0rÚ   N)-Ú__doc__Zsympy.polys.ringsr   Zsympy.polys.domainsr   r   r   r   Zsympy.polys.polyerrorsr   r   r	   Zsympy.polys.rootisolationr
   r   r   Zsympy.testing.pytestr   r   r*   r,   r.   rG   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   r   Ú<module>   s@    
		A 2O?&"1''6"