o
    *ήcog                  
   @   sp  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/ ddl0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<Z<ddl=m>Z> e
d\
Z?Z@ZAZBZCZDZEZFZGZHdd ZIdd ZJdd ZKdd ZLdd  ZMd!d" ZNd#d$ ZOd%d& ZPd'd( ZQd)d* ZRd+d, ZSd-d. ZTd/d0 ZUd1d2 ZVd3d4 ZWd5d6 ZXd7d8 ZYd9d: ZZd;d< Z[d=d> Z\d?d@ Z]dAdB Z^dCdD Z_dEdF Z`dGdH Zae9dIdJ ZbdKdL ZcdMdN ZddOdP ZedQdR ZfdSdT ZgdUdV ZhdS )WzBTests 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_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                 C   s   t dd | D }tt| d | t| d | ksJ t|t| dD ]}| |d  | | ks@| |d  t| | ks@ dS q%dS )Nc                 S   s   g | ]	}|j r	d ndqS )   r   is_real.0i r3   G/tmp/pip-target-vg8gfxp4/lib/python/sympy/polys/tests/test_polyroots.py
<listcomp>(   s    z_check.<locals>.<listcomp>   r-   FT)sumlistsortedrangelenr	   )r$   nrealixr3   r3   r4   _check$   s   (r>   c                   C   s*   t tdt d ttddgksJ d S )Nr6   r-   )r   r   xr   r3   r3   r3   r4   test_roots_linear2   s   *rA   c                  C   s  t tdtd  tddgksJ t tdtd  dt  ttdddgks)J t tdtd  d tt td d ttd d gksIJ t tdtd  dt  d tdttd d  dttd d  gkspJ ttdtd  dt  d t  td dt t	 dt
 t	  tt
  t  tt tt	d   t
t	d   tt
   } t t| tt	 tt
  tt
  ttt t
t  tt  tt
  dt t
 t	d   tt
   t	 tt
  tt
  ttt t
t  tt  tt
  dt t
 t	d   tt
   gksJ tttd  dt  dt  t} t | tdtd  d  t dt  tdtd  d t dt  gksFJ ttd td  d t  td  d t} t | dtd d gkskJ ttdtd  d t} t | }|t|ksJ td	td  d
t  d } dd | jddD dd | jddD ksJ tdddD ]!\}}}t|td  |t  | } t | }|t|ksJ qd S )Nr6   r            r?   r-   i   i  c                 S      g | ]}| d qS r6   nr1   wr3   r3   r4   r5   P       z(test_roots_quadratic.<locals>.<listcomp>T)radicalsc                 S   rG   rH   rI   rK   r3   r3   r4   r5   Q   rM   F)r6   )r   r?   )r   r   r@   r   r   r   r>   	all_rootsaecdbyr(   r,   )fr_a_b_cr$   r3   r3   r4   test_roots_quadratic6   s>   "0@N&TTT
"@
,

