ó
¡¼™\c        
   @   sn  d  Z  d d l m Z m Z m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z 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 l& m' Z' d d l( m) Z) d d l* m+ Z+ d d l, m- Z- m. Z. d d	 l/ m0 Z0 d d
 l1 m2 Z2 d d l3 Z3 e d ƒ \
 Z4 Z5 Z6 Z7 Z8 Z9 Z: Z; Z< Z= d „  Z> d „  Z? d „  Z@ d „  ZA d „  ZB d „  ZC d „  ZD d „  ZE d „  ZF d „  ZG d „  ZH d „  ZI d „  ZJ d „  ZK d „  ZL d „  ZM d „  ZN d „  ZO d „  ZP d  „  ZQ d! „  ZR e. d" „  ƒ ZS d# „  ZT d$ „  ZU d S(%   sB   Tests for algorithms for computing symbolic roots of polynomials. iÿÿÿÿ(   t   St   symbolst   Symbolt   Wildt   Rationalt   sqrtt   powsimpt   sint   cost   pit   It   Intervalt   ret   imt   expt   ZZt	   Piecewiset   acost   roott	   conjugate(   t   Polyt   cyclotomic_polyt	   intervalst   nrootst   rootof(	   t   root_factorst   roots_lineart   roots_quadratict   roots_cubict   roots_quartict   roots_cyclotomict   roots_binomialt   preprocess_rootst   roots(   t   legendre_poly(   t   _nsort(   t   cartes(   t   raisest   slow(   t   verify_numerically(   t   rangeNs   a,b,c,d,e,q,t,x,y,zc         C   s»   t  g  |  D] } | j r d n d ^ q
 ƒ } t t |  |  ƒ ƒ t |  |  ƒ k sZ t ‚ xZ t | t |  ƒ d ƒ D]@ } |  | d |  | k p¬ |  | d t |  | ƒ k ss t Sqs Wt	 S(   Ni   i    i   (
   t   sumt   is_realt   listt   sortedt   AssertionErrorR(   t   lenR   t   Falset   True(   R!   t   it   nrealt   ix(    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   _check   s    .,c           C   s:   t  t d t d t ƒ ƒ t d d ƒ g k s6 t ‚ d  S(   Ni   i   (   R   R   t   xR   R-   (    (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_linear(   s    c          C   s|  t  t d t d t ƒ ƒ d d g k s/ t ‚ t  t d t d d t t ƒ ƒ t d d ƒ d g k sp t ‚ t  t d t d d t ƒ ƒ t t d ƒ d t t d ƒ d g k sÀ t ‚ t  t d t d d t d t ƒ ƒ d t t d ƒ d d t t d ƒ d g k st ‚ t t d t d d t d t ƒ j ƒ  ƒ 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 sot ‚ 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 sñt ‚ t t d t d d t t d d t ƒ }  t  |  ƒ d t d d g k sGt ‚ t t d ƒ t d d t ƒ }  t  |  ƒ } | t | ƒ k sŒt ‚ t d t d d	 t d
 ƒ }  g  |  j d t ƒ D] } | j d ƒ ^ q¿g  |  j d t ƒ D] } | j d ƒ ^ qêk st ‚ xg t d d d ƒ D]S \ } } } t | t d | t | ƒ }  t  |  ƒ } | t | ƒ k s!t ‚ q!Wd  S(   Ni   i    i   i   i   iÿÿÿÿi   ièÿÿÿi´   i  t   radicalsiþÿÿÿ(   iþÿÿÿi   (   iþÿÿÿi   (   i    iÿÿÿÿ(   R   R   R5   R-   R   R
   R   R4   t	   all_rootst   at   et   ct   dt   bt   yR#   R0   t   nR/   R$   (   t   ft   rt   wt   _at   _bt   _cR!   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_quadratic,   s2    /AP_-VVe'	R0	! +7" c             sÝ   t  d t d d g t ƒ j ƒ  ‰  t t  ˆ  t ƒ t ƒ }  t d ƒ d d t d ‰ g  |  D] } | j t ˆ ƒ ^ q] } t | ƒ t t t  ˆ  j t ˆ ƒ t ƒ ƒ ƒ k s´ t	 ‚ t
 ‡  ‡ f d †  | Dƒ ƒ sÙ t	 ‚ d  S(   Ni   iþÿÿÿiýÿÿÿi   i   i   c         3   sA   |  ]7 } ˆ  j  i ˆ t 6| t 6ƒ j d  d t ƒd k Vq d S(   i   t   chopi    N(   t   subsR>   R5   R?   R0   (   t   .0R1   (   t   pt   z(    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pys	   <genexpr>U   s    (   R   R>   R5   t   as_exprR   R    R
   RH   t   setR-   t   all(   R!   RA   t   post(    (   RJ   RK   s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_issue_8438M   s    !%	0c          C   sA  t  d t d d t ƒ t  t d d ƒ j ƒ  }  t |  ƒ sE t ‚ t  t d d t d d t ƒ } g  t d ƒ D] } t | | ƒ ^ qu } t  t d d t d d t ƒ j ƒ  }  |  | k sË t ‚ t |  ƒ sÝ t ‚ t  d t d d ƒ j ƒ  }  t |  ƒ st ‚ t t  d t d d ƒ j ƒ  ƒ d k s=t ‚ d  S(   Ni   i   i   i   i   i   i
   (   R   R5   R8   R4   R-   R(   R   R.   (   R!   R@   R1   t   ro(    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_issue_8285X   s    3#()c          C   sè   t  t d d ƒ t  t d d ƒ j ƒ  }  t |  ƒ s> t ‚ t  t d d t d d t ƒ j ƒ  }  t |  ƒ sy t ‚ t  t d t d ƒ j ƒ  }  t |  ƒ s© t ‚ t  t d d t d d t ƒ j ƒ  }  t |  ƒ sä t ‚ d  S(   Ni   i   i   i   i   (   R   R5   R8   R4   R-   (   R!   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_issue_8289g   s    ,))c          C   sã   t  t d d d t d d d t d ƒ j ƒ  d d t d t d t d ƒ t d t d ƒ t g k su t ‚ t d d t d d }  g  t d ƒ D] } t |  | ƒ ^ qœ } t  |  ƒ j ƒ  | k sÕ t ‚ t | ƒ d  S(   Ni   i   i   i
   (	   R   R5   R8   R
   R   R-   R(   R   R4   (   RJ   R1   t   ans(    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_issue_14291s   s    3B(c          C   sS   t  t d t t ƒ t t t d d ƒ}  t |  ƒ } t | ƒ d k sO t ‚ d  S(   Ni   t   domaint   EX(   R   R>   R   R5   R!   R.   R-   (   t   eqt   roots_d(    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_issue_13340|   s    +c             s‰   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ƒ ƒ s… t ‚ d  S(   Ni   i   i   i    i   iãþÿÿi‚  iøôÿÿiÀ  i
  i¥  c         3   s!   |  ] } ˆ  | ƒ d  k Vq d S(   i    N(    (   RI   RA   (   RX   (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pys	   <genexpr>…   s    (   R   R5   R
   R!   RN   R-   (   t   roots_eq(    (   RX   s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_issue_14522‚   s    Wc          C   sN   t  t t d d t d t t d t ƒ ƒ }  |  d j t ƒ sJ t ‚ d  S(   Ni   i   i   i   i    (   R   R   t   tR5   t   hasR-   (   t   sol(    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_issue_15076ˆ   s    1c       	   C   s‹  t  t d t d t ƒ ƒ d d d g k s2 t ‚ t  t t d d t d d t d t ƒ ƒ d d d g k sx t ‚ t  t t d d t ƒ ƒ d t j t t d ƒ d t j t t d ƒ d g k sÔ t ‚ 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 sFt ‚ t d d t d d t d }  t	 |  d t
 d t
 ƒt  t |  t ƒ d t
 ƒk o|t 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 n s‡t ‚ d  S(   Ni   i   i    i   iÿÿÿÿt   trigt   multiplei   i   i©   iþÿÿÿi   (   R   R   R5   R-   R    t   HalfR
   R   R   R!   R0   R   R   R   R	   (   RX   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_cubic   s    2FB6<# AJc             sÿ  t  t t d t ƒ ƒ d d d d g k s1 t ‚ t  t t d t d t ƒ ƒ d d d d g d d d d g d d d d g d d d d g g k sš t ‚ t  t t d t d t ƒ ƒ d d d d g d d d d g d d d d g d d d d g g k st ‚ t  t t d t t ƒ ƒ }  t j t t d ƒ d t j t t d ƒ d t j t j	 g } t
 |  d t ƒt
 | d t ƒk st ‚ x!t d d d d  d! d" d# g ƒ D]þ \ } \ } } } } | d k rý| | d t d ƒ | t d ƒ } nK | d k rH| | d | d t d ƒ | t d ƒ | t d ƒ } n  t d | t d | t d | t | ‰  t  t ˆ  t ƒ ƒ } t ‡  f d †  | Dƒ ƒ s¯t ‚ q¯Wt t t t d t d t d d t d t d d ƒ t ƒ ‰  t  ˆ  ƒ } t ‡  f d †  | Dƒ ƒ s#t ‚ t d d t ƒ}	 t d d t d d t d t |	 d d ‰  t  t ˆ  t ƒ ƒ }
 t g  |
 D]0 } t ˆ  j t | f |	 d f f ƒ d ƒ ^ q†ƒ sÅt ‚ t t t d t d t |	 t ƒ ‰  t  ˆ  ƒ } t d „  | Dƒ ƒ st ‚ t d t d d ƒ d t d d ƒ ƒ t d t d d ƒ d t d d ƒ ƒ t d t d d ƒ d d ƒ f } xv | D]n } t  t ˆ  j | ƒ t ƒ ƒ } t g  t | | ƒ D]( \ } } t | j | ƒ | d ƒ ^ qÀƒ s‰t ‚ q‰Wd  S($   Ni   i    i   iÿÿÿÿi   i   t   keyiùÿÿÿi÷ÿÿÿi	   iýÿÿÿiúÿÿÿi   iüÿÿÿi   iûÿÿÿiöÿÿÿi   i   i   c         3   s3   |  ]) } ˆ  j  t | ƒ j d  t ƒ d k Vq d S(   RG   i    N(   RH   R5   R?   R0   (   RI   t   ai(   RX   (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pys	   <genexpr>À   s    c         3   s*   |  ]  } t  ˆ  j t | ƒ d  ƒ Vq d S(   i    N(   R'   RH   R5   (   RI   R1   (   RX   (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pys	   <genexpr>Å   s    RK   t   negativei   c         s   s!   |  ] } t  | ƒ t k Vq d  S(   N(   t   typeR   (   RI   R1   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pys	   <genexpr>Î   s    R>   iþÿÿÿ(   i   i   i   i    (   i   iùÿÿÿi÷ÿÿÿi	   (   i   i   i   i   (   i   i   i   i   (   iùÿÿÿiýÿÿÿi   iúÿÿÿ(   iýÿÿÿi   iúÿÿÿiüÿÿÿ(   i   iûÿÿÿiöÿÿÿiýÿÿÿ(   R   R   R5   R-   R    Rc   R
   R   t   Zerot   OneR,   t   hasht	   enumerateRN   t   qR   R   R0   R'   RH   R>   t   dictt   zip(   t   lhst   rhsR1   R9   R=   R;   R<   RT   R_   RK   t   zanst   repst   repRB   t   s(    (   RX   s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_quarticž   sX    1C*	"*?.&D"2I'&&"c           C   s-  t  t d t d t ƒƒ d g k s* t ‚ t  t d t d t ƒƒ d g k sT t ‚ t  t d t d t ƒƒ t d ƒ d t t d ƒ d t d ƒ d t t d ƒ d g k s» t ‚ t  t d t d t ƒƒ t t g k sé t ‚ t  t d t d t ƒƒ t d ƒ d t t d ƒ d t d ƒ d t t d ƒ d g k sNt ‚ t  t d t d t ƒƒ t t	 d ƒ t t
 t	 d ƒ t t	 d ƒ t t
 t	 d ƒ t d t	 d ƒ t t
 d t	 d ƒ t d t	 d ƒ t t
 d t	 d ƒ t d t	 d ƒ t t
 d t	 d ƒ t d t	 d ƒ t t
 d t	 d ƒ g k sSt ‚ t  t d	 t d t ƒƒ 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øt ‚ t  t d
 t d t ƒƒ t d ƒ d t d t d ƒ d t d t d ƒ d t d t d ƒ d t d g k sut ‚ t  t d t d t ƒd t ƒd g k s¥t ‚ t  t d t d t ƒd t ƒd g k sÕt ‚ t  t d t d t ƒd t ƒt d d ƒ d t d d ƒ g k st ‚ t  t d t d t ƒd t ƒt t g k sSt ‚ t  t d t d t ƒd t ƒ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 sàt ‚ t  t d t d t ƒd t ƒd t d d ƒ t d d ƒ g k s)t ‚ d  S(   Ni   t   polysi   iÿÿÿÿi   i   i   i   i   i   t   factori   (   R   R   R5   R0   R-   R    R
   R   R   R	   R   R   (    (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_cyclotomicØ   sH    **a._  (('6  .$--,oc          C   sû  t  t d t t ƒ ƒ d g k s( t ‚ t  t d t d t ƒ ƒ d d d d g k s] t ‚ t  t d t d t ƒ ƒ t d d ƒ g k s“ t ‚ d t d d ƒ d }  t  t d t d d t ƒ ƒ |  |  t |  |  t |  |  t |  |  t g k st ‚ t t  t t d d ƒ ƒ ƒ t d d	 t ƒ} t d
 d	 t ƒ} t	 t | t d | t ƒ ƒ } t  t | t d | t ƒ ƒ } t
 | d ƒ t
 | d ƒ k s¯t ‚ t
 | d ƒ t
 | d ƒ k sÕt ‚ x‡ t d d d d ƒ D]p \ } } } } | | k r| d k rqën  t | t | | | ƒ }	 t  |	 ƒ }
 |
 t |
 ƒ k sët ‚ qëWt t d t d d t d t ƒ ƒ i d d t t d ƒ d t d ƒ t d 6d d t 6d d t t d ƒ d t d ƒ t d 6k s÷t ‚ d  S(   Ni   i    i   i   i
   i   i   t   a1t   nonnegativet   b1i   iÿÿÿÿi   (   i   i   (   i   i   (   iÿÿÿÿi   (   i   i   i   i   (   R   R   R5   R-   R   R
   R4   R   R0   R   R   R$   R#   R!   R>   R    R   (   t   ARz   R|   t   r0t   r1R9   R=   Ru   R?   RJ   RT   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_binomial  s.    (56=!!&&(),c          C   s  t  t t d t t }  t t |  t ƒ ƒ \ } } | d k sG t ‚ | t t  t t d t t t ƒ k sv t ‚ t d t d t d t d t t t  }  t t |  t ƒ ƒ \ } } | d t k sÕ t ‚ | t t d t d t t  t ƒ k st ‚ t d t d t d t d t  }  t t |  t ƒ ƒ \ } } | d t k s[t ‚ | t t d t d t  t ƒ k s†t ‚ t d t d t t t  }  t t |  t ƒ ƒ \ } } | d t k sÕt ‚ | t t d t t  t ƒ k süt ‚ t d t d t  }  t t |  t ƒ ƒ \ } } | d t k sCt ‚ | t t d t  t ƒ k sft ‚ 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 s!t ‚ | 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 st ‚ t t d t d t	 t ƒ t d! t
 t t	 t ƒ f ƒ}  t t d t	 t ƒ t d! t
 t	 t ƒ ƒ} t |  ƒ t | f k st ‚ d  S("   Ni   i   i   s   E,F,J,Llûÿÿÿ [r|)s2^ i   i   I BÜ›i   i   I€]’ž + i   i   I/O º  i   i
   IöÄo   i   i—qâ i
Ö  i  iP   iy  i q i   idÂ i ãB iÌß°I”õˆ¼   I˜¯˜3µ	  I„ˆ…Ç9  I‹Fò«Éz  RV   (   R9   R>   R5   R=   R    R   R-   R;   R   R   R   (   R@   t   coefft   polyt   Et   Ft   Jt   Lt   g(    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_preprocessing)  s>    /./&+'#	ÿ H&k<.c       
   C   s'  t  d t ƒ i  k s t ‚ t  t t ƒ i d t j 6k s@ t ‚ t  t d t ƒ i d t j 6k si t ‚ t  t d t d t d j ƒ  t ƒ i d t d ƒ 6d t d ƒ 6d t d ƒ 6k sÆ t ‚ t  d t d t ƒ i d t j 6k sô t ‚ t  d t d d t ƒ i d t j 6k s&t ‚ t  d t d d t ƒ i d t j 6k sXt ‚ t  d t d d t ƒ i d t j 6k sŠt ‚ t  t d d t ƒ i d t 6d t j 6d t j 6d t 6k sÑt ‚ t  t d d d t ƒ i d t 6d t j 6d t j 6d t 6k st ‚ t  d t d d j ƒ  t ƒ i d t	 d d ƒ 6k sYt ‚ t  d t d d j ƒ  t ƒ i d t	 d d ƒ 6k s—t ‚ t  d t d d j ƒ  t ƒ i d t	 d d ƒ 6k sÔt ‚ t  d t d d j ƒ  t ƒ i d t	 d d ƒ 6k st ‚ t  d t d d j ƒ  t ƒ i d t	 d d ƒ 6k sOt ‚ t  d t d d j ƒ  t ƒ i d t	 d d ƒ 6k st ‚ t  t
 t t d j ƒ  t ƒ i d t t
 6k sÅt ‚ t  t
 t t d j ƒ  t ƒ i d t t
 6k sþt ‚ t  t d t
 d t t
 t ƒ i d t
 6d t j 6k s?t ‚ t  t d d t d d t ƒ i d t j 6d t j 6k sƒt ‚ t  t d d t d d t d t d t ƒ i d t j 6d d	 t d ƒ 6d t j 6d d	 t d ƒ 6k søt ‚ t  t d
 d t ƒ i d t d ƒ d t t d ƒ d 6d t d ƒ d t t d ƒ d 6d t d ƒ d t t d ƒ d 6d t d ƒ d t t d ƒ d 6d t j 6d t j 6d t 6d t 6k sÍt ‚ 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  |  ƒ i d t d ƒ 6d t d ƒ 6d t d ƒ 6d t d ƒ d 6d t d ƒ d 6d t d ƒ d 6d t d ƒ d 6k s¶t ‚ t  t
 t t t t
 t t t t ƒ i d t
 t t t t
 t t 6k st ‚ t  t d t d t d t d t ƒi  k sAt ‚ t  t d t d t d j ƒ  t d t ƒi d t d ƒ 6d t d ƒ 6d t d ƒ 6k s¤t ‚ t  t d t d t d t d j ƒ  t d t ƒi d t d ƒ 6d t d ƒ 6d t d ƒ 6d t d ƒ 6k st ‚ t  t d d t d d t d
 t ƒ i d t d ƒ 6d d t 6d d t 6k swt ‚ t  t d d t d d t d
 t d t ƒi d d t 6d d t 6d t d ƒ 6k sØt ‚ t  t d t t d d t d d t d
 t ƒ i d t d ƒ 6d t d ƒ 6d t d ƒ 6d d t 6d d t 6k sY	t ‚ t	 d d ƒ t	 d d ƒ } } d t d ƒ d | } d | d } | d } t d ƒ t d } | | } | | } t  t d t d t d t d t ƒi d | | | 6d | | | | | 6d | | | | | 6k sF
t ‚ t d d t d j t d t d d t ƒ j t d t d ƒ }  g  d5 d6 f D] }	 t	 |	 Œ  ^ q™
\ }
 } t d ƒ } t  |  t ƒ i d |
 | t d d
 t | ƒ 6d |
 | t d d
 t | ƒ 6d |
 | t d d
 t | ƒ 6d |
 | t d d
 t | ƒ 6k sbt ‚ t d t d t d t d }  g  d7 d8 d9 f D] }	 t	 |	 Œ  ^ q”\ } } } t  |  t ƒ i d | | d | t | | d | | 6d | | d | t | | d | | 6d | | d | t | | d | | 6d | | d | t | | d | | 6k s€t ‚ t d d t t d d d t d t d t t d t d }  t  |  t ƒ i d t j 6d t j t j t t j t d d t t d d
 t d ƒ 6d t j t j t t j t d d t t d d
 t d ƒ 6k sot ‚ t  t
 t t t d d t d d t d
 t d t ƒi  k s¸t ‚ t  t
 t t t d d t d d t d
 t d t ƒi  k st ‚ t  t d d t d d ƒi d t j 6d t j 6k s?t ‚ t  t d d t d d ƒi d t 6d t 6k swt ‚ t  t d t d t ƒ i d t j 6d t j 6k s³t ‚ t  t d t d t d d „  ƒi d t j 6k sít ‚ t  t d d t d d d  t ƒt j t j g k s)t ‚ t  t d d t d d d  t ƒt t g k s_t ‚ t  t d t d  t ƒt j t j t j g k s–t ‚ t  d! t d  t ƒg  k s·t ‚ t d t d t d t d t d t d }  t  |  ƒ i d t t t d ƒ t t d ƒ 6d t t d t d ƒ t d t d ƒ 6d t t d t d ƒ t d t d ƒ 6d t t t d ƒ t t d ƒ 6d t t d t d ƒ t d t d ƒ 6d t t d t d ƒ t d t d ƒ 6k söt ‚ t d d |  d j ƒ  } t  | ƒ i d t t t d ƒ t t d ƒ 6d t t d t d ƒ t d t d ƒ 6d t t d t d ƒ t d t d ƒ 6d t t t d ƒ t t d ƒ 6d t t d t d ƒ t d t d ƒ 6d t t d t d ƒ t d t d ƒ 6d t 6d t 6k s.t ‚ t  t d d" t d ƒ }	 g  |	 D] } | j rQ| ^ qQd } d# d t d$ ƒ } | d t | d ƒ d d t | d ƒ k s¸t ‚ t d d t d ƒ t d d% d t d ƒ t d t d ƒ d t d t d& d' ƒ} t  | ƒ i d d	 t d ƒ 6d d d t d ƒ 6d t d ƒ d 6k sdt ‚ t d( t d d) t d ƒ t d d* t d d# t d ƒ t d d+ t d d, t d ƒ t d d- t d d. t d ƒ t d d/ t d ƒ t d/ t d0 t d& d' ƒ} t  | ƒ i d t d ƒ d 6d d d t d ƒ 6d d	 t d ƒ 6d d1 d t d ƒ 6d d2 d t d ƒ 6k s•t ‚ t t d d t d d t d ƒ t d d
 t d ƒ t d3 t d4 d4 t d ƒ t d& d' ƒ} t  | ƒ i d d t d ƒ d 6d d t d ƒ d 6d d t d ƒ d 6k sSt ‚ t  t t t d ƒ d d t d& d' ƒƒ i d t d ƒ t d d ƒ d t d ƒ t d d ƒ t d 6d t d ƒ t d d ƒ d t d ƒ t d d ƒ t d 6d t d ƒ t d d ƒ 6k s#t ‚ d  S(:   Ni   i	   i   i   i   i   i
   i   iÿÿÿÿi   i øÿÿið  i  iü  i€  ià   i   i€  i@   i    t   cubicsiþÿÿÿi!   i   i   i   t   filtert   ZR
   t	   predicatec         S   s   |  j  S(   N(   t   is_positive(   RA   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   <lambda>Ö  t    Rb   iÒ  i(   il   i2  iúÿÿÿRV   RW   i)   i   i™   i¯   i}   i-   i   i   i   iüÿÿÿiýÿÿÿi   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R!   R5   R-   R    Ri   t   expandRc   R
   Rj   R   R9   R=   R   R;   R<   R/   R0   RH   RK   R>   R   R	   R   R*   R   R   (   R@   t   r1_2t   r1_3t   x0t   x1t   x2t   x3t   x4t   x5RA   t   r13_20t   r1_20t   s2t   r1_4t   r1_8t   r5_8R‡   t   rxt	   real_roott   crRX   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots0e  sì    %)].222GK=>=>=>89AD0E##$$0b‡V5`4D[.34M

)$F(!!!-"1,,,8F
BNII>8<7<67!2$,,#+7$,,#++&4\P´D6JW*A>c          C   s  t  d ƒ \ }  } } } } | d | |  | | | | |  } | d |  | | | |  | |  | | | | | |  | | | } t t | | ƒ j ƒ  ƒ d d g k s¸ t ‚ t t | | ƒ j ƒ  ƒ d d g k så t ‚ t  d ƒ \ } } }	 }
 } } } | | | | |	 | |
 | | | |
 | } | | | | | | | | |
 |
 |	 | } t t | | | ƒ j ƒ  ƒ d d d g k sžt ‚ | d d | d d } t t | ƒ j ƒ  ƒ } t d „  g  | D]$ } | j | | ƒ j d t	 ƒ ^ qàDƒ ƒ st ‚ d	 S(
   s6   Just test that calculating these roots does not hang. s	   a,b,c,d,xi   i   s   zz,yy,xx,zy,zx,yx,ki   i   c         s   s   |  ] } | Vq d  S(   N(    (   RI   R1   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pys	   <genexpr>   s    RG   N(
   R   R+   R!   t   valuesR-   t   keyst   anyRH   R?   R0   (   R9   R=   R;   R<   R5   t   f1t   f2t   zzt   yyt   xxt   zyt   zxt   yxt   kt   e1t   e2R@   t   Rt   ri(    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_slow  s    &J--!224c          C   s&  t  t d t d t d t ƒ}  t  t d t d t d t ƒ} x9 t |  | ƒ D]( \ } } t | | ƒ d k  sR t ‚ qR Wt d d t d ƒ t d	 d
 d t d ƒ t d d d t d ƒ d } t  | d t ƒ}  d } x9 t |  | ƒ D]( \ } } t | | ƒ d k  sö t ‚ qö Wd  S(   Ni   i   Rb   g      ð?gê-™—q=i   g      @g       @i   g     €S@g      8@g      b@g      "@gØ‹ì~)Àg)cÇÍÀg3!	Ž˜@g¨
¢ ¡Ø@g»½×Ùß|Û=(   gØ‹ì~)Àg)cÇÍÀg3!	Ž˜@g¨
¢ ¡Ø@(   R!   R5   R0   Ro   t   absR-   R   (   t   R1t   R2R   t   r2R@   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_inexact#  s    !! P c          C   sq  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 s•t ‚ t | j ƒ  t d t ƒ} d d d d d d d d  g } t d! ƒ } | |  | | | d
 } t | ƒ t | ƒ k st ‚ xX t | | ƒ D]G \ }	 }
 |	 j	 | ƒ } | t
 k	 o`t | | |
 ƒ d" k  sit ‚ q"Wd  S(#   Ns   E,F,J,Llûÿÿÿ [r|)s2^ i   i   I BÜ›i   i   I€]’ž + i   i   i   I/O º  i   i   i
   IöÄo   i   i—qâ i
Ö  i  iP   iy  i q Rb   g?|Y÷ˆc”ÀgOXLýzGX@gö„í'I^g@gíá|Û°n@gËÀdZw@g5Ä`e¼ˆ@gS$·Èªä“@gJúómèœ@RB   g»½×Ùß|Û=(   R   R5   R!   R-   t   evalfR0   R   R.   Ro   t   matcht   NoneR´   (   Rƒ   R„   R…   R†   R@   Rµ   R¶   RB   RJ   R   R·   Rº   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_preprocessed5  s    	ÿ Hc          C   s¹  d d t  d t  d d t  d d t  d }  t |  d	 t ƒ\ } } t |  ƒ } t |  d
 t ƒ} g  | D]! \ \ } } } t | | ƒ ^ qo } g  | D]F \ \ } } } t t | ƒ t | ƒ ƒ t t | ƒ t | ƒ ƒ ^ q } | | } g  | D] }	 |	 j ƒ  ^ qú } t	 | d d „  ƒ} t	 | d d „  ƒ} xv | | f D]h }
 x_ t
 | |
 ƒ D]N \ } }	 |	 j r‰|	 | k s­t ‚ q_t |	 ƒ t |	 ƒ f | k s_t ‚ q_WqIWd  S(   NipøÿÿiÀ  i¨  i   i
  i   i1   i   RN   Rb   Re   c         S   s
   |  j  ƒ  S(   N(   t   sort_key(   R5   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyRŽ   `  R   c         S   s
   |  j  ƒ  S(   N(   R½   (   R5   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyRŽ   a  R   (   R5   R   R0   R   R!   R   R   R   R¹   R,   Ro   R*   R-   (   R@   t   _ret   _imt   _nrootst   _srootsR9   R=   t   _t
   _intervalsRA   t   _rootsR1   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_mixedR  s     2.P
	c        
   C   sý  t  t d t ƒ ƒ t d t ƒ g k s- t ‚ t  t t t ƒ ƒ t t t ƒ g k sZ t ‚ t  t d d t ƒ t d t d g k s‹ t ‚ t  t d t t ƒ t t t ƒ t t t ƒ g k sÈ t ‚ t  t d d d ƒ t d t d t d t d t t t t t t t t g k s$t ‚ t  t t d d t ƒ d d ƒt t d t ƒ t t d t ƒ t t d d t ƒ g k s‡t ‚ 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 sùt ‚ d  S(
   Ni   i   i   RŠ   R‹   i   i   i   t   Q(   R   R   R5   R-   R>   R   R
   (    (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_root_factorsk  s    --1=G C:c       A      s8  d }  t  |  t d t ƒ‰  t t j j ‡  f d †  ƒ ˆ  j d d ƒ } g  | D] } t | ƒ ^ qP d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE g@ k s4t	 ‚ d  S(F   Ni@   Rw   c              s   ˆ  j  d d d d ƒ S(   NR?   i   t   maxstepsi   (   R   (    (   RJ   (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyRŽ   €  R   R?   i   s   -0.999s   -0.996s   -0.991s   -0.983s   -0.973s   -0.961s   -0.946s   -0.930s   -0.911s   -0.889s   -0.866s   -0.841s   -0.813s   -0.784s   -0.753s   -0.720s   -0.685s   -0.649s   -0.611s   -0.572s   -0.531s   -0.489s   -0.446s   -0.402s   -0.357s   -0.311s   -0.265s   -0.217s   -0.170s   -0.121s   -0.0730s   -0.0243s   0.0243s   0.0730s   0.121s   0.170s   0.217s   0.265s   0.311s   0.357s   0.402s   0.446s   0.489s   0.531s   0.572s   0.611s   0.649s   0.685s   0.720s   0.753s   0.784s   0.813s   0.841s   0.866s   0.889s   0.911s   0.930s   0.946s   0.961s   0.973s   0.983s   0.991s   0.996s   0.999(
   R"   R5   R0   R%   t   mpmatht   mpt   NoConvergenceR   t   strR-   (   R?   R!   RA   (    (   RJ   s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_nroots1{  s    c          C   s»   t  t d d t d t ƒ }  |  j d d ƒ } g  | D] } t | ƒ ^ q8 d d d d d	 g k sk t ‚ |  j d d ƒ } g  | D] } t | ƒ ^ q„ d
 d d d d g k s· t ‚ d  S(   Ni   i   i   R?   s   -0.332s   -0.839 - 0.944*Is   -0.839 + 0.944*Is   1.01 - 0.937*Is   1.01 + 0.937*Is   -0.33199s   -0.83907 - 0.94385*Is   -0.83907 + 0.94385*Is   1.0051 - 0.93726*Is   1.0051 + 0.93726*I(   R   R5   R   RÌ   R-   (   RJ   R!   RA   (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_nroots2‘  s    		c           C   sO   t  t t t d t d t t ƒ t t t d t ƒƒ ƒ d k sK t ‚ d  S(   Ni   i   t	   composite(   R.   R!   R   R>   R   R5   R0   R-   (    (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   test_roots_composite¢  s    (V   t   __doc__t   sympyR    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   t   sympy.polysR   R   R   R   R   t   sympy.polys.polyrootsR   R   R   R   R   R   R   R    R!   t   sympy.polys.orthopolysR"   t   sympy.polys.polyutilsR#   t   sympy.utilities.iterablesR$   t   sympy.utilities.pytestR%   R&   t   sympy.utilities.randtestR'   t   sympy.core.compatibilityR(   RÉ   R9   R=   R;   R<   R:   Rm   R]   R5   R>   RK   R4   R6   RF   RP   RR   RS   RU   RZ   R\   R`   Rd   Rv   Ry   R€   Rˆ   R¢   R³   R¸   R¼   RÅ   RÇ   RÍ   RÎ   RÐ   (    (    (    s?   lib/python2.7/site-packages/sympy/polys/tests/test_polyroots.pyt   <module>   sF   ‚(@*			!										:	0	!	<	§						