Ë
    7^(h³h  ã            
       óJ  — d Z ddlmZmZmZ ddl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lmZmZ ddlmZ dd	lmZmZmZ dd
lmZ ddlmZ ddlmZ ddl m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=Z=ddl>m?Z?  e
d«      \
  Z@ZAZBZCZDZEZFZGZHZId„ ZJd„ ZKd„ ZLd„ ZMd„ ZNd„ ZOd„ ZPd„ ZQd„ ZRd „ ZSd!„ ZTd"„ ZUd#„ ZVd$„ ZWd%„ ZXd&„ ZYd'„ ZZd(„ Z[d)„ Z\d*„ Z]d+„ Z^d,„ Z_d-„ Z`d.„ Zad/„ Zbd0„ Zce:d1„ «       Zdd2„ Zed3„ Zfd4„ Zgd5„ Zhd6„ Zid7„ Zjy)8zBTests for algorithms for computing symbolic roots of polynomials. é    )ÚIÚRationalÚpi)ÚS)ÚSymbolÚWildÚsymbols)Ú	conjugateÚimÚre)Úexp)ÚrootÚsqrt)Ú	Piecewise)ÚacosÚcosÚsin)ÚZZ)ÚInterval)Úpowsimp)ÚPolyÚcyclotomic_polyÚ	intervalsÚnrootsÚrootof)
Úroot_factorsÚroots_linearÚroots_quadraticÚroots_cubicÚroots_quarticÚroots_quinticÚroots_cyclotomicÚroots_binomialÚpreprocess_rootsÚroots)Úlegendre_poly)ÚPolynomialErrorÚUnsolvableFactorError)Ú_nsort)ÚraisesÚslow)Úverify_numericallyN)Úproductza,b,c,d,e,q,t,x,y,zc                 óì   — t        d„ | D «       «      }t        | d | «      t        | d | «      k(  sJ ‚t        |t	        | «      d«      D ]*  }| |dz      | |   k(  rŒ| |dz      t        | |   «      k(  rŒ* y y)Nc              3   ó<   K  — | ]  }|j                   rd nd–— Œ y­w)é   r   N)Úis_real©Ú.0Úis     ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/tests/test_polyroots.pyú	<genexpr>z_check.<locals>.<genexpr>(   s   è ø€ Ò5¨!�Q—Y’Y‘ AÓ%Ñ5ùó   ‚é   r0   FT)ÚsumÚsortedÚlistÚrangeÚlenr
   )r%   ÚnrealÚixs      r5   Ú_checkr@   $   s‰   € ô Ñ5¨uÔ5Ó5€EÜ�%˜˜�-Ó ¤D¨¨v°¨Ó$7Ò7Ð7Ð7Ü�Eœ3˜u›: qÓ)ò ˆà�b˜1‘f‘  r¡Ó*Ø�b˜1‘f‘¤¨5°©9Ó!5Ó5Ùð	ð
 ó    c                  ój   — t        t        dt        z  dz   t        «      «      t        dd«      gk(  sJ ‚y )Nr8   r0   éÿÿÿÿ)r   r   Úxr   © rA   r5   Útest_roots_linearrF   2   s-   € Üœ˜Qœq™S 1™W¤aÓ(Ó)¬h°r¸1«oÐ->Ò>Ð>Ñ>rA   c            	      ó8
  — t        t        dt        dz  z  t        «      «      ddgk(  sJ ‚t        t        dt        dz  z  dt        z  z   t        «      «      t        dd«      dgk(  sJ ‚t        t        dt        dz  z  dz   t        «      «      t         t        d«      z  dz  t        t        d«      z  dz  gk(  sJ ‚t        t        dt        dz  z  dt        z  z   dz   t        «      «      dt        t        d«      z  dz  z
  dt        t        d«      z  dz  z   gk(  sJ ‚t        t        dt        dz  z  dt        z  z   dz   t        «      j                  «       «       t        dz  dt        z  t        z  dt        z  t        z  z   t        t        z
  z  t        z  z   t        t        z
  t        t        dz  z  z   t        t        dz  z  z
  t        t        z
  z  z   } t        t        | t        «      «      t         t        t        z   z  t        t        z
  z  t        t        t        z  t        t        z  z   t        t        z  z
  t        t        z  z
  dt        z  t        z  t        dz  z  z   «      t        t        z
  z  z
  t         t        t        z   z  t        t        z
  z  t        t        t        z  t        t        z  z   t        t        z  z
  t        t        z  z
  dt        z  t        z  t        dz  z  z   «      t        t        z
  z  z   gk(  sJ ‚t        t        t        dz  z  dt        z  z
  dt        z  z
  t        «      } t        | «      t        dt        dz  z  dz   «       t        z  dt        z  z   t        dt        dz  z  dz   «      t        z  dt        z  z   gk(  sJ ‚t        t        dz  t        dz   dz
  t        z  z   t        dz  z   dz   t        «      } t        | «      dt        dz  dz   gk(  sJ ‚t        t        d«      t        dz  z  dz
  t        «      } t        | «      }|t        |«      k(  sJ ‚t        d	t        dz  z  d
t        z  z
  dz   «      } | j                  d¬«      D �cg c]  }|j                  d«      ‘Œ c}| j                  d¬«      D �cg c]  }|j                  d«      ‘Œ c}k(  sJ ‚t!        ddd«      D ]C  \  }}}t        |t        dz  z  |t        z  z   |z   «      } t        | «      }|t        |«      k(  rŒCJ ‚ y c c}w c c}w )Nr8   r   é   éýÿÿÿé   é   rC   r0   ièÿÿÿé´   i  T)ÚradicalsF)éþÿÿÿr8   )r   rC   )r   r   rD   r   r   r   r@   Ú	all_rootsÚaÚeÚcÚdÚbÚyr)   Únr-   )ÚfÚrÚwÚ_aÚ_bÚ_cr%   s          r5   Útest_roots_quadraticr]   6   sM  € Üœ4 ¤! Q¡$¡¬›?Ó+°°1¨vÒ5Ð5Ð5Üœ4 ¤! Q¡$¡¨¬1©¡¬aÓ0Ó1´h¸rÀ1³oÀqÐ5IÒIÐIÐIÜœ4 ¤! Q¡$¡¨¡
¬AÓ.Ó/´Q°B´t¸A³w±J¸q±LÄ!ÄDÈÃGÁ)ÈAÁ+Ð3NÒNÐNÐNÜœ4 ¤! Q¡$¡¨¬1©¡¨qÑ 0´!Ó4Ó5¸"¼qÄÀaÃ¹yÈ¹{Ñ:JÈBÔQRÔSWÐXYÓSZÑQZÐ[\ÑQ\ÑL\Ð9]Ò]Ð]Ð]Ü
Œ4�”!�Q‘$‘˜œ1™‘˜qÑ ¤!Ó$×.Ñ.Ó0Ô1ä	ˆ1‰�”!‘”A‘˜œ!™œA™‘¤¤A¡Ñ&¤qÑ(Ñ(¬A´©E´A´a¸±d±F©N¼Q¼qÀ!¹t¹VÑ,CÄaÌ!ÁeÑ+LÑL€AÜœ4 ¤1›:Ó&Ü
ˆŒQ”‰U‰”Qœ‘UÑ	œd¤1¤Q¡3¬¬1©¡9¬q´©s¡?´Q´q±SÑ#8¸1¼Q¹3¼q¹5ÄÀAÁ¹:Ñ#EÓFÌÌAÉÑNÑ	NÜ
ˆŒQ”‰U‰”Qœ‘UÑ	œd¤1¤Q¡3¬¬1©¡9¬q´©s¡?´Q´q±SÑ#8¸1¼Q¹3¼q¹5ÄÀAÁ¹:Ñ#EÓFÌÌAÉÑNÑ	Nð	PòPð Pð Pô
 	ŒQŒq�!‰t‰V�aœ‘c‰\˜Aœa™CÑ¤Ó#€AÜ˜1ÓÜ
ˆq”�A‘‰v˜‰zÓ
Ð	œ1Ñ	˜q¤™sÑ	"¤D¨¬1¨a©4©°!©Ó$4´QÑ$6¸¼1¹Ñ$<Ð=ò>ð >ð >äŒQ�‰T”a˜‘d�U˜Q‘Y¤‘MÑ!¤A q¡DÑ(¨1Ñ,¬aÓ0€AÜ˜1ÓØ	
Œ1ˆa‰4�!‰8ˆòð ð ô 	ŒT�!‹W”Q˜‘T‰\˜AÑœqÓ!€AÜ˜Ó€AØ”�q“	Š>Ðˆ>ô 	ˆS”�A‘‰X˜œA™Ñ Ñ#Ó$€AØŸK™K°˜KÓ6Ö7�qˆA�C‰C��FÒ7ØŸK™K°˜KÓ7Ö8�qˆA�C‰C��FÒ8ò9ð 9ð 9ä˜g w°Ó8ò &‰
ˆˆB�Ü�”A�q‘D‘˜2œa™4‘ "Ñ$Ó%ˆÜ Ó"ˆØœ˜u›Ó%Ð%Ð%ñ&ùò 8ùÚ8s   Ñ1TÒTc                  óÊ  — t        t        dz  t        z  t        dz  z   t        z   t        «      } t        | «      t	        t        dz  t	        d«      t        z  dz  z   «      dt	        t	        d«       t        z  dz  t        dz  z   «      dt	        t        dz  t	        d«      t        z  dz  z   «       dt	        t	        d«       t        z  dz  t        dz  z   «       dik(  sJ ‚y )NrK   r8   é   r0   )r   rD   r   r%   r   ©Úeqs    r5   Útest_issue_7724rb   X   sÄ   € Ü	Œa�‰d”1‰f”q˜!‘t‰mœaÑ¤Ó	#€BÜ�‹9ÜŒQˆq‰S”4˜“7œ1‘9˜Q‘;ÑÓ ÜŒd�1‹gˆX”a‰Z˜‰\œA˜a™CÑÓ  !Ü	Œa�‰c”D˜“GœA‘I˜a‘KÑÓ	 Ð  !Ü	Œt�A‹wˆh”q‰j˜‰lœQ˜q™SÑ Ó	!Ð! 1ð	&ò &ð &ñ &rA   c                  óÈ  ‡‡— t        dt        ddgt        «      j                  «       Št	        t        ‰t        «      t        «      } t        dd«      t        dz  dz  z
  Š| D �cg c]  }|j                  t        ‰«      ‘Œ }}t        |«      t        t	        t        ‰j                  t        ‰«      t        «      «      «      k(  sJ ‚t        ˆˆfd„|D «       «      sJ ‚y c c}w )Nr0   rN   rI   r8   é   c              3   ó€   •K  — | ]5  }‰j                  t        ‰t        |i«      j                  d d¬«      dk(  –— Œ7 y­w)r8   T©Úchopr   N)ÚsubsrU   rD   rV   )r3   r4   ÚpÚzs     €€r5   r6   z"test_issue_8438.<locals>.<genexpr>i   s7   øè ø€ ÒG¸Qˆq�v‰v”q˜!œQ �lÓ#×%Ñ% a¨dÐ%Ó3°qÕ8ÑGùs   ƒ;>)