r\   c                  C   s   t td t td  t t} t| ttd tdt d  dttd t d td  dttd tdt d   dttd t d td   diksSJ d S )NrE   r6      r-   )r   r@   r   r$   r   eqr3   r3   r4   test_issue_7724X   s    r`   c                     s   t dtddgt  tt  tt} tddtd d  fdd| D }t|ttt  ttks:J t	 fdd	|D sHJ d S )
Nr-   rO   rC   r6      c                    s   g | ]}| t qS r3   )subsrV   r1   rX   )zr3   r4   r5   e   s    z#test_issue_8438.<locals>.<listcomp>c                 3   s0    | ]}  tt|ijd dddkV  qdS )r6   Tchopr   N)rb   rV   r@   rJ   r0   prd   r3   r4   	<genexpr>i   s   . z"test_issue_8438.<locals>.<genexpr>)
r   rV   r@   as_exprr   r   r   setrb   all)r$   postr3   rg   r4   test_issue_8438a   s    rn   c                     s   t dtd  d tt td d   } t| sJ t td dtd   d t  fddtdD }t td dtd   d t } | |ksLJ t| sRJ t dtd  d  } t| sdJ tt dtd	  d  d	ksvJ d S )
NrE      r-   r6   r]   rD   c                       g | ]}t  |qS r3   r   r0   rW   r3   r4   r5   p   rM   z#test_issue_8285.<locals>.<listcomp>
   )r   r@   rP   r>   r:   r;   )r$   ror3   rr   r4   test_issue_8285l   s   *"(ru   c                  C   s   t td d t td d   } t| sJ t td dtd   d t } t| s/J t td t d  } t| sAJ t td dtd   d t } t| sXJ d S )Nr6   rE   rD   rB   r-   )r   r@   rP   r>   r$   r3   r3   r4   test_issue_8289{   s   $""rw   c                     s   t td d d td d d  td   ddt dt dtdt  dtdt  gks1J td dtd   d   fddtdD } t   | ksRJ t|  d S )Nr-   r6   rE   rs   c                    rp   r3   rq   r0   rh   r3   r4   r5      rM   z$test_issue_14291.<locals>.<listcomp>)r   r@   rP   r   r   r:   r>   )ansr3   rx   r4   test_issue_14291   s   *0rz   c                  C   s>   t td ttt  t tdd} t| }t|dksJ d S )NrB   EXdomain)r   rV   r   r@   r$   r;   )r_   roots_dr3   r3   r4   test_issue_13340   s   "r   c                     sx   t td td ddt    td ddt    tdd	t    d
 dt  t t } t fdd| D s:J d S )NrE   rB          r6   ii  ii  i
  i  c                 3   s    | ]	} |d kV  qdS r   Nr3   rc   r^   r3   r4   ri          z#test_issue_14522.<locals>.<genexpr>)r   r@   r   r$   rl   )roots_eqr3   r^   r4   test_issue_14522   s   Rr   c                  C   s@   t ttd dtd   tt  d t} | d tsJ d S )NrE   rD   r6   rB   r   )r    r   tr@   has)solr3   r3   r4   test_issue_15076   s   *r   c                  C   sb   t td dtd td   dtd   dtd td   dt  t} t| }d|v s/J d S )NrE   ro   r6   rB   @   i   r   )r   r@   r   r$   )r_   r   r3   r3   r4   test_issue_16589   s   Jr   c               	   C   sl  t tdtd  tg dksJ t ttd dtd   dt  d tg dks,J ttd} t ttd t t| | tj tdt d   | tj tdt d   gks[J t ttd d tdtjttd d  tjttd d  gksJ t tdtd  dtd   dt  d td tjdt	dd d  dt	dd d  ksJ td  dtd   dt  d }t
|ddd	t t|tdd
  kr1t	dddtd ttdtd d d  d  dtd ttdtd d  d td   d t	dd dtd ttdtd d  d td   d t	dd gks4J  J d S )Nr6   rB   )r   r   r   r-   r-   r-   r-   r?   r   T)trigmultiple)r      ro      rO   rD   )r   r   r@   r   rV   r   Halfr   r   r   r$   r   r   r   r   )rX   r_   r3   r3   r4   test_roots_cubic   s,   "6

,0("
4>>r   c                     sb  t ttd tg dksJ t ttd td  tg dg dg dg dfv s,J t ttd td  tg dg d	g d
g dfv sIJ t ttd t t} tjttd d  tjttd d  tjtj g}t	| t
dt	|t
dks}J tg dD ]e\}\}}}}|dkr| |d td |td   }n|dkr|||d tdd |td   |td   }td |td   |td   |t  |  t t t}t fdd|D sJ qttt td  td  td  dtd   tdd t t  }t fdd|D sJ tdddtd dtd   dtd   td   d  t t t}	t fdd|	D sMJ tttd  td  t  t t  }tdd |D snJ ttddtdddttddtdddttddd df}
|
D ]t t t}tfd!dt||D sJ qd S )"NrE   r   r   r   r   rB   )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   r-   r   )r   r   r   r-   r6   key))r-   r6   rB   r   )rB   i	   r-   r6   rB   rE   r   )r   rC   rB   )rC   r]   r   )rD   irC   ro      r   c                 3   s(    | ]}  t|jd ddkV  qdS )Tre   r   N)rb   r@   rJ   )r1   air^   r3   r4   ri      s   & z%test_roots_quartic.<locals>.<genexpr>r-   c                 3   s"    | ]}t  t|d V  qdS r   r+   rb   r@   r0   r^   r3   r4   ri      s     rd   T)negative   r]   c                    s(   g | ]}t  t|fd ffdqS )r?   r   r   r0   )r_   rd   r3   r4   r5      s   ( z&test_roots_quartic.<locals>.<listcomp>c                 s   s    | ]	}t |tkV  qd S N)typer   r0   r3   r3   r4   ri      r   r?   )rV   rd   rO   c                    s$   g | ]\}}t | | d qS )r   )r+   rb   )r1   rL   s)repr3   r4   r5      s   $ )r    r   r@   r   r   r   r   ZeroOner9   hash	enumerater   rl   qr   rV   dictrb   zip)lhsrhsr2   rQ   rU   rS   rT   ry   r   zansrepsr3   )r_   r   rd   r4   test_roots_quartic   sT   

6$2,<0"&r   c                	   C   sX   t dd tttd td ddt    dt dt   d dt  tD r*J d S )	Nc                 s   s    | ]}t |tV  qd S r   )
isinstancer   r0   r3   r3   r4   ri      s    z#test_issue_21287.<locals>.<genexpr>rE   r6   rB   r]   r?   r-   )anyr    r   r@   r   r3   r3   r3   r4   test_issue_21287   s   
<r   c                   C   s  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ttd d  tddttd d  gksAJ t tdtddt tgksQJ t tdtddtjttd d  tjttd d  gksrJ t td	tddtt	d	  tt
t	d	   tt	d	  tt
t	d	   tt	tdd	  tt
t	tdd	   tt	tdd	  tt
t	tdd	   tt	tdd	 tt
t	tdd	   tt	tdd	 tt
t	tdd	   gksJ t td
tddtd d ttd d  td d ttd d  tdd ttd d  tdd ttd d  gks-J t tdtddtd d td  td d td  tdd td  tdd td  gksaJ t tdtdddddgksrJ t tdtdddddgksJ t tdtddddtdd dtdd gksJ t tdtddddt tgksJ t tdtddddtdd tddd  tddd dtddd  tdd tddd  gksJ t tdtdddddtdd tddgksJ d S )Nr-   Tpolysr6   r?   rB   rE   rD   ra   ro      )factorr]   )r!   r   r@   r   r   r   r   r   r   r   r   r   r3   r3   r3   r4   test_roots_cyclotomic   sn   2 *((&&
	



N
r   c               	   C   s:  t tdt tdgksJ t tdtd  tg dksJ t tdt d ttddgks2J dtdd d } t tdtd  d t|  | t  |  | t  | | t  | | t  gksbJ tt ttd	 d  td
dd}tddd}tt|td  | t}t t|td  | t}t|d t|d ksJ t|d t|d ksJ t	ddddD ]'\}}}}||kr|dkrqt|t|  ||  }	t |	}
|
t
|
ksJ qttdtd  dtd   tdt tddtdt d   ddt ddt tddtdt d   diksJ d S )Nr]   r   rE   r   r6   rO   rs   rB   ro   a1T)nonnegativeb1r-   )r-   r6   )r?   r-   )r6   rB   rE   r]   r   r?   )r"   r   r@   r   r   r>   r   r   r   r,   r(   r$   rV   r   )Ar   r   r0r1rQ   rU   r   rJ   rh   ry   r3   r3   r4   test_roots_binomial-  s2   "&. ""r   c                  C   s`  t t td  t t } tt| t\}}|dksJ |tt t td  t t tks.J td td  td td   tt  t  } tt| t\}}|dt ksUJ |ttd td  t t  tkshJ td td  td td   t  } tt| t\}}|dt ksJ |ttd td  t  tksJ td td  tt  t  } tt| t\}}|dt ksJ |ttd t t  tksJ td td  t  } tt| t\}}|dt ksJ |ttd t  tksJ td\}}}}d|d  |d  |d  d| t |d	  |d	  |d
   d|d  |d  |d  td  |d   d|d  |d  |d  td  |d   d|d  |d  |d  td  |d   d|d  |d  |d  td  |d   d|d  |d  |d  td  d|d    d| | |d	  td	  d|d    d|d  td  d  } tt| t\}}|d| | ||d   ksJ |dtd  dtd	   dtd   dtd   dtd   dtd   dtd   dt  d  ksJ ttd  td tt  tt	tttf d!} ttd  tt tt	tt d!}t| t|fks.J d S )"Nr6   r-   rB   E,F,J,L [r|)s2^ ro   r       83ll8ra         ]$=,y rD   r      /@:r]   rs      D!^ rE   q 
    P   y   q    id i B i߰l   ul   /1g&l   g l   FW&k r|   )
