o
    oÇ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   Ú	dup_sturm©ÚRr   Úf© r   úx/var/www/html/construction_image-detection-poc/venv/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                      r1   )Nr   r   r2   r   r4   r   r   r"   X   r(   é   r   ©Úepsé   )r=   r0   éýÿÿÿéüÿÿÿéûÿÿÿ)Údisjoint)r   r   r3   r   r   Ú
ValueErrorr   )r   ÚsÚtÚuÚvÚwr   r4   r   Útest_dup_refine_real_root/   sX   ..*******,,,,,,,,000002& (((($" ($"$rI   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   ©r:   r:   ©r   r   ©r   r   r   r   ©r)   r:   ©r   r   r   ©r   r   r>   é   )rL   rO   ©r   r   r   é#   é2   r;   )rL   rO   rQ   ©r   r   é   éU   éá   i  éx   )rL   rO   rQ   rT   )r   r   ©r   r   é   éÈ   ©é   r]   é<   iL  ip  )rY   r\   ©rZ   rZ   r   i¬  iPÃ  i€© )rY   r\   r_   ©é(   ra   é–   i4!  ièn i Ï) i · )rY   r\   r_   r`   )rS   rS   ©r)   r)   )©r?   r?   rc   rJ   )©r@   r@   rd   rc   rJ   ))rA   rA   re   rd   rc   rJ   ©éöÿÿÿrg   ©éìÿÿÿri   )©éâÿÿÿrk   rh   rf   )©éØÿÿÿrm   rj   rh   rf   ))éÎÿÿÿrn   rl   rj   rh   rf   )r?   r)   ©r   r   r5   é   r   )rc   rJ   rL   )rc   rJ   rL   rO   r7   )rd   rc   rJ   rL   rO   é   é1   é$   )rd   rc   rJ   rL   rO   rQ   é   éb   éH   )rd   rc   rJ   ©r:   r   rL   rO   rQ   é9   éÒ   éÁ   )rd   rc   rJ   rw   ©r   r   rL   rO   rQ   rw   r{   r<   r:   r?   i÷ÿÿÿr9   iøÿÿÿr6   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=   rg   éP   é    é    )rc   rM   rO   ro   é   é   é'   é   é   ©Úinf©Úsup©rŠ   rŒ   r)   iNU i  i  )rq   rU   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ÚdrF   rG   ÚBÚCrD   rE   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   ©rK   r   r5   r   ©rK   r   r   )rJ   r   )rL   r   r   )rM   r   )rN   r   r‡   rq   é`   r   r;   r7   i¨  rP   i?  r   i@  r   iì#  rp   i(  iGU  r>   i6  iºT  i h  id  iÀ<  iÈ  r‰   r‹   r   ©rM   r   ©rN   r   r:   r)   F©Úbasis)rž   rœ   )rL   r   rŸ   TrM   ©r   r   r)   rK   rL   rN   é-   é,   iÞ  é+   é.   iL;  i#íŽ ra   iÈ¸0r†   iÏ„é&   ijÛªAé%   l   Õ+ðe rs   l   \2X6 rR   l   7h$ é"   l   szc^ r}   l   EX¡3ß r‚   l   `MLÜé   l   ê}F3›rZ   l   ¬VæC]é   l   N6e-A
rt   l   X.Ëxr8   l   *xx	gé   l   4pÞTBé   l   Þsˆ=´l   °;m}ór„   rˆ   é   r]   r9   r…   r6   rU   i‚ê iq} i  é/   ))r>   r5   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°   Ú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   rJ   r   r   rK   r{   rL   )r   r   )r   r   r   )r   r   )r   r   r   r5   r‰   r   r   r‹   rM   rN   r:   T)Ústrict)r   r   r   rp   rP   r>   r7   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   r[   éÉ   éK   r¬   ée   rR   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   r5   r   r‰   r‹   r   r   r:   )r   r   Ú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   rp   r>   r   r5   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   rP   r   r5   r>   rp   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   rK   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   )rK   )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)Úblackboxr   r   r<   rU   r‡   r}   r‚   r£   r   éÿ   é   ik  i  i   iÓ  r5   r   r9   r]   r6   ra   rK   r   )r   r   Ú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   rw   rK   r   r   r   r<   éùÿÿÿrp   rÑ   r5   rR   é@   r‚   éA   )r   r   Ú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   )rw   r   r›   r   r   rK   r   r<   rÛ   rp   rÑ   r5   rR   rÜ   r‚   rÝ   c                      s
   ˆ   ˆ¡S r    )Údup_isolate_all_rootsr   r4   r   r   r"   7  r#   z,test_dup_isolate_all_roots.<locals>.<lambda>)r   r   rà   r   r   ÚNotImplementedError)r   r   r4   r   Útest_dup_isolate_all_roots(  s$   ( ÿÿÿ.*ÿÿÿ0râ   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+   r-   r/   rI   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"