r   rU   rD   Úas_exprr   r   r   rh   ÚsetÚall)r%   rX   Úpostri   rj   s      @@r5   Útest_issue_8438ro   a   s¶   ù€ Üˆa”�B˜ˆ^œQÓ×'Ñ'Ó)€AÜœ˜Q¤›
¤AÓ&€EÜ��Q‹œ!˜A™#˜a™%Ñ€AØ"'Ö(˜QˆA�F‰F”1�a�LÐ(€DÐ(Üˆt‹9ÜŒ”D˜Ÿ™¤ 1›¤qÓ)Ó*Ó+ò,ð ,ð ,ô ÔGÀ$ÔGÔGÐGÑGùò	 )s   Á$Cc                  óœ  — t        dt        dz  z  dz
  t        «      t        t        dz  dz   «      z  j                  «       } t        | «      sJ ‚t        t        dz  dt        dz  z  z   dz   t        «      }t	        d«      D �cg c]  }t        ||«      ‘Œ }}t        t        dz  dt        dz  z  z   dz   t        «      j                  «       } | |k(  sJ ‚t        | «      sJ ‚t        dt        dz  z  dz
  «      j                  «       } t        | «      sJ ‚t        t        dt        dz  z  dz
  «      j                  «       «      dk(  sJ ‚y c c}w )NrK   é   r0   r8   r_   rJ   é
   )r   rD   rO   r@   r<   r   r=   )r%   rW   r4   Úros       r5   Útest_issue_8285rt   l   s  € Ü�!”A�q‘D‘&˜1‘*œaÓ ¤¤a¨¡d¨Q¡h£Ñ/×:Ñ:Ó<€EÜ�%Œ=Ðˆ=ÜŒQ�‰T�A”a˜‘d‘F‰]˜QÑ¤Ó"€AÜ % a£Ö	)˜1Œ&��A�,Ð	)€BÐ	)Ü”�A‘˜œ!˜Q™$™‘ Ñ"¤AÓ&×0Ñ0Ó2€EØ�BŠ;Ðˆ;Ü�%Œ=Ðˆ=ô �”1�a‘4‘˜!‘Ó×&Ñ&Ó(€EÜ�%Œ=Ðˆ=ÜŒt�A”a˜‘e‘G˜a‘KÓ ×*Ñ*Ó,Ó-°Ò3Ð3Ñ3ùò 
*s   ÂE	c                  ó  — t        t        dz  dz   «      t        t        dz  dz   «      z  j                  «       } t        | «      sJ ‚t        t        dz  dt        dz  z  z   dz   t        «      j                  «       } t        | «      sJ ‚t        t        dz  t        z
  dz   «      j                  «       } t        | «      sJ ‚t        t        dz  dt        dz  z  z   dz   t        «      j                  «       } t        | «      sJ ‚y )Nr8   rK   rJ   rH   r0   )r   rD   rO   r@   ©r%   s    r5   Útest_issue_8289rw   {   sÐ   € Ü”!�Q‘$˜‘(‹^œD¤ A¡¨¡›NÑ*×5Ñ5Ó7€EÜ�%Œ=Ðˆ=Ü”�A‘˜œ!˜Q™$™‘ Ñ"¤AÓ&×0Ñ0Ó2€EÜ�%Œ=Ðˆ=Ü”�A‘œ‘˜A‘Ó×(Ñ(Ó*€EÜ�%Œ=Ðˆ=ä”�A‘˜œ!˜Q™$™‘ Ñ"¤AÓ&×0Ñ0Ó2€EÜ�%Œ=Ð‰=rA   c            	      óÒ  — t        t        dz
  dz  dz   t        dz
  dz  dz   z  t        dz
  z  «      j                  «       ddt        z
  dt        z   dt	        d«      t        z  z
  dt	        d«      t        z  z   gk(  sJ ‚t        dz  dt        dz  z  z   dz   } t        d«      D �cg c]  }t        | |«      ‘Œ }}t        | «      j                  «       |k(  sJ ‚t        |«       y c c}w )Nr0   r8   rK   rr   )r   rD   rO   r   r   r<   r   r@   )ri   r4   Úanss      r5   Útest_issue_14291rz   ‡   sÖ   € Ü”!�a‘%˜!‘˜a‘¤1 q¡5¨1¡*¨q¡.Ñ1´1°q±5Ñ9ó 
ß
‰)‹+˜!˜Q¤™U A¬¡E¨1¬t°A«w´q©y©=¸!¼dÀ1»gÄa¹i¹-ÐHòIð Ið Iä	ˆ1‰ˆr”!�Q‘$‰w‰˜Ñ€AÜ!& q£Ö
*˜AŒ6�!�Q�<Ð
*€CÐ
*Ü�‹7×ÑÓ #Ò%Ð%Ð%Ü
ˆ3…Kùò +s   Â%C$c                  ó¨   — t        t        dz  t        t        «      t        z  z   t        z   t        d¬«      } t	        | «      }t        |«      dk(  sJ ‚y )NrH   ÚEX©Údomain)r   rU   r   rD   r%   r=   )ra   Úroots_ds     r5   Útest_issue_13340r€   �   s@   € Ü	Œa�‰d”Sœ“VœA‘X‰o¤Ñ!¤1¨TÔ	2€BÜ�B‹i€GÜˆw‹<˜1ÒÐÑrA   c                  ó  ‡— t        t        dz  t        dz  ddt        z  z   z  z   t        dz  ddt        z  z   z  z   t        dd	t        z  z
  z  z   d
z
  dt        z  z
  t        «      Št        ‰«      } t	        ˆfd„| D «       «      sJ ‚y )NrK   rH   é   é    r8   iãþÿÿi‚  iøôÿÿiÀ  i
  i¥  c              3   ó4   •K  — | ]  } ‰|«      d k(  –— Œ y­w©r   NrE   ©r3   rX   ra   s     €r5   r6   z#test_issue_14522.<locals>.<genexpr>™   s   øè ø€ Ò,˜a‰r�!‹u˜�zÑ,ùs   ƒ)r   rD   r   r%   rm   )Úroots_eqra   s    @r5   Útest_issue_14522rˆ   –   s�   ø€ Ü	Œa�‰d”Q˜‘T˜2 ¤1¡™9Ñ%Ñ%¬¨1©¨d°S¼±U©lÑ(;Ñ;¼aÀÈÌQÉÁÑ>OÑOÐRVÑVÐY]Ô^_ÑY_Ñ_ÔabÓ	c€BÜ�R‹y€HÜÓ, 8Ô,Ô,Ð,Ñ,rA   c                  ó´   — t        t        t        dz  dt        dz  z  z
  t        t        z  z   dz
  t        «      «      } | d   j	                  t        «      sJ ‚y )NrK   rJ   r8   rH   r   )r    r   ÚtrD   Úhas)Úsols    r5   Útest_issue_15076r�   œ   sE   € Ü
œœQ ™T A¤a¨¡d¡F™]¬Q¬q©SÑ0°1Ñ4´aÓ8Ó
9€CØˆq‰6�:‰:”aŒ=Ð‰=rA   c                  óæ   — t        t        dz  dt        d«      z  t        dz  z  z
  dt        dz  z  z   dt        d«      z  t        dz  z  z
  dt        z  z   t        «      } t        | «      }d|v sJ ‚y )NrK   rq   r8   rH   é@   i   r   )r   rD   r   r%   )ra   r‡   s     r5   Útest_issue_16589r�   ¡   sg   € Ü	Œa�‰d�Q”t˜A“w‘Yœq !™t‘^Ñ# a¬¨1©¡fÑ,¨r´$°q³'©z¼!¸Q¹$©Ñ>ÀÄaÁÑGÌÓ	K€BÜ�R‹y€HØ�‰=Ð‰=rA   c                  óF  — t        t        dt        dz  z  t        «      «      g d¢k(  sJ ‚t        t        t        dz  dt        dz  z  z
  dt        z  z   dz
  t        «      «      g d¢k(  sJ ‚t        t        d«      } t        t        t        dz  t        z
  t        «      «      | | t
        j                   t        d«      t        z  dz  z   z  | t
        j                   t        d«      t        z  dz  z
  z  gk(  sJ ‚t        t        t        dz  dz
  t        «      «      dt
        j                  t        t        d«      z  dz  z
  t
        j                  t        t        d«      z  dz  z   gk(  sJ ‚t        t        dt        dz  z  dt        dz  z  z
  dt        z  z
  dz
  t        «      «      d   t
        j                  dt        dd«      z  dz  z   dt        dd«      z  dz  z   k(  sJ ‚t        dz   dt        dz  z  z   dt        z  z   dz
  }t        |dd¬	«      t        t        |t        «      d¬
«      cxk(  rèt        dd«      dt        d«      z  t        t        dt        d«      z  dz  «      dz  «      z  dz  z   dt        d«      z  t        t        dt        d«      z  dz  «       dz  t        dz  z   «      z  dz  t        dd«      z   dt        d«      z  t        t        dt        d«      z  dz  «       dz  t        dz  z   «      z  dz  t        dd«      z   gk(  sJ ‚ J ‚y )Nr8   rH   )r   r   r   r0   ©r0   r0   r0   rC   r   T)ÚtrigÚmultiple)r“   é   rq   é©   rN   rJ   )r   r   rD   r   rU   r   ÚHalfr   r   r   r%   r   r   r   r   )rX   ra   s     r5   Útest_roots_cubicr˜   §   sÒ  € Ü”t˜Aœa ™d™F¤A“Ó'ª9Ò4Ð4Ð4Ü”tœA˜q™D 1¤Q¨¡T¡6™M¨A¬a©CÑ/°!Ñ3´QÓ7Ó8ºIÒEÐEÐEô 	ŒQ�‹
€AÜ”tœA˜q™D¤1™H¤aÓ(Ó)¨aØ	ŒA�F‰Fˆ7”T˜!“WœQ‘Y˜q‘[Ñ Ñ!Ø	ŒA�F‰Fˆ7”T˜!“WœQ‘Y˜q‘[Ñ Ñ!ð.#ò #ð #ð #ô ”tœA˜q™D 2™I¤qÓ)Ó*Ø	ŒQ�V‰V”aœ˜Q›‘i ‘kÑ!¤1§6¡6¬A¬d°1«g©I°a©KÑ#7Ð8ò9ð 9ð 9ä”t˜Aœa ™d™F Q¤q¨!¡t¡V™O¨a´©cÑ1°AÑ5´qÓ9Ó:¸1Ñ=Ü	
�‰�!”X˜a “^Ñ# AÑ%Ñ	%¨¬8°A°q«>Ñ(9¸!Ñ(;Ñ	;ò<ð <ð <ä
ˆQ‰$ˆ�”1�a‘4‘‰˜!œA™#Ñ	 Ñ	!€BÜ�˜$¨Ô.Ü”t˜B¤“{¨Ô.ô
ä��A‹˜œ4 ›8™¤C¬¨Q¬t°B«x©Z¸©^Ó(<¸QÑ(>Ó$?Ñ?ÀÑAÑAØ
Œ4�‹8‰”Cœ˜a¤ R£™j¨™nÓ-Ð-¨aÑ/´"°Q±$Ñ6Ó7Ñ7¸Ñ9¼HÀQÈ»NÑJØ
Œ4�‹8‰”Cœ˜a¤ R£™j¨™nÓ-Ð-¨aÑ/´"°Q±$Ñ6Ó7Ñ7¸Ñ9¼HÀQÈ»NÑJð3
ò
ð 
ñ 
ð 
ñ 
rA   c                  óò  ‡‡‡— t        t        t        dz  t        «      «      g d¢k(  sJ ‚t        t        t        dz  t        dz  z   t        «      «      g d¢g d¢g d¢g d¢fv sJ ‚t        t        t        dz  t        dz  z
  t        «      «      g d¢g d	¢g d
¢g d¢fv sJ ‚t        t        t        dz  t        z   t        «      «      } t        j                  t
        t        d«      z  dz  z   t        j                  t
        t        d«      z  dz  z
  t        j                  t        j                   g}t        | t        ¬«      t        |t        ¬«      k(  sJ ‚t        g d¢«      D ]Î  \  }\  }}}}|dk(  r%| |dz  t        d«      z  |t        d«      z  z
  z  }n;|dk(  r6|||dz  t        dd«      z  |t        d«      z  z
  z  |t        d«      z  z   z  }t        dz  |t        dz  z  z   |t        dz  z  z   |t        z  z   |z   Št        t        ‰t        «      «      }t        ˆfd„|D «       «      rŒÎJ ‚ t        t        t        z  t        dz  z   t        dz  z   t        dz  z   dt        dz  z  z   t        dd«      z
  t        «      Št        ‰«      }t        ˆfd„|D «       «      sJ ‚t        dd¬«      Št        dz  dt        dz  z  z   dt        dz  z  z   t        ‰dz   z  z   dz   Št        t        ‰t        «      «      }	t        ˆˆfd„|	D «       «      sJ ‚t        t         t        dz  z  t        dz  z   t        z
  ‰z   t        «      Št        ‰«      }t        d„ |D «       «      sJ ‚t        dd«      t        dd«      dœt        dd«      t        dd«      dœt        dd«      ddœf}