rQ   rV   r@   rU   r#   r   rS   r   r   r   )rW   coeffpolyEFJLgr3   r3   r4   test_roots_preprocessingN  sh   &,&$""****.&
"<

0$r   c                  C   s
  t dti ks	J t tttjdiksJ t td ttjdiks#J t td td  td   ttd dtddtddiksEJ t dt d ttdddiksWJ t dt d d ttdddikskJ t dt d d ttdddiksJ t dt d d ttdddiksJ t td d ttdtjdtj dt diksJ t td d d ttdtjdtj dt diksJ t dt d d  ttdddiksJ t dt d d  ttd	ddiksJ t dt d d  ttdddiks
J t dt d d  ttd	ddiks!J t dt d d  ttdddiks8J t dt d d  ttd	ddiksOJ t tt t	 d  tt	t dikseJ t tt t	 d  tt	 t diks|J t td t d t  t ttdtjdiksJ t td dtd   d ttjdtj
diksJ t td
 dtd   dtd   td  ttjddtd dtjddtd diksJ t td d ttdd ttd d  dtdd ttd d  dtd d ttd d  dtd d ttd d  dtjdtj dtdt diks2J dtd  dtd   dtd   dtd   dtd
   dtd   dtd   dtd   } 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sJ t tt	 t t tt	 t t  ttt	 t t tt	 t  diksJ t td td  t d tddi ksJ t td td  td   tddtd dtddtddiksJ t td td  td  td   tddtd dtddtddtddiksJ t td dtd   dt  d ttd ddt ddt diks>J t td dtd   dt  d tdddt ddt dtd dikseJ t td t td dtd   dt  d  ttjdtjdtd ddt ddt diksJ tjtdd}}dtd d | }d| d }|d }tdt d }|| }| | }t td td  t d tdd| | | d| | ||  | d| | ||  | diksJ td dt  d tdtd  dt  tdt d } dd dD \}	}
