o
    à8Vaäz  ã                   @   s,  d Z ddlmZ ddlmZmZmZ ddl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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 d)d*„ Z!d+d,„ Z"d-d.„ Z#d/S )0zETests for real and complex root isolation and refinement algorithms. é    )Úring)ÚZZÚQQÚEX)ÚDomainErrorÚRefinementFailed)Ú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   úF/usr/lib/python3/dist-packages/sympy/polys/tests/test_rootisolation.pyÚtest_dup_sturm   s
    P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 )Néþÿÿÿr   ©Údup_refine_real_rootr   r   ©r   r   r   r   Ú<lambda>   ó    z+test_dup_refine_real_root.<locals>.<lambda>r   r   r   é   r
   r   é   é   r   é   é   éÿÿÿÿr   c                      r   )Nr   r   r   r   r   r   r   r   ;   r    é   r   ©Úepsé   )r)   r   éýÿÿÿéüÿÿÿéûÿÿÿ)Zdisjoint)r   r   r   r   r   Ú
ValueErrorr   )r	   ÚsÚtÚuÚvÚwr   r   r   Útest_dup_refine_real_root   sX   ..*******,,,,,,,,000002& (((($" ($"$r4   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*   é   )r7   r:   ©r   r   r   é#   é2   r'   )r7   r:   r<   ©r   r   é   éU   éá   i  éx   )r7   r:   r<   r?   )r
   r
   ©r   r   é   éÈ   ©é   rH   é<   iL  ip  )rD   rG   ©rE   rE   r   i¬  iPÃ  i€© )rD   rG   rJ   ©é(   rL   é–   i4!  ièn i Ï) i · )rD   rG   rJ   rK   )r>   r>   ©r   r   )©r+   r+   rN   r5   )©r,   r,   rO   rN   r5   ))r-   r-   rP   rO   rN   r5   ©éöÿÿÿrR   ©éìÿÿÿrT   )©éâÿÿÿrV   rS   rQ   )©éØÿÿÿrX   rU   rS   rQ   ))éÎÿÿÿrY   rW   rU   rS   rQ   )r+   r   ©r   r   r!   é   r   )rN   r5   r7   )rN   r5   r7   r:   r#   )rO   rN   r5   r7   r:   é   é1   é$   )rO   rN   r5   r7   r:   r<   é   éb   éH   )rO   rN   r5   ©r&   r   r7   r:   r<   é9   éÒ   éÁ   )rO   rN   r5   rb   ©r   r   r7   r:   r<   rb   rf   r(   r&   r+   i÷ÿÿÿr%   iøÿÿÿr"   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 )rk   r)   rR   éP   é    é    )rN   r8   r:   rZ   é   é   é'   é   é   ©Úinf©Úsup©ru   rw   r   iNU i  i  )r\   r@   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Údr1   r2   ÚBÚCr/   r0   r   r|   r   Útest_dup_isolate_real_roots_sqfS   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
   ©r6   r   r!   r   ©r6   r   r   )r5   r   )r7   r   r   )r8   r   )r9   r   rr   r\   é`   r   r'   r#   i¨  r;   i?  r   i@  r   iì#  r[   i(  iGU  r*   i6  iºT  i h  id  iÀ<  iÈ  rt   rv   rx   ©r8   r   ©r9   r   r&   r   F©Zbasis)r‰   r‡   )r7   r   rŠ   Tr8   ©r   r   r   r6   r7   r9   é-   é,   iÞ  é+   é.   iL;  i#íŽ rL   iÈ¸0rq   iÏ„é&   ijÛªAé%   l   Õ+ðe r^   l   \2X6 r=   l   7h$ é"   l   szc^ rh   l   EX¡3ß rm   l   `MLÜé   l   ê}F3›rE   l   ¬VæC]é   l   N6e-A
r_   l   X.Ëxr$   l   *xx	gé   l   4pÞTBé   l   Þsˆ=´l   °;m}óro   rs   é   rH   r%   rp   r"   r@   i‚ê iq} i  é/   ))r*   r!   r   ))r'   r—   r   c                      ry   rz   )Údup_isolate_real_rootsr   r|   r   r   r   P  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   r5   r   r   r6   rf   r7   )r   r   )r   r   r
   )r   r
   )r   r   r   r!   rt   r
   r   rv   r8   r9   r&   T)Ústrict)r   r   r   r[   r;   r*   r#   Fr‹   rŒ   c                      s   ˆ   ˆd g¡S rz   )Údup_isolate_real_roots_listr   r|   r   r   r     s    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_listS  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
   rF   éÉ   éK   r–   ée   r=   r   r   i5  rj   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   r!   r   rt   rv   rx   r   r&   )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_5'  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_6N  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   r[   r*   r   r!   r¥   r   r   r   r   Útest_dup_count_complex_roots_7u  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   r;   r   r!   r*   r[   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
   r6   rv   r   rt   )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)Z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   )r6   )r*   r*   c                 S   s   g | ]}|  ¡ ‘qS r   )Zas_tuple)Ú.0Úrr   r   r   Ú
<listcomp>í  s    z6test_dup_isolate_complex_roots_sqf.<locals>.<listcomp>T)Zblackboxr   r   r(   r@   rr   rh   rm   r   r   éÿ   é   ik  i  i   iÓ  r!   r   r%   rH   r"   rL   r6   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
   rb   r6   r   r   r   r(   éùÿÿÿr[   r¸   r!   r=   é@   rm   é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
   )rb   r   r†   r   r   r6   r   r(   r¿   r[   r¸   r!   r=   rÀ   rm   rÁ   c                      s
   ˆ   ˆ¡S )N)Údup_isolate_all_rootsr   r   r   r   r     s   
 z,test_dup_isolate_all_roots.<locals>.<lambda>)r   r   rÃ   r   r   ÚNotImplementedError)r	   r   r   r   Útest_dup_isolate_all_roots  s$   ( ÿÿÿ.*ÿÿÿ0rÅ   N)$Ú__doc__Zsympy.polys.ringsr   Zsympy.polys.domainsr   r   r   Zsympy.polys.polyerrorsr   r   Zsympy.testing.pytestr   r   r4   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>   s8    
A 2O?&"1''6"