|
D ]J  Št        t        ‰j#                  ‰«      t        «      «      }t        ˆfd„t%        ||«      D «       «      rŒJJ ‚ y ) NrK   ©r   r   r   r   rH   )rC   r   r   r   )r   rC   r   r   )r   r   rC   r   )r   r   r   rC   )r0   r   r   r   )r   r0   r   r   )r   r   r0   r   )r   r   r   r0   r8   ©Úkey))r0   r8   rH   r   )rH   éùÿÿÿi÷ÿÿÿé	   ©r0   r8   rH   rK   rŸ   )r�   rI   rH   éúÿÿÿ)rI   r_   r    éüÿÿÿ)rJ   éûÿÿÿiöÿÿÿrI   rq   é   r‚   c              3   óp   •K  — | ]-  }‰j                  t        |«      j                  d ¬«      dk(  –— Œ/ y­w)Trf   r   N©rh   rD   rV   )r3   Úaira   s     €r5   r6   z%test_roots_quartic.<locals>.<genexpr>à   s.   øè ø€ ÒB¸�2—7‘7œ1˜b“>×#Ñ#¨Ð#Ó.°!Õ3ÑBùs   ƒ36r0   c              3   ó^   •K  — | ]$  }t        ‰j                  t        |«      d «      –— Œ& y­wr…   ©r,   rh   rD   )r3   r4   ra   s     €r5   r6   z%test_roots_quartic.<locals>.<genexpr>å   s#   øè ø€ ÒA¸Ô! "§'¡'¬!¨Q£-°×3ÑAùs   ƒ*-rj   T)Únegativeé   r_   c              3   óh   •K  — | ])  }t        ‰j                  t        |f‰d ff«      d«      –— Œ+ y­w)rC   r   Nr¨   )r3   r4   ra   rj   s     €€r5   r6   z%test_roots_quartic.<locals>.<genexpr>é   s/   øè ø€ ÒOÀQÔ! "§'¡'¬A¨q¨6°A°r°7Ð*;Ó"<¸a×@ÑOùs   ƒ/2c              3   ó@   K  — | ]  }t        |«      t        k(  –— Œ y ­w©N)Útyper   r2   s     r5   r6   z%test_roots_quartic.<locals>.<genexpr>î   s   è ø€ Ò1¨Œt�A‹wœ)Õ#Ñ1ùs   ‚rC   )rU   rj   rN   c              3   ó`   •K  — | ]%  \  }}t        |j                  ‰«      |z
  d «      –— Œ' y­wr…   )r,   rh   )r3   rY   ÚsÚreps      €r5   r6   z%test_roots_quartic.<locals>.<genexpr>õ   s)   øè ø€ ÒT¹d¸aÀÔ% a§f¡f¨S£k°A¡o°q×9ÑTùs   ƒ+.)r    r   rD   r   r—   r   r   ÚZeroÚOner:   ÚhashÚ	enumerater   rm   Úqr	   rU   rh   Úzip)ÚlhsÚrhsr4   rP   rT   rR   rS   ry   rŒ   ÚzansÚrepsra   r±   rj   s              @@@r5   Útest_roots_quarticr¼   ¾   s‹  ú€ Üœœa ™d¤A›Ó'ª<Ò7Ð7Ð7Üœœa ™d¤Q¨¡T™k¬1Ó-Ó.ÚÚÚÚð	3ñ ð ð ô œœa ™d¤Q¨¡T™k¬1Ó-Ó.ÚÚÚÚð	3ñ ð ð ô œœQ ™T¤A™X¤qÓ)Ó
*€CÜ�6‰6”A”d˜1“g‘I˜a‘KÑ¤§¡¬!¬D°«G©)°A©+Ñ!5´q·v±vÄÇÁ¸vÐ
F€Cä�#œ4Ô ¤F¨3´DÔ$9Ò9Ð9Ð9ô %ò &8ó 9ò C‰ˆ‰<ˆAˆq�!�Qð �Š6Ø��A�q‘Dœ˜1›‘I ¤! A£$¡Ñ&Ñ'‰AØ�!ŠVØ�1�a˜‘dœ8 A sÓ+Ñ+¨a´°"³©gÑ5Ñ6¸¼1¸Q»4¹Ñ?Ñ@ˆAÜ�‰T�A”a˜‘d‘F‰]˜Qœq !™t™VÑ# a¬¡cÑ)¨AÑ-ˆÜœD ¤Q›KÓ(ˆÜÓB¸cÔBÕBÐBÐBðCô  
Œa”‰c”A�a‘C‰iœ!˜Q™$Ñ¤ A¡Ñ%¨¬!¨Q©$©Ñ.´¸!¸Q³Ñ?ÄÓ	C€BÜ
˜Ó
€CÜÓA¸SÔAÔAÐAÐAÜ�˜dÔ#€AÜ	
ˆA‰�”!�Q‘$‘‰˜œ1˜a™4™Ñ	¤! Q¨¡V¡*Ñ	,¨qÑ	0€BÜœ˜b¤!›Ó%€DÜÔOÈ$ÔOÔOÐOÐOô 
Œa”�1‘‰f”q˜!‘t‰mœaÑ !Ñ#¤QÓ	'€BÜ
˜Ó
€CÜÑ1¨SÔ1Ô1Ð1Ð1ä�r˜1‹o¤H¨R°£OÑ4Ü�r˜1‹o¤H¨R°£OÑ4Ü�r˜1‹o BÑ'ð)€Dð ò UˆÜœD §¡¨£¬qÓ1Ó2ˆÜÓTÄcÈ#ÈsÃmÔTÕTÐTÐTñUrA   c                  óØ   — t        d„ t        t        t        dz  t        dz  ddt        z  z   z  z
  dt        z  dt        z   z  z   dz
  dt        z  z   t        «      «      D «       «      rJ ‚y )Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr­   )Ú
isinstancer   r2   s     r5   r6   z#test_issue_21287.<locals>.<genexpr>ù   s   è ø€ ò B°”:˜a¤×+ñ Bùr7   rK   r8   rH   r_   rC   r0   )Úanyr    r   rD   r   rE   rA   r5   Útest_issue_21287rÁ   ø   ss   € Üñ B´]ÜŒQ�‰T”A�q‘D˜!˜a¤™c™'‘NÑ" Q¤q¡S¨"¬q©&¡\Ñ1°AÑ5¸¼!¹Ñ;¼QÓ?ó6Aô Bô Bð Bð Bð BrA   c                  óB  ‡— t         dz  dz
  t         dz  dz   dz  dt         dz  dz   z  z
  dz   t         dz  dt         dz  z  z
  dt         dz  z  z
  dt         z  z   d	z   f} | D ]<  Št        t        ‰«      «      }t        |«      dk(  sJ ‚t	        ˆfd
„|D «       «      rŒ<J ‚ y )Nr_   r8   r0   é   én   rH   é7   i	  iÓ  c              3   óŽ   •K  — | ]<  }‰j                  t        |j                  d «      «      j                  d¬«      dk(  –— Œ> y­w)rr   gñhãˆµøä>rf   r   Nr¥   r†   s     €r5   r6   z%test_roots_quintic.<locals>.<genexpr>  s7   øè ø€ ÒJ¸q�2—7‘7œ1˜aŸc™c "›gÓ&×(Ñ(°Ð(Ó5¸Õ:ÑJùs   ƒAA)rD   r!   r   r=   rm   )Úeqsr%   ra   s     @r5   Útest_roots_quinticrÈ   ý   s­   ø€ Üˆa‰4�!‰8Üˆq‰S�1‰W�q‰L˜1œa ™c A™g™;Ñ&¨Ñ+Üˆq‰D�3”q˜!‘t‘8‰O˜b¤ A¡™gÑ%¨¬Q©Ñ.°Ñ4ð6€Cð ò KˆÜœd 2›hÓ'ˆÜ�5‹z˜QŠÐˆÜÓJÀEÔJÕJÐJÐJñKrA   c                  ó€
  — t        t        dt        d¬«      «      dgk(  sJ ‚t        t        dt        d¬«      «      dgk(  sJ ‚t        t        dt        d¬«      «      t        dd«      t        t        d«      z  dz  z
  t        dd«      t        t        d«      z  dz  z   gk(  sJ ‚t        t        dt        d¬«      «      t         t        gk(  sJ ‚t        t        dt        d¬«      «      t        j                  t        t        d«      z  dz  z
  t        j                  t        t        d«      z  dz  z   gk(  sJ ‚t        t        d	t        d¬«      «      t        t        d	z  «       t        t        t        d	z  «      z  z
  t        t        d	z  «       t        t        t        d	z  «      z  z   t        t        t        dd	«      z  «       t        t        t        t        dd	«      z  «      z  z
  t        t        t        dd	«      z  «       t        t        t        t        dd	«      z  «      z  z   t        t        t        dd	«      z  «      t        t        t        t        dd	«      z  «      z  z
  t        t        t        dd	«      z  «      t        t        t        t        dd	«      z  «      z  z   gk(  sJ ‚t        t        d
t        d¬«      «      t        d«       dz  t        t        d«      z  dz  z
  t        d«       dz  t        t        d«      z  dz  z   t        d«      dz  t        t        d«      z  dz  z
  t        d«      dz  t        t        d«      z  dz  z   gk(  sJ ‚t        t        dt        d¬«      «      t        d«       dz  t        dz  z
  t        d«       dz  t        dz  z   t        d«      dz  t        dz  z
  t        d«      dz  t        dz  z   gk(  sJ ‚t        t        dt        d¬«      d¬«      dgk(  sJ ‚t        t        dt        d¬«      d¬«      dgk(  sJ ‚t        t        dt        d¬«      d¬«      t        dd«       dt        dd«      z   gk(  sJ ‚t        t        dt        d¬«      d¬«      t         t        gk(  sJ ‚t        t        dt        d¬«      d¬«      t        dd«       t        dd«      dz   t        dd«      dz  dt        dd«      dz  z
  t        dd«      z   t        dd«      dz  z   gk(  sJ ‚t        t        dt        d¬«      d¬«      dt        dd«      z
  t        dd«      gk(  sJ ‚y )Nr0   T©Úpolysr8   rC   rH   rK   rJ   rd   rq   rÃ   )Úfactorr_   )r"   r   rD   r   r   r   r   r—   r   r   r   r   rE   rA   r5   Útest_roots_cyclotomicrÍ     sÒ  € ÜœO¨A¬q¸Ô=Ó>À1À#ÒEÐEÐEÜœO¨A¬q¸Ô=Ó>À2À$ÒFÐFÐFÜœOØ	Œ1�Dôó Ü'¨¨A›´´4¸³7±¸1±Ñ<¼hÀrÈ1»oÔPQÔRVÐWXÓRYÑPYÐZ[ÑP[Ñ>[Ð\ò]ð ]ð ]äœO¨A¬q¸Ô=Ó>ÄAÀ2ÄqÀ'ÒIÐIÐIÜœOØ	Œ1�Dôó Ü Ÿv™v¬¬$¨q«'©	°!©Ñ3´Q·V±V¼aÄÀQÃ¹iÈ¹kÑ5IÐJòKð Kð Kô œO¨A¬q¸Ô=Ó>Ü	ŒR�‰T‹ˆ
”Q”sœ2˜a™4“y‘[Ñ Ü	ŒR�‰T‹ˆ
”Q”sœ2˜a™4“y‘[Ñ Ü	ŒR”˜˜A“ÑÓ	Ð¤!¤C¬¬8°A°q«>Ñ(9Ó$:Ñ":Ñ:Ü	ŒR”˜˜A“ÑÓ	Ð¤!¤C¬¬8°A°q«>Ñ(9Ó$:Ñ":Ñ:ÜŒBŒx˜˜1‹~ÑÓ¤¤3¤r¬(°1°a«.Ñ'8Ó#9Ñ!9Ñ9ÜŒBŒx˜˜1‹~ÑÓ¤¤3¤r¬(°1°a«.Ñ'8Ó#9Ñ!9Ñ9ðCò ð ð ô œO¨A¬q¸Ô=Ó>Ü	ˆa‹ˆ�‰
”Q”t˜A“w‘Y˜q‘[Ñ Ü	ˆa‹ˆ�‰
”Q”t˜A“w‘Y˜q‘[Ñ ÜˆQ‹�‰	”A”d˜1“g‘I˜a‘KÑÜˆQ‹�‰	”A”d˜1“g‘I˜a‘KÑð	Cò ð ð ô œO¨B´¸Ô>Ó?Ü	ˆa‹ˆ�‰
”Q�q‘SÑÜ	ˆa‹ˆ�‰
”Q�q‘SÑÜˆQ‹�‰	”A�a‘C‰ÜˆQ‹�‰	”A�a‘C‰ð	Dò ð ð ô Ü˜œ1 DÔ)°$ô8Ø<=¸3ò?ð ?ð ?äÜ˜œ1 DÔ)°$ô8Ø<>¸4ò@ð @ð @ô œO¨A¬q¸Ô=ÀdÔKÜ
ˆr�1‹+ˆ�rœD  Q›KÑ'Ð(ò)ð )ð )äœO¨A¬q¸Ô=ÀdÔKÜ
ˆŒQˆòð ð äœO¨A¬q¸Ô=ÀdÔKÜ
ˆr�1‹+ˆœ˜R › Q™�¬¨R°«°Q©¸¼TÀ"Àa»[È!¹^Ñ8KÌdÐSUÐWXËkÑ8YÔ\`ÐacÐefÓ\gÐijÑ\jÑ8jÐkòlð lð lô œO¨A¬q¸Ô=ÀdÔKØ	
ŒT�"�a‹[‰œ$˜r 1›+Ð&ò'ð 'ñ 'rA   c            
      óT  — t        t        dt        z  t        «      «      dgk(  sJ ‚t        t        dt        dz  z  t        «      «      g d¢k(  sJ ‚t        t        dt        z  dz   t        «      «      t        dd«      gk(  sJ ‚dt        dd«      z  dz  } t        t        dt        dz  z  dz   t        «      «      |  | t        z  z
  |  | t        z  z   | | t        z  z
  | | t        z  z   gk(  sJ ‚t        t        t        t        d	z  dz
  «      «      «       t        d
d¬«      }t        dd¬«      }t        t        |t        dz  z  |z   t        «      «      }t        t        |t        dz  z  |z   t        «      «      }t        |d   «      t        |d   «      k(  sJ ‚t        |d   «      t        |d   «      k(  sJ ‚t        dddd«      D ]H  \  }}}}||k(  r|dk7  rŒt        |t        |z  z  ||z  z   «      }	t        |	«      }
|
t        |
«      k(  rŒHJ ‚ t        t        dt        dz  z  dt        dz  z  z
  t        «      «      dt        z  t        dd«      t        d«      t        z  dz  z
  z  ddt        z  ddt        z  t        dd«      t        d«      t        z  dz  z   z  dik(  sJ ‚y )Nr_   r   rK   rš   r8   rN   rr   rH   rq   Úa1T)ÚnonnegativeÚb1r0   )r0   r8   )rC   r0   )r8   rH   rK   r_   r‚   rC   )r#   r   rD   r   r   r@   r   r   r   r-   r)   r%   rU   r   )ÚArÏ   rÑ   Úr0Úr1rP   rT   r°   rV   ri   ry   s              r5   Útest_roots_binomialrÕ   7  sx  € Üœ$˜q¤™s¤A›,Ó'¨A¨3Ò.Ð.Ð.Üœ$˜q¤ A¡™v¤q›/Ó*ªlÒ:Ð:Ð:Üœ$˜q¤™s Q™w¬Ó*Ó+´¸¸Q³Ð/@Ò@Ð@Ð@à
ŒH�Q˜‹NÑ˜2Ñ€Aäœ$˜q¤ A¡™v¨™z¬1Ó-Ó.Ø
ˆˆa”‰c‰�A�2˜œ!™‘8˜Q ¤1¡™W a¨!¬A©#¡gÐ.ò/ð /ð /ä
Œ>œ$œq !™t a™x›.Ó)Ô*ä	� $Ô	'€BÜ	� $Ô	'€Bä	œ˜b¤ A¡™g¨™l¬AÓ.Ó	/€BÜ	œ˜R¤ 1¡™W r™\¬1Ó-Ó	.€Bä�2�a‘5‹>œW R¨¡U›^Ò+Ð+Ð+Ü�2�a‘5‹>œW R¨¡U›^Ò+Ð+Ð+Ü˜f f¨g°|ÓDò "‰
ˆˆ1ˆa�Ø�Š6�a˜1’fØÜ�”1�a‘4‘˜!˜A™#‘ÓˆÜ˜QÓˆØ”f˜S“kÓ!Ð!Ð!ð"ô ”�aœ˜1™‘f˜r¤! Q¡$™wÑ&¬Ó*Ó+Ø	Œ!‰ŒX�b˜!‹_œt A›w¤q™y¨™{Ñ*Ñ+¨QØ	Œ!‰ˆQØ	Œ!‰ŒX�b˜!‹_œt A›w¤q™y¨™{Ñ*Ñ+¨Qð00ò 0ð 0ñ 0rA   c            	      óö	  — t         t        z  t        dz  z  t        z   t        z
  } t	        t        | t        «      «      \  }}|dk(  sJ ‚|t        t         t        z  t        dz  z  t        z   t        z
  t        «      k(  sJ ‚t        dz  t        dz  z  t        dz  t        dz  z  z   t        t        z  z   t         z   } t	        t        | t        «      «      \  }}|dt        z  k(  sJ ‚|t        t        dz  t        dz  z   t        z   t         z   t        «      k(  sJ ‚t        dz  t        dz  z  t        dz  t        dz  z  z   t         z   } t	        t        | t        «      «      \  }}|dt        z  k(  sJ ‚|t        t        dz  t        dz  z   t         z   t        «      k(  sJ ‚t        dz  t        dz  z  t        t        z  z   t         z   } t	        t        | t        «      «      \  }}|dt        z  k(  sJ ‚|t        t        dz  t        z   t         z   t        «      k(  sJ ‚t        dz  t        dz  z  t         z   } t	        t        | t        «      «      \  }}|dt        z  k(  sJ ‚|t        t        dz  t         z   t        «      k(  sJ ‚t        d«      \  }}}}d|dz  z  |dz  z  |dz  z  d|z  t        z  |d	z  z  |d	z  z  |d