td}t | t|	|
tddt |    d|	|
tddt |    d|	|
tddt |    d|	|
tddt |    diksdJ td td  td  t d } dd d D \}}}t | t| |d|   t||d|   |   d| |d|   t||d|   |   d| |d|   t||d|   |   d| |d|   t||d|   |   diksJ td dt td   ddt  dtd   t  t dtd   } t | ttjdtjtjt  tjtddt  td  dtd     dtjtjt  tjtddt  td  dtd     diksEJ t tt	 t td  dtd   dt  d tddi kseJ t tt	 t td  dtd   dt  d tddi ksJ t td d td!d"tjdtj diksJ t td d td#d"tdt diksJ t td td  ttjdtj diksJ t td td  td$d% d&tjdiksJ t td d td!dd'tj tjgksJ t td d td#dd'tt gks	J td(dd)\}}td || d  dt ||   d }t |td*d"d||  diks7J t td tdd+tjtjtjgksKJ t d,tdd+g ksWJ td
 td  td  td  td  t d } t | t ttd  ttd  dt tttdd  tttdd  dt tttdd  tttdd  dtttd  ttd  dttttdd  tttdd  dttttdd  tttdd  diksJ td d | d   }t |t ttd  ttd  dt tttdd  tttdd  dt tttdd  tttdd  dtttd  ttd  dttttdd  tttdd  dttttdd  tttdd  dt dtdikspJ t td d-t  d }d.d |D d/ }d0d
td1  }|dt|d d d2t|d  ksJ tddtd  td  d3dtd  td   td d t  d td4d5}t |dtd dddtd  dtd d diksJ td6td  d7td td   d8td   d0td td   d9td   d:td td   d;td   d<td td   d=td t  d=t  d> td4d5}t |td d dddtd  ddtd dd?dtd  dd	dtd  diksiJ ttd dtd   d
td td   dtd t  d@t  dA dAtd  td4d5}t |dtd d ddtd d ddtd d diksJ t tttd d d td4d5td tddtj tdt d    dtd tddtj tdt d    dtd tdd dik	sJ d S )BNr-   r   r6   rB   rE   r?   r]   rs   rC   rD   ro   i i  i  i  i     ra   i  r   r   F)cubicsrO   T!      c                 S      g | ]}t | qS r3   r   rc   r3   r3   r4   r5     s    ztest_roots0.<locals>.<listcomp>))r   r   )r-   r   c                 S   r   r3   r   rc   r3   r3   r4   r5         ))r-   rE   )r-   ro   )r]   ro   Zfilterr   c                 S   s   | j S r   )is_positive)rX   r3   r3   r4   <lambda>  s    ztest_roots0.<locals>.<lambda>)	predicate)r   r   za, b)realRr   i  (   c                 S   s   g | ]}|j r|qS r3   r.   )r1   rxr3   r3   r4   r5      rM   r   l   i2  r   r   r{   r|   )            }   -            r      r   )r$   r@   r   r   expandr   r   r   rQ   rU   NegativeOner   rS   rT   r   rb   rd   rV   r   r   r   r   r   r   )rW   r1_2r1_3x0x1x2x3x4x5r13_20r1_20s2r1_4r1_8r5_8arbrrh   r   rX   	real_rootcrr_   r3   r3   r4   test_roots0  sX  D$(((26,,....,.44,&
:


(L,
,$
J(
0(

 <
 ****D::@@.*.
,(($(0**((	**((

*P<@

0 D
B ,,r  c                     s  t d\} }}}d | | |  | |  |  }d | |||  |    |  | | || |   | | ||   }tt| ddgksNJ tt| ddgks]J t d\}}}}	}
}}|| ||  ||  |	| |
  |
 |	 | }|| | | |
||  |
  |	|	 ||   }tt|| | g dksJ d dd   d  tt  }tdd	  fd
d|D D rJ dS )z6Just test that calculating these roots does not hang. z	a,b,c,d,xr6   r-   zzz,yy,xx,zy,zx,yx,kr   rB   ro   c                 s   s    | ]}|V  qd S r   r3   r0   r3   r3   r4   ri   J  s    z"test_roots_slow.<locals>.<genexpr>c                    s    g | ]}  |jd dqS )Tre   )rb   rJ   )r1   rirW   r@   r3   r4   r5   J  s     z#test_roots_slow.<locals>.<listcomp>N)r   r8   r$   valueskeysr   )rQ   rU   rS   rT   f1f2zzyyxxzyzxyxke1e2r   r3   r	  r4   test_roots_slow6  s   $H00"*r  c                  C   s   t td t d tdd} t td t d tdd}t| |D ]\}}t|| dk s-J qtd dtd	 td
   ddtd  td   ddtd d   }t |dd} d}t| |D ]\}}t|| dk smJ q_d S )Nr6   r-   Tr   g      ?g-q=rE   g      @g       @rB   g     S@g      8@g      b@g      "@)g؋~)g)cg3!	@g
 @绽|=)r$   r@   r   absr   )R1R2r   r2rW   r3   r3   r4   test_roots_inexactM  s   2r  c                  C   s  t d\} }}}d| d  |d  |d  d| t | d  |d  |d   d| d	  |d
  |d	  td
  |d   d| d  |d  |d  td  |d   d| d  |d  |d  td  |d   d| d  |d  |d  td  |d	   d| d
  |d	  |d
  td	  d|d    d|  | |d  td  d|d
    d|d  td  d  }t|ti ksJ t| tdd}g d}td}||  | ||d
   }t|t|ksJ t||D ]\}	}
|	|}|d urt|| |
 dk sJ qd S )Nr   r   ro   r   r   ra   r   r   rD   r6   r   r   r]   rB   rs   r   rE   r   r   r   r   r   r   Tr   )g?|YcgOXLzGX@g'I^g@g|۰n@gdZw@g5`e@gS$Ȫ@gJm@rL   r  )	r   r@   r$   evalfr   r;   r   matchr  )r   r   r   r   rW   r  r  rL   rh   r   r  r  r3   r3   r4   test_roots_preprocessed_  s8   "****.&

&r   c                   C   s   t td dt  d ddddiksJ t td dt  d ddddiks(J t td dtd   td  dt  d ddddiksFJ ttd	d
  d S )Nr6   r-   FstrictTrD   r]   rB   c                   S   s0   t td dtd   td  dt  d ddS )NrD   r6   r]   rB   Tr!  )r$   r@   r3   r3   r3   r4   r     s   0 z#test_roots_strict.<locals>.<lambda>)r$   r@   r)   r'   r3   r3   r3   r4   test_roots_strict|  s   ((<r#  c            	      C   s   ddt   dt d   dt d   dt d   } t| d	d