z  z  z   d|dz  z  |dz  z  |dz  z  t        dz  z  |dz  z  z
  d|dz  z  |dz  z  |dz  z  t        dz  z  |dz  z  z   d|dz  z  |dz  z  |dz  z  t        dz  z  |dz  z  z
  d|dz  z  |dz  z  |dz  z  t        dz  z  |dz  z  z   d|dz  z  |dz  z  |dz  z  t        dz  z  d|dz  z  z  z   d|z  |z  |d	z  z  t        d	z  z  d|dz  z  z  z
  d|dz  z  t        dz  z  dz  z   } t	        t        | t        «      «      \  }}|d|z  |z  ||dz  z  z  k(  sJ ‚|dt        dz  z  dt        d	z  z  z
  dt        dz  z  z   dt        dz  z  z   dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z
  dt        z  z   d z
  k(  sJ ‚t        t        dz   t        dz  t        t        «      z  z   t        t        t        t        t        «      f   ¬!«      } t        t        dz   t        t        «      z   t        t        t        t        «         ¬!«      }t	        | «      t        |fk(  sJ ‚y )"Nr8   r0   rH   úE,F,J,Lìûÿÿÿ [r|)s2^ rq   r‚   ì    …83ll8rd   é   ì   €]$=‚,y rJ   rÃ   ì   �/ž@ê:r_   rr   ì   öD!^ rK   é—qâ é
Ö  é�  éP   éy  é q é   idÂ i ãB iÌß°l   ”uòl   ˜/1gÔ&l   „g l   ‹FäW&k r}   )
rP   rU   rD   rT   r$   r   rR   r	   r   r   )rW   ÚcoeffÚpolyÚEÚFÚJÚLÚgs           r5   Útest_roots_preprocessingrì   X  s  € Ü	Œ!‰ŒAˆq‰D‰”1‰”qÑ€Aä"¤4¨¬1£:Ó.�K€Eˆ4à�AŠ:Ðˆ:Ø”4œœ!™œA˜q™D™¤1™¤qÑ(¬!Ó,Ò,Ð,Ð,ä	ˆ1‰ŒQ�‰T‰	”A�q‘Dœ˜A™‘IÑ¤¤!¡Ñ#¤aÑ'€Aä"¤4¨¬1£:Ó.�K€Eˆ4à�A”a‘CŠ<Ðˆ<Ø”4œ˜1™œq !™t™¤a™¬!Ñ+¬QÓ/Ò/Ð/Ð/ä	ˆ1‰ŒQ�‰T‰	”A�q‘Dœ˜A™‘IÑ¤Ñ!€Aä"¤4¨¬1£:Ó.�K€Eˆ4à�A”a‘CŠ<Ðˆ<Ø”4œ˜1™œq !™t™¤a™¬Ó+Ò+Ð+Ð+ä	ˆ1‰ŒQ�‰T‰	”A”a‘C‰œ!Ñ€Aä"¤4¨¬1£:Ó.�K€Eˆ4à�A”a‘CŠ<Ðˆ<Ø”4œ˜1™œq™¤1™¤aÓ(Ò(Ð(Ð(ä	ˆ1‰ŒQ�‰T‰	”A‰€Aä"¤4¨¬1£:Ó.�K€Eˆ4à�A”a‘CŠ<Ðˆ<Ø”4œ˜1™œq™¤!Ó$Ò$Ð$Ð$ä˜Ó#�J€A€qˆ!ˆQà˜a ™dÑ" 1 a¡4Ñ'¨¨2©Ñ-Ø˜1ÑœQÑ˜q !™tÑ# A q¡DÑ(¨¨B©Ñ.ñ	/à˜˜A™Ñ˜a ™dÑ" 1 a¡4Ñ'¬¨1©Ñ,¨Q°©UÑ2ñ	3ð 	�q˜!‘tÑ˜A˜q™DÑ   A¡Ñ%¤a¨¡dÑ*¨1¨b©5Ñ0ñ	1ð 	�A�q‘DÑ˜˜A™Ñ˜a ™dÑ"¤1 a¡4Ñ'¨¨1©Ñ,ñ		-ð
 	��A‘‰�a˜‘dÑ˜1˜a™4Ñ¤ 1¡Ñ$ Q¨¡TÑ)ñ	*ð 	ˆa�‰d‰
�1�a‘4‰˜˜1™ÑœQ ™TÑ! 1 Q¨¡T¡6Ñ*ñ	+ð 	ˆQ‰ˆq‰��A‘‰”a˜‘dÑ˜B˜q !™t™GÑ$ñ	%ð 	ˆAˆq‰D‰”�A‘‰�fÑñ	€Aô #¤4¨¬1£:Ó.�K€Eˆ4à�B�q‘D˜‘F˜A˜a ™d™F‘OÒ#Ð#Ð#Ø�3”q˜!‘t‘8˜f¤Q¨¡T™kÑ)¨G´A°q±D©LÑ8¸9ÄQÈÁT¹>ÑIÈKÔXYÐ[\ÑX\ÑL\Ñ\Ø”Q˜‘TÑñØ*¬1¨a©4Ñ/ñ0Ø2@ÄÑ2BñCØETñUò Uð Uð Uô 	Œa�‰dˆU”Q˜‘Tœ#œa›&‘[Ñ ¤!¬B¬q´#´a³&¨y©MÔ:€AÜŒa�‰dˆU”Sœ“V‰^œQ¤r¬#¬a«&¡zÔ2€Aä˜AÓ¤1 a &Ò(Ð(Ñ(rA   c                  óR.  — t        dt        «      i k(  sJ ‚t        t        t        «      t        j                  dik(  sJ ‚t        t        dz  t        «      t        j                  dik(  sJ ‚t        t        dz
  t        dz   z  t        dz
  z  j	                  «       t        «      t        d«       dt        d«      dt        d«      dik(  sJ ‚t        dt        z  dz   t        «      t        dd«      dik(  sJ ‚t        dt        z  dz   dz  t        «      t        dd«      dik(  sJ ‚t        dt        z  dz   dz  t        «      t        dd«      dik(  sJ ‚t        dt        z  dz   dz  t        «      t        dd«      dik(  sJ ‚t        t        dz  dz
  t        «      t        dt        j                  dt        j                   dt         dik(  sJ ‚t        t        dz  dz
  dz  t        «      t        dt        j                  dt        j                   dt         dik(  sJ ‚t        dt        z  dz
  dz  j	                  «       t        «      t        dd«      dik(  sJ ‚t        dt        z  dz   dz  j	                  «       t        «      t        d	d«      dik(  sJ ‚t        dt        z  dz
  dz  j	                  «       t        «      t        dd«      dik(  sJ ‚t        dt        z  dz   dz  j	                  «       t        «      t        d	d«      dik(  sJ ‚t        dt        z  dz
  dz  j	                  «       t        «      t        dd«      dik(  sJ ‚t        dt        z  dz   dz  j	                  «       t        «      t        d	d«      dik(  sJ ‚t        t        t        z  t        z
  dz  j	                  «       t        «      t        t        z  dik(  sJ ‚t        t        t        z  t        z   dz  j	                  «       t        «      t         t        z  dik(  sJ ‚t        t        dz  t         dz
  t        z  z   t        z   t        «      t        dt        j                  dik(  sJ ‚t        t        dz  dt        dz  z  z
  dz   t        «      t        j                  dt        j                  dik(  sJ ‚t        t        d
z  dt        dz  z  z
  dt        dz  z  z   t        dz  z
  t        «      t        j                  ddt        d«      z
  dt        j                  ddt        d«      z   dik(  sJ ‚t        t        dz  dz
  t        «      t        d«      dz  t        t        d«      z  dz  z   dt        d«      dz  t        t        d«      z  dz  z
  dt        d«       dz  t        t        d«      z  dz  z   dt        d«       dz  t        t        d«      z  dz  z
  dt        j                  dt        j                   dt        dt         dik(  sJ ‚dt        dz  z  dt        dz  z  z
  dt        dz  z  z
  dt        dz  z  z   dt        d
z  z  z   dt        dz  z  z
  dt        dz  z  z
  dt        dz  z  z
  } t        | «      t        j                  dt        d«       dt        d«      dt        dd«      dt        d	d«      dt        dd«      dt        dd«      dik(  sJ ‚t        t        t        z   t        z   t        z  t        t        z   t        z   t        z   z
  t        «      t        t        z   t        z   t        z   t        t        z   t        z   z  dik(  sJ ‚t        t        dz  t        dz  z   t        z
  dz   t        d¬«      i k(  sJ ‚t        t        dz
  t        dz   z  t        dz
  z  j	                  «       t        d¬«      t        d«       dt        d«      dt        d«      dik(  sJ ‚t        t        dz
  t        dz   z  t        dz
  z  t        dz
  z  j	                  «       t        d¬«      t        d«       dt        d«      dt        d«      dt        d«      dik(  sJ ‚t        t        dz  dt        dz  z  z   dt        z  z   dz   t        «      t        d«       ddt        z  ddt        z  dik(  sJ ‚t        t        dz  dt        dz  z  z   dt        z  z   dz   t        d¬«      dt        z  ddt        z  dt        d«       dik(  sJ ‚t        t        dz  t        z
  t        dz  dt        dz  z  z   dt        z  z   dz   z  t        «      t        j                  dt        j                  dt        d«       ddt        z  ddt        z  dik(  sJ ‚t        j                  t        dd«      }}dt        d«      z  dz   |z  }d|z  dz  }|dz  }t        d«      t        z  dz  }||z
  }| |z
  }t        t        dz  t        dz  z   t        z
  dz   t        d¬«      | |z
  |z
  d| |z  ||z  z
  |z
  d| |z  ||z  z
  |z
  dik(  sJ ‚t        dz  dt        z  z   dz   j                  t        dt        dz  z  dt        z  z   «      j                  t        dt        z  dz
  «      } dD �	cg c]
  }	t        |	Ž ‘Œ c}	\  }
}t        d«      }t        | t        «      |
|t        ddt        z  |z  z
  «      z  z   d|
|t        ddt        z  |z  z
  «      z  z
  d|
|t        ddt        z  |z  z   «      z  z   d|
|t        ddt        z  |z  z   «      z  z
  dik(  sJ ‚t        dz  t        dz  z   t        dz  z   t        z   dz   } dD �	cg c]
  }	t        |	Ž ‘Œ c}	\  }}}t        | t        «      | |d|z  z  z   t        ||d|z  z  z   |z  z  z   d| |d|z  z  z   t        ||d|z  z  z   |z  z  z
  d| |d|z  z  z
  t        ||d|z  z  z
  |z  z  z   d| |d|z  z  z
  t        ||d|z  z  z
  |z  z  z
  dik(  sJ ‚t         dz  dt"        z
  t         dz  z  z   ddt"        z  z   dt        dz  z  z
  t         z  z   t"        z
  dt        dz  z  z   } t        | t         «      t        j                  dt        j                  t        j                  t"        z  z   t        j                  t        ddt"        z  z
  t"        dz  z   dt        dz  z  z   «      z  z   dt        j                  t        j                  t"        z  z   t        j                  t        ddt"        z  z
  t"        dz  z   dt        dz  z  z   «      z  z
  dik(  sJ ‚t        t        t        z  t        z  t        dz  z  dt        dz  z  z   dt        z  z   dz   t        d¬«      i k(  sJ ‚t        t        t        z  t        z  t        dz  z  dt        dz  z  z   dt        z  z   dz   t        d¬«      i k7  sJ ‚t        t        dz  dz
  t        d¬«      t        j                  dt        j                   dik(  sJ ‚t        t        dz  dz
  t        d ¬«      t        dt         dik(  sJ ‚t        t        dz
  t        dz   z  t        «      t        j                  dt        j                   dik(  sJ ‚t        t        dz
  t        dz   z  t        d!„ ¬"«      t        j                  dik(  sJ ‚t        t        dz  dz
  t        dd¬#«      t        j                   t        j                  gk(  sJ ‚t        t        dz  dz
  t        d d¬#«      t        t         gk(  sJ ‚t%        d$d¬%«      \  }}t        dz  ||z
  dz  z  dt        z  ||z
  z  z   dz   }t        |t        d&¬«      d||z
  z  dik(  sJ ‚t        t        dz  t        d¬'«      t        j                  t        j                  t        j                  gk(  sJ ‚t        d(t        d¬'«      g k(  sJ ‚t        d
z  t        dz  z
  t        dz  z   t        dz  z
  t        dz  z   t        z
  dz   } t        | «      t         t'        t(        dz  «      z  t+        t(        dz  «      z   dt         t'        t(        t        dd«      z  «      z  t+        t(        t        dd«      z  «      z
  dt         t'        t(        t        dd«      z  «      z  t+        t(        t        dd«      z  «      z   dt        t'        t(        dz  «      z  t+        t(        dz  «      z   dt        t'        t(        t        dd«      z  «      z  t+        t(        t        dd«      z  «      z
  dt        t'        t(        t        dd«      z  «      z  t+        t(        t        dd«      z  «      z   dik(  sJ ‚t        dz  dz   | dz  z  j	                  «       }t        |«      t         t'        t(        dz  «      z  t+        t(        dz  «      z   dt         t'        t(        t        dd«      z  «      z  t+        t(        t        dd«      z  «      z
  dt         t'        t(        t        dd«      z  «      z  t+        t(        t        dd«      z  «      z   dt        t'        t(        dz  «      z  t+        t(        dz  «      z   dt        t'        t(        t        dd«      z  «      z  t+        t(        t        dd«      z  «      z
  dt        t'        t(        t        dd«      z  «      z  t+        t(        t        dd«      z  «      z   dt         dt        dik(  sJ ‚t        t        dz  d)t        z  z   dz   «      }	|	D �cg c]  }|j,                  sŒ|‘Œ c}d*   }d+d
t        d,«      z  z   }|dt/        |d«      z  dz  d-t/        |d«      z  z   k(  sJ ‚t1        ddt        d«      z  z   t        dz  z  d.dt        d«      z  z
  t        dz  z  z   t        d«       dz
  t        z  z   dz   t        d/¬0«      }t        |«      dt        d«      z   dddt        d«      z  z   dt        d«       dz   dik(  sJ ‚t1        d1t        dz  z  d2t        d«      z  t        dz  z  z   d3t        dz  z  z
  d+t        d«      z  t        dz  z  z
  d4t        dz  z  z   d5t        d«      z  t        dz  z  z   d6t        dz  z  z
  d7t        d«      z  t        dz  z  z
  d8t        d«      z  t        z  z
  d8t        z  z
  d9z   t        d/¬0«      }t        |«      t        d«       dz   dddt        d«      z  z   ddt        d«      z   dd:dt        d«      z  z   dd	dt        d«      z  z   dik(  sJ ‚t1        t        dz  dt        dz  z  z
  d
t        d«      z  t        dz  z  z   dt        d«      z  t        z  z
  d;t        z  z   d<z
  d<t        d«      z  z   t        d/¬0«      }t        |«      dt        d«      z  dz   ddt        d«      z  dz   ddt        d«      z  dz
  dik(  sJ ‚t        t1        t        t        d«      z   dz  dz
  t        d/¬0«      «      t        d«       t/        dd«      t        j                   t        d«      t        z  dz  z
  z  z   dt        d«       t/        dd«      t        j                   t        d«      t        z  dz  z   z  z   dt        d«       t/        dd«      z   dik(  sJ ‚y c c}	w c c}	w c c}w )=Nr0   rž   r8   rH   rK   rC   r_   rr   rI   rJ   rq   i øÿÿið  i  iü  i€  éà   rd   i€  r�   r�   F)ÚcubicsrN   Té!   é   ))r•   rä   )r0   rä   ))r0   rK   )r0   rq   )r_   rq   ÚZ©Úfilterr   c                 ó   — | j                   S r­   )Úis_positive)rX   s    r5   ú<lambda>ztest_roots0.<locals>.<lambda>  s
   € °·±€ rA   )Ú	predicate)rô   r”   za, b)ÚrealÚR©r”   iÒ  é(   r   él   i2  rä   r    r|   r}   é)   é   é™   é¯   é}   é-   é   é   é   r¡   é   rÚ   )r%   rD   r   r²   Úexpandr   r   r³   rP   rT   ÚNegativeOner   rR   rS   r—   rh   rj   rU   r	   r   r   r   r1   r   r   )rW   Úr1_2Úr1_3Úx0Úx1Úx2Úx3Úx4Úx5rX   Úr13_20Úr1_20Ús2Úr1_4Úr1_8Úr5_8ÚarÚbrri   rë   ÚrxÚ	real_rootÚcrra   s                           r5   Útest_roots0r  ”  sÙ  € Ü�”A‹;˜"ÒÐÐÜ””A‹;œ1Ÿ6™6 1˜+Ò%Ð%Ð%Ü”�A‘”q‹>œaŸf™f a˜[Ò(Ð(Ð(Ü”1�q‘5œ1˜q™5‘/¤1 q¡5Ñ)×1Ñ1Ó3´QÓ7¼Q¸q»T¸EÀ1ÄaÈÃdÈAÌqÐQRËtÐUVÐ;WÒWÐWÐWä�”1‘�q‘œ!Ó¤¨"¨a£°!Ð 4Ò4Ð4Ð4Ü�!”A‘#˜‘'˜A‘œqÓ!¤h¨r°1£o°qÐ%9Ò9Ð9Ð9Ü�!”A‘#˜‘'˜A‘œqÓ!¤h¨r°1£o°qÐ%9Ò9Ð9Ð9Ü�!”A‘#˜‘'˜B‘¤Ó"¤x°°A£¸Ð&;Ò;Ð;Ð;ä”�A‘˜‘œ1Ó¤! Q¬¯©¨q´1·5±5°&¸!¼a¸RÀÐ!CÒCÐCÐCÜ”!�Q‘$˜‘(˜Q‘¤Ó"¤q¨!¬Q¯U©U°A¼¿¹°v¸qÄ1À"ÀaÐ&HÒHÐHÐHä�1”Q‘3˜‘7˜Q‘,×&Ñ&Ó(¬!Ó,´¸1¸a³À!Ð0DÒDÐDÐDÜ�1”Q‘3˜‘7˜Q‘,×&Ñ&Ó(¬!Ó,´¸"¸a³À!Ð0DÒDÐDÐDä�1”Q‘3˜‘7˜Q‘,×&Ñ&Ó(¬!Ó,´¸1¸a³À!Ð0DÒDÐDÐDÜ�1”Q‘3˜‘7˜Q‘,×&Ñ&Ó(¬!Ó,´¸"¸a³À!Ð0DÒDÐDÐDä�1”Q‘3˜‘7˜Q‘,×&Ñ&Ó(¬!Ó,´¸1¸a³À!Ð0DÒDÐDÐDÜ�1”Q‘3˜‘7˜Q‘,×&Ñ&Ó(¬!Ó,´¸"¸a³À!Ð0DÒDÐDÐDä”1”Q‘3œ‘7˜Q‘,×&Ñ&Ó(¬!Ó,´!´A±#°q°	Ò9Ð9Ð9Ü”1”Q‘3œ‘7˜Q‘,×&Ñ&Ó(¬!Ó,´!°´A±°q°	Ò9Ð9Ð9ä”�A‘œ!˜˜a™¤™
Ñ"¤QÑ&¬Ó*¬q°!´Q·U±U¸AÐ.>Ò>Ð>Ð>ä”�A‘˜œ!˜Q™$™‘ Ñ"¤AÓ&¬1¯5©5°!´Q·]±]ÀAÐ*FÒFÐFÐFä”�A‘˜œ!˜Q™$™‘ ¤1 a¡4¡Ñ'¬!¨Q©$Ñ.´Ó2Ü	
�‰��2œ˜Q›‘< ¤A§F¡F¨A¨r´D¸³G©|¸QÐ?ò@ð @ð @ô ”�A‘˜‘œ1ÓÜˆQ‹�‰	”A”d˜1“g‘I˜a‘KÑ ÜˆQ‹�‰	”A”d˜1“g‘I˜a‘KÑ Ü	ˆa‹ˆ�‰
”Q”t˜A“w‘Y˜q‘[Ñ  !Ü	ˆa‹ˆ�‰
”Q”t˜A“w‘Y˜q‘[Ñ  !Ü	�‰ˆq”1—5‘5�&˜!œQ ¤A 2 qð"ò ð ð ð 	Œa�‰d‰
�Tœ!˜Q™$‘YÑ ¤a¨¡d¡Ñ*¨T´!°Q±$©YÑ6¸¼aÀ¹d¹ÑBØŒAˆq‰D‰ñ	Ø”q˜!‘t‘8ñ	Ø ¤ A¡™gñ	&€Aô �‹8œŸ™ ¤A a£D 5¨!¬Q¨q«T°1´h¸rÀ1³oÀqÜ˜˜Q“ ¤H¨R°£O°Q¼ÀÀA»ÈðKò Kð Kð Kô ”!”a‘%œ!‘)œQ‘¤!¤a¡%¬!¡)¬a¡-Ñ0´!Ó4¼!¼a¹%Ä!¹)Äa¹-Ì!ÌaÉ%ÔRSÉ)Ñ9TÐVWÐ8XÒXÐXÐXä”�A‘œ˜1™‘œq‘ 1Ñ$¤a°Ô6¸"Ò<Ð<Ð<Ü”1�q‘5Ü	ˆA‰ñÜ�A‘ñß™›¤!¨Eô3Ü89¸!»°u¸aÄÀ1ÃÀqÌ!ÈAË$ÐPQÐ6RòSð Sð Sä”1�q‘5œ1˜q™5‘/¤1 q¡5Ñ)¬1¨q©5Ñ1×9Ñ9Ó;¼QÀuÔMÜ
ˆA‹$ˆ�”1�Q“4˜œA˜a›D !¤Q q£T¨1Ð-ò.ð .ð .ä”�A‘˜œ!˜Q™$™‘ ¤1¡Ñ$ qÑ(¬!Ó,´!°A³$°¸¸2¼a¹4ÀÀAÄaÁCÈÐ0KÒKÐKÐKÜ”�A‘˜œ!˜Q™$™‘ ¤1¡Ñ$ qÑ(¬!°DÔ9Ø	ŒA‰ˆq�!”A‘#�qœ1˜Q›4˜% Ð#ò$ð $ð $ä”!�Q‘$œ‘(œQ ™T A¤a¨¡d¡F™]¨Q¬q©SÑ0°1Ñ4Ñ5´qÓ:Ü	
�‰�”1—6‘6˜1œq ›t˜e Q¨¬1©¨a°´1±°aÐ8ò9ð 9ð 9ô —‘œ ! Q›ˆ$€Dà
ŒD�‹H‰*�r‰/˜DÑ	 €BØ	
ˆ2‰ˆa‰€BØ	ˆA‰€BÜ	ˆa‹”‰�1‰€BØ	ˆd‰€BØ
ˆˆt‰€BÜ”�A‘œ˜1™‘œq‘ 1Ñ$¤a°Ô5Ø	ˆˆb‰�4‰˜Ø	ˆˆB‰��B‘‰˜Ñ˜qØ	ˆˆB‰��B‘‰˜Ñ˜qð:ò ð ð ô 
ˆA‰�”!‘‰�a‰×Ñœa ¤1 a¡4¡¨!¬A©#¡Ó.×3Ñ3´A°q¼±s¸Q±wÓ?€Að %ö'Øô  ’lò '�M€FˆEô 
ˆa‹€BÜ�”A‹;Ø�”t˜A ¤!¡ B¡™JÓ'Ñ'Ñ'¨Ø�”t˜A ¤!¡ B¡™JÓ'Ñ'Ñ'¨Ø�”t˜A ¤!¡ B¡™JÓ'Ñ'Ñ'¨Ø�”t˜A ¤!¡ B¡™JÓ'Ñ'Ñ'¨ð	ò ð ð ô 	
ˆ1‰Œq�!‰t‰”a˜‘dÑœQÑ Ñ"€Aà/GÖI¨!œ 1šÒIÑ€Dˆ$�ä�”A‹;Ø	ˆ��Q˜‘W‘Ñœq $¨¨a°©g©Ñ"5¸Ñ!<Ñ<Ñ<¸aØ	ˆ��Q˜‘W‘Ñœq $¨¨a°©g©Ñ"5¸Ñ!<Ñ<Ñ<¸aØ	ˆ��Q˜‘W‘Ñœq $¨¨a°©g©Ñ"5¸Ñ!<Ñ<Ñ<¸aØ	ˆ��Q˜‘W‘Ñœq $¨¨a°©g©Ñ"5¸Ñ!<Ñ<Ñ<¸að	ò ð ð ô 	
ˆ1‰�”Q‘œ˜1™‰}Ñ  A¤a¡C¡¨!¬A¨q©D©&Ñ 0´!Ñ3Ñ3´aÑ7¸!¼A¸q¹D¹&Ñ@€Aä�”A‹;Ü	�‰ˆqÜ	�‰”—‘œ‘ÑœAŸF™F¤4¨¨A¬a©C©´!°Q±$©¸¼1¸a¹4¹Ñ(?Ó#@Ñ@Ñ@À!Ü	�‰”—‘œ‘ÑœAŸF™F¤4¨¨A¬a©C©´!°Q±$©¸¼1¸a¹4¹Ñ(?Ó#@Ñ@Ñ@À!ðò ð ð ô ””1‘”Q‘”q˜!‘t‘˜a¤ 1¡™fÑ$ q¬¡sÑ*¨QÑ.´¸%Ô@ÀBÒFÐFÐFÜ””1‘”Q‘”q˜!‘t‘˜a¤ 1¡™fÑ$ q¬¡sÑ*¨QÑ.´¸$Ô?À2ÒEÐEÐEä”�A‘˜‘œ1 SÔ)¬a¯e©e°Q¼¿¹¸ÀÐ-BÒBÐBÐBÜ”�A‘˜‘œ1 SÔ)¬a°´Q°B¸¨]Ò:Ð:Ð:ä”!�a‘%œ!˜a™%‘¤!Ó$¬¯©°´A·E±E°6¸1Ð(=Ò=Ð=Ð=ÜÜ	
ˆQ‰”�Q‘‰œÑ&=ô?ÜCDÇ5Á5È!À*òMð Mð Mô ”�A‘˜‘œ1 S°4Ô8¼a¿e¹e¸VÄQÇUÁU¸OÒKÐKÐKÜ”�A‘˜‘œ1 S°4Ô8¼QÄÀ¸GÒCÐCÐCä�V $Ô'�F€BˆÜ	ˆ1‰ˆb�‰e�a‰Z‰˜!œA™#˜r "™u™+Ñ%¨Ñ)€AÜ�”A˜cÔ" q¨"¨r©'¡{°AÐ&6Ò6Ð6Ð6ä”�A‘”q 4Ô(¬Q¯V©V´Q·V±V¼Q¿V¹VÐ,DÒDÐDÐDÜ�”q 4Ô(¨BÒ.Ð.Ð.ä	ˆ1‰Œq�!‰t‰”a˜‘dÑœQ ™TÑ!¤A q¡DÑ(¬1Ñ,¨qÑ0€Aä�‹8Ü	
ˆŒ3Œr�!‰t‹9‰”sœ2˜a™4“yÑ  !Ü	
ˆŒ3Œr”(˜1˜a“.Ñ Ó!Ñ!¤C¬¬8°A°q«>Ñ(9Ó$:Ñ:¸AÜ	
ˆŒ3Œr”(˜1˜a“.Ñ Ó!Ñ!¤C¬¬8°A°q«>Ñ(9Ó$:Ñ:¸AÜ	Œ#Œb�‰d‹)‰”cœ"˜Q™$“iÑ Ü	Œ#Œb”˜!˜Q“ÑÓ
 Ñ ¤3¤r¬(°1°a«.Ñ'8Ó#9Ñ9¸1Ü	Œ#Œb”˜!˜Q“ÑÓ
 Ñ ¤3¤r¬(°1°a«.Ñ'8Ó#9Ñ9¸1ðò ð ð ô ˆQ‰$�‰(�A�q‘D‰× Ñ Ó"€Aä�‹8Ü	
ˆŒ3Œr�!‰t‹9‰”sœ2˜a™4“yÑ  !Ü	
ˆŒ3Œr”(˜1˜a“.Ñ Ó!Ñ!¤C¬¬8°A°q«>Ñ(9Ó$:Ñ:¸AÜ	
ˆŒ3Œr”(˜1˜a“.Ñ Ó!Ñ!¤C¬¬8°A°q«>Ñ(9Ó$:Ñ:¸AÜ	Œ#Œb�‰d‹)‰”cœ"˜Q™$“iÑ Ü	Œ#Œb”˜!˜Q“ÑÓ
 Ñ ¤3¤r¬(°1°a«.Ñ'8Ó#9Ñ9¸1Ü	Œ#Œb”˜!˜Q“ÑÓ
 Ñ ¤3¤r¬(°1°a«.Ñ'8Ó#9Ñ9¸1Ü	
ˆˆAŒq�!ðò ð ð ô 	Œa�‰d�Rœ‘T‰k˜BÑÓ€AØÖ.˜ 2§:£:’Ò.¨qÑ1€IØ	ˆq”�d“‰|Ñ	€BØ˜œ4  A›;™ qÑ(¨2¬d°2°q«k©>Ñ9Ò9Ð9Ð9ä	ˆq�1”T˜!“W‘9‰}œa ™dÑ" b¨1¬T°!«W©9¡n´a¸±dÑ%:Ñ:¼tÀA»w¸hÈ¹lÌAÑ=MÑMÐPQÑQÔSTÐ]aÔ	b€BÜ�‹9˜œd 1›g™ q¨"¨q´°a³©y©.¸!¼dÀ1»g¸XÈ¹\È1ÐMÒMÐMÐMä	ˆb”�A‘‰g˜œ4 ›7™
¤1 a¡4™Ñ'¨#¬a°©d©(Ñ2°S¼¸a»±[ÄÀAÁÑ5EÑEØŒˆ1‰�HñØ”4˜“7‰{œ1˜a™4Ññ Ø"$¤Q¨¡T¡'ñ*Ø,.¬t°A«w©J´q¸!±t©Oñ<Ø>@ÄÀaÃ¹jÌ¹lñKà„q�Dñ	àñä˜ô
€Bô �‹9œ$˜q›'˜ A™ q¨"¨q´°a³©y©.¸!¸RÄ$ÀqÃ'¹\È1Ø˜a¤ Q£™i™¨¨B°´4¸³7±©N¸Að?ò ?ð ?ð ?ô 
Œa�‰d�Q”q˜!‘t‘V‰m˜a¤ Q£™i¬¨1©™nÑ,¨q´°a³©y¼©{Ñ:¸RÄ¹TÑAÀBÑFØŒt�A‹w‰JñÜ $ô
(€Bä�‹9˜œD ›G™ a™¨¨B¬t°A«w©J¸©N¸A¸rÄ$ÀqÃ'¹zÈA¹~ÈqÐQÒQÐQÐQä””qœ4 ›7‘{ QÑ&¨Ñ*¬A°dÔ;Ó<Ü
ˆq‹'ˆ”D˜˜A“J¤§¡ ¬$¨q«'´!©)°A©+Ñ 5Ñ6Ñ	6¸Ü
ˆq‹'ˆ”D˜˜A“J¤§¡ ¬$¨q«'´!©)°A©+Ñ 5Ñ6Ñ	6¸Ü
ˆq‹'ˆ”D˜˜A“JÑ	 ð	#ò#ð #ñ #ùòw'ùò Jùòz /s   êA\í2A\ÁM7A\$ÁN	A\$c            
      ól  — t        d«      \  } }}}}|dz  |z  | |z  z   ||z  |z  z   | z
  }|dz  | |||z
  z  | z  z   z  || z  |z  |z  ||z  |z
  z  z   | |z  ||z  z
  z   }t        t        ||«      j                  «       «      ddgk(  sJ ‚t        t        ||«      j                  «       «      ddgk(  sJ ‚t        d«      \  }}}	}
}}}||z
  ||z
  z  |	|z
  z  |
|z  |z  z   |z   |
z
  |z
  }||z
  |z  |z  |||z
  z  |z  z   |
|
z  |	|z
  z  z   }t        t        ||z
  |«      j                  «       «      g d¢k(  sJ ‚|dz  d|dz  z  z   dz   }t        t        |«      j	                  «       «      }t        d„ |D �cg c]$  }|j                  ||«      j                  d	¬
«      ‘Œ& c}D «       «      rJ ‚yc c}w )z6Just test that calculating these roots does not hang. z	a,b,c,d,xr8   r0   zzz,yy,xx,zy,zx,yx,kr’   rH   rq   c              3   ó    K  — | ]  }|–— Œ y ­wr­   rE   r2   s     r5   r6   z"test_roots_slow.<locals>.<genexpr>T  s   è ø€ ÒG˜”1ÑGùs   ‚Trf   N)r	   r;   r%   ÚvaluesÚkeysrÀ   rh   rV   )rP   rT   rR   rS   rD   Úf1Úf2ÚzzÚyyÚxxÚzyÚzxÚyxÚkÚe1Úe2rW   rú   Úris                      r5   Útest_roots_slowr.  @  sé  € ä˜KÓ(�M€A€qˆ!ˆQ�à	
ˆA‰ˆa‰�1�Q‘3‰˜!˜A™#˜a™%Ñ	 !Ñ	#€BØ	
ˆA‰ˆq�1�a˜!‘e‘9˜Q‘;‰Ñ	 ! A¡# a¡%¨¡'¨1¨Q©3°©7Ñ"3Ñ	3°q¸±s¸Q¸q¹S±yÑ	A€Bä”�b˜!“×#Ñ#Ó%Ó&¨1¨a¨&Ò0Ð0Ð0Ü”�b˜!“×#Ñ#Ó%Ó&¨1¨a¨&Ò0Ð0Ð0ä")Ð*?Ó"@Ñ€RˆˆR��R˜˜Qà
ˆq‰&�2˜‘6Ñ	˜B ™FÑ	# b¨¡e¨B¡hÑ	.°Ñ	3°bÑ	8¸2Ñ	=€BØ
ˆq‰&�"‰�R‰˜"˜b 1™f™+ b™.Ñ	(¨2¨b©5°"°q±&©>Ñ	9€Bä”�b˜2‘g˜qÓ!×(Ñ(Ó*Ó+ªyÒ8Ð8Ð8à	ˆ1‰ˆq��A‘‰v‰˜Ñ€AÜŒU�1‹X�]‰]‹_Ó€AäÑGÀAÖF¸b˜qŸv™v a¨›}Ÿ™°D˜Õ9ÒFÔGÔGÐGÐGÐGùÒFs   Å9)F1
c                  óð  — t        t        dz  t        z   dz   t        d¬«      } t        t        dz  t        z   dz   t        d¬«      }t        | |«      D ]  \  }}t        ||z
  «      dk  rŒJ ‚ t        dz  dt	        d	«      z  t        d