\}}t| }t| d	d}dd |D }dd |D }|| }dd |D }t|dd d}t|dd d}||fD ]"}t||D ]\}}|jrl||v skJ q^t|t|f|v sxJ q^qWd S )Nipi  i  r6   i
  rB   1   rE   T)rl   r   c                 S   s   g | ]\\}}}t ||qS r3   r   r1   rQ   rU   _r3   r3   r4   r5     s    z$test_roots_mixed.<locals>.<listcomp>c                 S   s8   g | ]\\}}}t t|t|t t|t| qS r3   )r   r   r
   r%  r3   r3   r4   r5     s    (c                 S   s   g | ]}|  qS r3   )r  rc   r3   r3   r4   r5     r   c                 S      |   S r   sort_keyr@   r3   r3   r4   r         z"test_roots_mixed.<locals>.<lambda>r   c                 S   r'  r   r(  r*  r3   r3   r4   r     r+  )	r@   r   r   r$   r9   r   r/   r   r
   )	rW   _re_im_nroots_sroots
_intervals_rootsr2   rX   r3   r3   r4   test_roots_mixed  s&   0r2  c                
   C   s  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 d ttd td gks1J t td t tttt ttt gksHJ t td d d td td td td tt tt tt tt gksnJ t ttd d tddttd tttd tttd d tgksJ t dtd  dtd   dtd   td  td	dtttd dtd   dtd   d gksJ d S )
Nr-   r6   rE   r   r   ro   r   rD   Q)r   r   r@   rV   r   r   r3   r3   r3   r4   test_root_factors  s   &.2*4(r4  c                     sR   d} t | tdd ttjj fdd  jdd}dd	 |D g d
ks'J d S )Nr   Tr   c                      s    j dddS )NrB   r]   )rJ   maxsteps)r   r3   rx   r3   r4   r     s    ztest_nroots1.<locals>.<lambda>rB   rI   c                 S      g | ]}t |qS r3   strrc   r3   r3   r4   r5     r   z test_nroots1.<locals>.<listcomp>)@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%   r@   r)   mpmathmpNoConvergencer   )rJ   r$   r3   rx   r4   test_nroots1  s   r<  c                  C   sj   t td dt  d t} | jdd}dd |D g dks J | jdd}dd |D g d	ks3J d S )
Nr]   rB   r-   rI   c                 S   r6  r3   r7  rc   r3   r3   r4   r5     r   z test_nroots2.<locals>.<listcomp>)z-0.332z-0.839 - 0.944*Iz-0.839 + 0.944*Iz1.01 - 0.937*Iz1.01 + 0.937*Ic                 S   r6  r3   r7  rc   r3   r3   r4   r5     r   )z-0.33199z-0.83907 - 0.94385*Iz-0.83907 + 0.94385*Iz1.0051 - 0.93726*Iz1.0051 + 0.93726*I)r   r@   r   )rh   r$   r3   r3   r4   test_nroots2  s   r=  c                   C   s>   t tttd td tt  t t tdddksJ d S )NrB   r6   T)	composite)r;   r$   r   rV   r   r@   r3   r3   r3   r4   test_roots_composite     >r?  c                      s.   t td t t d  tt fdd d S )NrB   r-   c                      s   t  S r   rv   r3   r^   r3   r4   r     r+  z"test_issue_19113.<locals>.<lambda>)r   r@   r)   r&   r3   r3   r^   r4   test_issue_19113  s   rA  c                   C   s>   t ddddt  d  d dt  dgd	d
ddgksJ d S )Nr-   rC   r   rE   r6   ro   r   r   Tr   )r$   r   r3   r3   r3   r4   test_issue_17454  r@  rB  c                   C   sN   t td t dgksJ t td d t dtdd   gks%J d S )Nl          l       rB   rE   r6   )r   r@   
real_rootsr   r3   r3   r3   r4   test_issue_20913  s   2rD  c               	   C   s   t dd} dt |  td d|    }ttttd  td d  t|d| dtdt   d d|dtdt   d diksCJ d S )Nr-   rB   r?   r]   r6   )r   rQ   r$   r   r@   r   r   )rR   rX   r3   r3   r4   test_issue_22768  s   
 rE  )i__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$   sympy.polys.orthopolysr%   sympy.polys.polyerrorsr&   r'   sympy.polys.polyutilsr(   sympy.testing.pytestr)   r*   sympy.core.randomr+   r9  	itertoolsr,   rQ   rU   rS   rT   rR   r   r   r@   rV   rd   r>   rA   r\   r`   rn   ru   rw   rz   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r#  r2  r4  r<  r=  r?  rA  rB  rD  rE  r3   r3   r3   r4   <module>   sp    ,"		:0!< -