z  z  z   ddt	        d«      z  z   t        dz  z  z
  ddt	        d«      z  dz   z  z   }t        |d¬«      } d}t        | |«      D ]  \  }}t        ||z
  «      dk  rŒJ ‚ y )Nr8   r0   Trû   g      ð?gê-�™—q=rK   g      @g       @rH   g     €S@g      8@g      b@g      "@)gØ‹ì~��)Àg)cÇÍÀg3!	Ž˜@g¨
¢ ¡Ø@ç»½×Ùß|Û=)r%   rD   r·   Úabsr   )ÚR1ÚR2rÔ   Úr2rW   s        r5   Útest_roots_inexactr5  W  s  € Ü	Œq�!‰t”a‰x˜!‰|œQ¨Ô	.€BÜ	Œq�!‰t”a‰x˜#‰~œq¨4Ô	0€Bä�b˜"“+ò $‰ˆˆBÜ�2˜‘7‹|˜eÓ#Ð#Ð#ð$ô 	
ˆ1‰ˆs”4˜“9‰}œQ ™TÑ!Ñ! T¨D´°c³©NÑ%:¼A¸q¹DÑ$@Ñ@Ø
�”4˜“9‘˜sÑ"Ñ
#ñ	$€Aô 
ˆq˜4Ô	 €Bð
.€Bô �b˜"“+ò $‰ˆˆBÜ�2˜‘7‹|˜eÓ#Ð#Ð#ñ$rA   c                  óÈ  — t        d«      \  } }}}d| dz  z  |dz  z  |dz  z  d|z  t        z  | dz  z  |dz  z  |dz  z  z   d| d	z  z  |d
z  z  |d	z  z  t        d
z  z  |dz  z  z
  d| dz  z  |dz  z  |dz  z  t        dz  z  |dz  z  z   d| dz  z  |dz  z  |dz  z  t        dz  z  |dz  z  z
  d| dz  z  |dz  z  |dz  z  t        dz  z  |d	z  z  z   d| d
z  z  |d	z  z  |d
z  z  t        d	z  z  d|dz  z  z  z   d| z  |z  |dz  z  t        dz  z  d|d
z  z  z  z
  d|dz  z  t        dz  z  dz  z   }t        |t        «      i k(  sJ ‚t        |j                  «       t        d¬«      }g d¢}t	        d«      }|| z  |z  ||d
z  z  z  }t        |«      t        |«      k(  sJ ‚t        ||«      D ].  \  }	}
|	j                  |«      }|�t        ||   |
z
  «      dk  rŒ.J ‚ y )Nr×   rØ   rq   r‚   rÙ   rd   rÚ   rÛ   rJ   r8   rÃ   rÜ   r_   rH   rr   rÝ   rK   rÞ   rß   rà   rá   râ   rã   Trû   )g?|Y÷ˆc”ÀgOXLýzGX@gö„í'I^g@gíá|Û°n@gËÀdZw@g5Ä`e¼ˆ@gS$·Èªä“@gJúómèœ@rY   r0  )	r	   rD   r%   Úevalfr   r=   r·   Úmatchr1  )rç   rè   ré   rê   rW   r2  r3  rY   ri   rÔ   r4  r8  s               r5   Útest_roots_preprocessedr9  i  sv  € Ü˜Ó#�J€A€qˆ!ˆQà˜a ™dÑ" 1 a¡4Ñ'¨¨2©Ñ-Ø˜1ÑœQÑ˜q !™tÑ# A q¡DÑ(¨¨B©Ñ.ñ	/à˜˜A™Ñ˜a ™dÑ" 1 a¡4Ñ'¬¨1©Ñ,¨Q°©UÑ2ñ	3ð 	�q˜!‘tÑ˜A˜q™DÑ   A¡Ñ%¤a¨¡dÑ*¨1¨b©5Ñ0ñ	1ð 	�A�q‘DÑ˜˜A™Ñ˜a ™dÑ"¤1 a¡4Ñ'¨¨1©Ñ,ñ		-ð
 	��A‘‰�a˜‘dÑ˜1˜a™4Ñ¤ 1¡Ñ$ Q¨¡TÑ)ñ	*ð 	ˆa�‰d‰
�1�a‘4‰˜˜1™ÑœQ ™TÑ! 1 Q¨¡T¡6Ñ*ñ	+ð 	ˆQ‰ˆq‰��A‘‰”a˜‘dÑ˜B˜q !™t™GÑ$ñ	%ð 	ˆAˆq‰D‰”�A‘‰�fÑñ	€Aô �”A‹;˜"ÒÐÐä	ˆq�w‰w‹yœ! dÔ	+€Bò
R€Bô 	ˆS‹	€AØ	ˆ!‰ˆA‰ˆq��A‘‰v‰€Aäˆr‹7”c˜"“gÒÐÐä�b˜"“+ò @‰ˆˆBØ—‘˜“ˆØÐ ¤S¨¨q©°B©Ó%7¸%Ó%?Ð?Ð?ñ@rA   c                  óD  — t        t        dz  dt        z  z
  dz   d¬«      ddik(  sJ ‚t        t        dz  dt        z  z
  dz   d¬«      ddik(  sJ ‚t        t        dz  dt        dz  z  z
  t        dz  z
  dt        z  z   dz
  d¬«      ddik(  sJ ‚t        t        d	„ «       y )
Nr8   r0   F©ÚstrictTrJ   r_   rH   c                  ór   — t        t        dz  dt        dz  z  z
  t        dz  z
  dt        z  z   dz
  d¬«      S )NrJ   r8   r_   rH   Tr;  )r%   rD   rE   rA   r5   r÷   z#test_roots_strict.<locals>.<lambda>‹  s5   € ¬%´°1±°q¼¸A¹±v±ÄÀ1ÁÑ0DÀqÌÁsÑ0JÈQÑ0NÐW[Ô*\€ rA   )r%   rD   r*   r(   rE   rA   r5   Útest_roots_strictr>  †  s    € Ü”�A‘˜œ!™‘˜a‘¨Ô.°1°a°&Ò8Ð8Ð8Ü”�A‘˜œ!™‘˜a‘¨Ô-°!°Q°Ò7Ð7Ð7ä”�A‘˜œ!˜Q™$™‘¤ A¡Ñ%¨¬!©Ñ+¨aÑ/¸Ô>À1ÀaÀ&ÒHÐHÐHÜ
Ô Ñ"\Õ]rA   c                  óÞ  — ddt         z  z
  dt         dz  z  z
  dt         dz  z  z   dt         dz  z  z
  } t        | d	¬
«      \  }}t        | «      }t        | d	¬«      }|D ���cg c]  \  \  }}}t	        ||«      ‘Œ }}}}|D ���cg c]E  \  \  }}}t	        t        |«      t        |«      «      t	        t        |«      t        |«      «      z  ‘ŒG }}}}||z   }|D �	cg c]  }	|	j                  «       ‘Œ }}	t        |d„ ¬«      }t        |d„ ¬«      }||fD ]C  }
t        ||
«      D ]2  \  }}	|	j                  r|	|v rŒJ ‚t        |	«      t        |	«      f|v rŒ2J ‚ ŒE y c c}}}w c c}}}w c c}	w )NipøÿÿiÀ  i¨  r8   i�
  rH   é1   rK   T)rm   rû   c                 ó"   — | j                  «       S r­   ©Úsort_key©rD   s    r5   r÷   z"test_roots_mixed.<locals>.<lambda>œ  ó   € ¨A¯J©J«L€ rA   r›   c                 ó"   — | j                  «       S r­   rB  rD  s    r5   r÷   z"test_roots_mixed.<locals>.<lambda>�  rE  rA   )rD   r   r   r%   r   r   r   r7  r:   r·   r1   )rW   Ú_reÚ_imÚ_nrootsÚ_srootsrP   rT   Ú_Ú
_intervalsrX   Ú_rootsr4   s               r5   Útest_roots_mixedrN  Ž  sv  € Ø�”Q‘‰˜œa ™d™Ñ" T¬!¨Q©$¡YÑ.°´A°q±D±Ñ8€Aä˜ Ô%�H€CˆÜ�Q‹i€GÜ�A Ô%€Gà,/×
1Ð
1™y™v  1 qŒH�Q˜�NÐ
1€CÒ
1à÷ð ñ ?¹f¸qÀ!Øô ”R˜“UœB˜q›EÓ"¤8¬B¨q«E´2°a³5Ó#9Ó9ð €Cò ð �s‘€JØ#*Ö,˜a�—‘•	Ð,€GÐ,ä�WÑ"8Ô9€GÜ�WÑ"8Ô9€Gà˜GÐ$ò +ˆÜ˜
 FÓ+ò 	+‰DˆAˆqØ�yŠyØ˜A’v��vä˜1›œr !›u�~¨Ò*Ð*Ð*ñ		+ñ+ùô 2ùôùò -s   Á"EÂA
E#ÃE*c            
      ó`  — t        t        dt        «      «      t        dt        «      gk(  sJ ‚t        t        t        t        «      «      t        t        t        «      gk(  sJ ‚t        t        dz  dz
  t        «      t        dz   t        dz
  gk(  sJ ‚t        t        dz  t        z
  t        «      t        t	        t        «      z
  t        t	        t        «      z   gk(  sJ ‚t        t        dz  dz
  dz  «      t        dz   t        dz   t        dz
  t        dz
  t        t
        z
  t        t
        z
  t        t
        z   t        t
        z   gk(  sJ ‚t        t        t        dz  dz
  t        «      d¬«      t        t        dz   t        «      t        t        dz
  t        «      t        t        dz  dz   t        «      gk(  sJ ‚t        dt        dz  z  dt        dz  z  z   dt        dz  z  z   t        dz  z   t        d	¬«      t        t        t        dz  dt        dz  z  z   dt        dz  z  z   dz   gk(  sJ ‚y )
Nr0   r8   rK   rò   ró   rq   rÃ   rJ   ÚQ)r   r   rD   rU   r   r   rE   rA   r5   Útest_root_factorsrQ  §  sÂ  € Üœ˜Q¤›
Ó#¬¨Q´«
 |Ò3Ð3Ð3ÜœœQ¤›
Ó#¬¬Q´«
 |Ò3Ð3Ð3äœ˜1™˜q™¤!Ó$¬¨Q©´°A±¨Ò6Ð6Ð6Üœ˜1™œq™¤!Ó$¬¬T´!«W©´a¼$¼q»'±kÐ(BÒBÐBÐBäœ˜A™ ™ A™Ó&Ü	
ˆQ‰”�A‘”q˜1‘uœa !™e¤Q¬¡U¬A´©E´1´q±5¼!¼a¹%Ð@òAð Að Aô œœQ ™T A™X¤qÓ)°#Ô6Ü	Œa�!‰e”Q‹œœa !™e¤Q›¬¬a°©d°Q©h¼Ó):Ð;ò<ð <ð <ä˜œ!˜Q™$™ ¤A q¡D¡Ñ(¨1¬Q°©T©6Ñ1´A°q±DÑ8¼!ÀCÔHÜ	
ŒAŒq�!‰t�aœ˜1™‘f‰}˜r¤! Q¡$™wÑ&¨Ñ*Ð+ò,ð ,ñ ,rA   c                  óê   ‡— d} t        | t        d¬«      Št        t        j                  j
                  ˆfd„«       ‰j                  d¬«      }|D �cg c]  }t        |«      ‘Œ c}g d¢k(  sJ ‚y c c}w )Nr�   TrÊ   c                  ó*   •— ‰ j                  dd¬«      S )NrH   r_   )rV   Úmaxsteps)r   )ri   s   €r5   r÷   ztest_nroots1.<locals>.<lambda>¼  s   ø€ ¨A¯H©H°qÀ1¨HÓ,E€ rA   rH   ©rV   )@z-0.999z-0.996z-0.991z-0.983z-0.973z-0.961z-0.946z-0.930z-0.911z-0.889z-0.866z-0.841z-0.813z-0.784z-0.753z-0.720z-0.685z-0.649z-0.611z-0.572z-0.531z-0.489z-0.446z-0.402z-0.357z-0.311z-0.265z-0.217z-0.170z-0.121z-0.0730z-0.0243z0.0243z0.0730z0.121z0.170z0.217z0.265z0.311z0.357z0.402z0.446z0.489z0.531z0.572z0.611z0.649z0.685z0.720z0.753z0.784z0.813z0.841z0.866z0.889z0.911z0.930z0.946z0.961z0.973z0.983z0.991z0.996z0.999)r&   rD   r*   ÚmpmathÚmpÚNoConvergencer   Ústr)rV   r%   rX   ri   s      @r5   Útest_nroots1rZ  ·  si   ø€ à
€AÜ�aœ $Ô'€Aä
Œ6�9‰9×"Ñ"Ó$EÔFà�H‰H�qˆH‹M€Eð "Ö"�qŒC��FÒ"ò	Kò
Kð 
Kñ 
KùÒ"s   ÁA0c                  ó(  — t        t        dz  dt        z  z   dz   t        «      } | j                  d¬«      }|D �cg c]  }t        |«      ‘Œ c}g d¢k(  sJ ‚| j                  d¬«      }|D �cg c]  }t        |«      ‘Œ c}g d¢k(  sJ ‚y c c}w c c}w )Nr_   rH   r0   rU  )z-0.332z-0.839 - 0.944*Iz-0.839 + 0.944*Iz1.01 - 0.937*Iz1.01 + 0.937*I)z-0.33199z-0.83907 - 0.94385*Iz-0.83907 + 0.94385*Iz1.0051 - 0.93726*Iz1.0051 + 0.93726*I)r   rD   r   rY  )ri   r%   rX   s      r5   Útest_nroots2r\  Í  s–   € ÜŒQ�‰T�A”a‘C‰Z˜!‰^œQÓ€Aà�H‰H�qˆH‹M€Eð "Ö"�qŒC��FÒ"ò4ò4ð 4ð 4ð �H‰H�qˆH‹M€EØ!Ö"�qŒC��FÒ"ò:ò:ð :ñ :ùò #ùò
 #s   »B
Á-Bc                  ó´   — t        t        t        t        dz  t        dz  t	        t
        «      z  z   t        z   t
        z   t        d¬«      «      «      dk(  sJ ‚y )NrH   r8   T)Ú	composite)r=   r%   r   rU   r   rD   rE   rA   r5   Útest_roots_compositer_  Þ  sB   € ÜŒu”Tœ!˜Q™$¤ A¡¤d¬1£g¡Ñ-´Ñ1´AÑ5´qÀDÔIÓJÓKÈqÒPÐPÑPrA   c                  óv   ‡ — t        t        «      dz  t        t        «      z
  dz   Š t        t        ˆ fd„«       y )NrH   r0   c                  ó   •— t        ‰ «      S r­   rv   r`   s   €r5   r÷   z"test_issue_19113.<locals>.<lambda>ä  s   ø€ ¤E¨"£I€ rA   )r   rD   r*   r'   r`   s   @r5   Útest_issue_19113rb  â  s)   ø€ Ü	ŒQ‹�‰”Sœ“VÑ	˜aÑ	€BÜ
Œ?Ó-Õ.rA   c                  ól   — t        ddddt        z  z
  dz  z  dz  dt        z  z   dgd	¬
«      ddgk(  sJ ‚y )Nr0   rI   r¡   rK   r8   rq   rÃ   r   Trû   )r%   r   rE   rA   r5   Útest_issue_17454rd  ç  sA   € Ü�!�R˜˜a¤™c™ A™Ñ% aÑ'¨"¬Q©$Ñ.°Ð2¸TÔBÀqÈ!ÀfÒLÐLÑLrA   c                  óÖ   — t        t        dz   t        «      j                  «       dgk(  sJ ‚t        t        dz  dz   t        «      j                  «       dt        d«      dz  z   gk(  sJ ‚y )Nl   Ô       lúÿÿÿÔ       rH   rK   r8   )r   rD   Ú
real_rootsr   rE   rA   r5   Útest_issue_20913rg  ë  s`   € Ü”Ð-Ñ-¬qÓ1×<Ñ<Ó>ÐC]ÐB^Ò^Ð^Ð^Ü”�1‘�q‘œ!Ó×'Ñ'Ó)¨q´1°Q³4¸±6©{¨l¨^Ò;Ð;Ñ;rA   c            
      ó8  — t        dd«      } dt        z  | z  t        dz   d| z  z  z  }t        t        t        t        dz  z  t        dz   dz  z   t        «      «      |d| dt        d«      t        z  z   z  dz  d|dt        d«      t        z  z   z  dz  dik(  sJ ‚y )Nr0   rH   rC   r_   r8   )r   rP   r%   r   rD   r   r   )rQ   rX   s     r5   Útest_issue_22768ri  ð  s    € Ü��A‹€AØ	ŒA‰�‰	”1�q‘5˜A˜a™C‘.Ñ €AÜ””aœ˜1™‘f¤ A¡¨™zÑ)¬1Ó-Ó.Ø	ˆ1Ø	
ˆˆA”�Q“œ‘	‰MÑ˜1Ñ˜aØ	ˆ2”�Q“œ‘	‰>Ñ˜1Ñ˜að3!ò !ð !ñ !rA   )kÚ__doc__Úsympy.core.numbersr   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   r	   Ú$sympy.functions.elementary.complexesr
   r   r   Ú&sympy.functions.elementary.exponentialr   Ú(sympy.functions.elementary.miscellaneousr   r   Ú$sympy.functions.elementary.piecewiser   Ú(sympy.functions.elementary.trigonometricr   r   r   Úsympy.polys.domains.integerringr   Úsympy.sets.setsr   Úsympy.simplify.powsimpr   Úsympy.polysr   r   r   r   r   Úsympy.polys.polyrootsr   r   r   r   r    r!   r"   r#   r$   r%   Úsympy.polys.orthopolysr&   Úsympy.polys.polyerrorsr'   r(   Úsympy.polys.polyutilsr)   Úsympy.testing.pytestr*   r+   Úsympy.core.randomr,   rV  Ú	itertoolsr-   rP   rT   rR   rS   rQ   r¶   rŠ   rD   rU   rj   r@   rF   r]   rb   ro   rt   rw   rz   r€   rˆ   r�   r�   r˜   r¼   rÁ   rÈ   rÍ   rÕ   rì   r  r.  r5  r9  r>  rN  rQ  rZ  r\  r_  rb  rd  rg  ri  rE   rA   r5   ú<module>r~     sK  ðÙ Hç 0Ñ 0Ý "ß 5Ñ 5ß DÑ DÝ 6ß AÝ :ß EÑ EÝ .Ý $Ý *ç HÕ H÷?÷ ?÷ ?õ 1÷å (ç -Ý 0Û Ý ñ  'Ð'<Ó=Ñ €€1€aˆˆAˆq�!�Q˜˜1òò?ò&òD&òHò4ò	òòò-òò
ò
ò.7UòtBò
Kò-'ò`0òB9)òxj#òXHò.$ò$@ò:^ò+ò2,ð  ñKó ðKò*:ò"Qò/ò
Mò<ó
!rA   