ó
¡¼™\c           @   st  d  Z  d d l m Z d d l m Z m Z m Z d d l m Z m	 Z	 d d l
 m Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z e d ƒ e d ƒ f e d ƒ e d ƒ f Z Z e d ƒ e d ƒ f e d ƒ e d ƒ f Z Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d S(   sE   Tests for real and complex root isolation and refinement algorithms. iÿÿÿÿ(   t   ring(   t   ZZt   QQt   EX(   t   DomainErrort   RefinementFailed(   t   raisesc          C   sÚ   t  d t ƒ \ }  } |  j d ƒ d g k s3 t ‚ |  j | ƒ | d g k sT t ‚ | d d | d d | d } |  j | ƒ | d | d d | d t d d ƒ | t d	 d ƒ t d
 d ƒ g k sÖ t ‚ d  S(   Nt   xi   i   i   i   i   i
   i	   i   iç  id   (   R    R   t	   dup_sturmt   AssertionError(   t   RR   t   f(    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_sturm   s
    !"c             sK	  t  d t ƒ \ ‰  }  |  d d ‰ ˆ  j ˆ t d ƒ t d ƒ d d ƒt d ƒ t d ƒ f k sh t ‚ ˆ  j ˆ t d ƒ t d ƒ d d ƒt d ƒ t d ƒ f k s­ t ‚ t t ‡  ‡ f d †  ƒ t d d ƒ t d d ƒ } } ˆ  j ˆ | | d d ƒt d d ƒ t d d ƒ f k s$t ‚ ˆ  j ˆ | | d d ƒt d d ƒ t d d ƒ f k sct ‚ ˆ  j ˆ | | d d ƒt d	 d ƒ t d d ƒ f k s¢t ‚ ˆ  j ˆ | | d d ƒt d
 d ƒ t d d ƒ f k sát ‚ ˆ  j ˆ | | d d	 ƒt d
 d ƒ t d d
 ƒ f k s t ‚ t d d ƒ t d d ƒ } } ˆ  j ˆ | | d d ƒt d d ƒ t d d ƒ f k s~t ‚ ˆ  j ˆ | | d d ƒt d	 d ƒ t d d ƒ f k s½t ‚ ˆ  j ˆ | | d d ƒt d
 d ƒ t d d ƒ f k süt ‚ ˆ  j ˆ | | d d ƒt d
 d ƒ t d d
 ƒ f k s;t ‚ ˆ  j ˆ | | d d	 ƒt d
 d ƒ t d d ƒ f k szt ‚ t d d ƒ t d d ƒ } } ˆ  j ˆ | | d d ƒt d d ƒ t d d ƒ f k sØt ‚ ˆ  j ˆ | | d d ƒt d d ƒ t d d ƒ f k st ‚ ˆ  j ˆ | | d d ƒt d
 d ƒ t d d ƒ f k sVt ‚ ˆ  j ˆ | | d d ƒt d
 d ƒ t d d ƒ f k s•t ‚ ˆ  j ˆ | | d d	 ƒt d
 d ƒ t d d ƒ f k sÔt ‚ t d d ƒ t d d ƒ } } ˆ  j ˆ | | d d ƒt d d ƒ t d d ƒ f k s4t ‚ ˆ  j ˆ | | d d ƒt d d ƒ t d d ƒ f k sut ‚ ˆ  j ˆ | | d d ƒt d d ƒ t d	 d ƒ f k s¶t ‚ ˆ  j ˆ | | d d ƒt d d ƒ t d
 d ƒ f k s÷t ‚ ˆ  j ˆ | | d d	 ƒt d d
 ƒ t d
 d ƒ f k s8t ‚ t t ‡  ‡ f d †  ƒ t d ƒ t d ƒ t d d ƒ t d d ƒ t d
 d ƒ f \ } } } } } ˆ  j ˆ | | d t d d ƒ ƒ| | f k sÒt ‚ ˆ  j ˆ | | d d ƒ| | f k sÿt ‚ ˆ  j ˆ | | d t d d ƒ d d ƒ| | f k s;t ‚ ˆ  j ˆ | | d t d d ƒ d d ƒ| | f k swt ‚ ˆ  j ˆ | | d t d d ƒ d d
 ƒ| | f k s³t ‚ t d ƒ t d ƒ t d d ƒ t d d ƒ f \ } } } } ˆ  j ˆ | | d t d ƒ ƒ| | f k s"t ‚ ˆ  j ˆ | | d | ƒ| | f k sPt ‚ ˆ  j ˆ | | d | ƒ| | f k s}t ‚ t d ƒ t d ƒ t d	 d ƒ t d d ƒ f \ } } } } ˆ  j ˆ | | d t d ƒ ƒ| | f k sìt ‚ ˆ  j ˆ | | d | ƒ| | f k s	t ‚ ˆ  j ˆ | | d | ƒ| | f k sG	t ‚ d  S(   NR   i   i   t   stepsi	   c              s   ˆ  j  ˆ t d ƒ t d ƒ ƒ S(   Niþÿÿÿi   (   t   dup_refine_real_rootR   (    (   R
   R   (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   <lambda>   t    i    i   i   i   i   i
   i   i   i   i   i   iÿÿÿÿiþÿÿÿc              s   ˆ  j  ˆ t d ƒ t d ƒ ƒ S(   Ni    i   (   R   R   (    (   R
   R   (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyR   ;   R   i   t   epsid   i   iýÿÿÿiüÿÿÿt   disjointiûÿÿÿ(   R    R   R   R   R	   R   t
   ValueErrorR   (   R   t   st   tt   ut   vt   w(    (   R
   R   sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_refine_real_root   sX    EE???????????????AAAAAK6-<<<<3.-<3.c       
      sK  t  d t ƒ \ ‰  ‰ ˆ  j d ƒ g  k s0 t ‚ ˆ  j d ƒ g  k sK t ‚ ˆ  j ˆ d ˆ ƒ ds dt g k st t ‚ ˆ  j ˆ d ˆ ƒ du dv g k s t ‚ ˆ  j ˆ d ˆ d ƒ g  k sÄ t ‚ dw dx g }  ˆ  j ˆ d d ƒ |  k só t ‚ ˆ  j ˆ d d ƒ |  k st ‚ ˆ  j ˆ d ƒ dy g k s9t ‚ ˆ  j ˆ d d	 ˆ d ƒ dz d{ g k sjt ‚ ˆ  j ˆ d	 d
 ˆ d d ˆ d
 ƒ d| d} d~ g k sªt ‚ ˆ  j ˆ d d ˆ d	 d ˆ d d ˆ d ƒ d d€ d d‚ g k sùt ‚ ˆ  j ˆ d d ˆ d d ˆ d	 d ˆ d d ˆ d ƒ dƒ d„ d… d† d‡ g k sWt ‚ ˆ  j ˆ d ƒ dˆ g k syt ‚ ˆ  j ˆ d d ˆ d ƒ d‰ dŠ g k sªt ‚ ˆ  j ˆ d	 d ˆ d d ˆ d ƒ d‹ dŒ d g k sêt ‚ ˆ  j ˆ d d ˆ d	 d ˆ d d ˆ d ƒ dŽ d d d‘ g k s9t ‚ ˆ  j ˆ d d  ˆ d d! ˆ d	 d" ˆ d d# ˆ d$ ƒ d’ d“ d” d• d– g k s—t ‚ ˆ  j ˆ d ƒ d— g k s¹t ‚ ˆ  j ˆ d d	 ˆ d ƒ d˜ d™ g k sêt ‚ ˆ  j ˆ d	 d
 ˆ d d ˆ d
 ƒ dš d› dœ g k s*t ‚ ˆ  j ˆ d d ˆ d	 d ˆ d d ˆ d ƒ d dž dŸ d  g k syt ‚ ˆ  j ˆ d d ˆ d d ˆ d	 d ˆ d d ˆ d ƒ d¡ d¢ d£ d¤ d¥ g k s×t ‚ ˆ  j ˆ d ƒ d¦ g k sùt ‚ ˆ  j ˆ d d ˆ d ƒ d§ d¨ g k s*t ‚ ˆ  j ˆ d	 d ˆ d d ˆ d ƒ d© dª d« g k sjt ‚ ˆ  j ˆ d d ˆ d	 d ˆ d d ˆ d ƒ d¬ d­ d® d¯ g k s¹t ‚ ˆ  j ˆ d d  ˆ d d! ˆ d	 d" ˆ d d# ˆ d$ ƒ d° d± d² d³ d´ g k st ‚ ˆ  j ˆ d d ƒ dµ d¶ g k s@t ‚ ˆ  j ˆ d	 d ƒ d· g k sft ‚ ˆ  j ˆ d d ƒ d¸ d¹ g k st ‚ ˆ  j ˆ d d ƒ dº g k sµt ‚ ˆ  j ˆ d
 d ƒ d» d¼ g k sÞt ‚ ˆ  j ˆ d- d ƒ d½ g k st ‚ ˆ  j ˆ d. d ƒ d¾ d¿ g k s-t ‚ ˆ  j ˆ d/ d ƒ dÀ g k sSt ‚ ˆ  j ˆ d d ƒ dÁ dÂ g k s|t ‚ ˆ  j ˆ d	 d ˆ d ˆ d ƒ dÃ dÄ dÅ g k s¸t ‚ ˆ  j ˆ d d ˆ d d ƒ dÆ dÇ dÈ dÉ g k sót ‚ ˆ  j ˆ d d	 ˆ d d ˆ d	 d ˆ d d ˆ d0 ƒ dÊ dË dÌ dÍ dÎ g k sQt ‚ ˆ  j ˆ d
 d1 ˆ d d2 ˆ d d3 ƒ dÏ dÐ dÑ dÒ dÓ dÔ g k sžt ‚ ˆ  j d ˆ d- ˆ d
 d4 ˆ d d1 ˆ d d5 ˆ d	 d2 ˆ d d6 ˆ d3 ƒ dÕ dÖ d× dØ dÙ dÚ dÛ g k s	t ‚ ˆ  j d ˆ d. d7 ˆ d
 d8 ˆ d d9 ˆ d d3 ƒ dÜ dÝ dÞ dß dà dá dâ dã g k s}	t ‚ d/ ˆ d d } ˆ  j | ƒ dä då g k s°	t ‚ ˆ  j | d: t d d ƒ ƒt d d ƒ t d% d- ƒ f t d	 d- ƒ t d d ƒ f g k s
t ‚ ˆ  j | d: t d d ƒ ƒt d; d< ƒ t d= d> ƒ f t d. d> ƒ t d/ d< ƒ f g k sp
t ‚ ˆ  j | d: t d d? ƒ ƒt d@ dA ƒ t d= d> ƒ f t d. d> ƒ t dB dA ƒ f g k sÐ
t ‚ ˆ  j | d: t d dC ƒ ƒt d@ dA ƒ t dD dE ƒ f t dF dE ƒ t dB dA ƒ f g k s0t ‚ ˆ  j | d: t d dG ƒ ƒt dH dI ƒ t dJ dK ƒ f t dL dK ƒ t dM dI ƒ f g k st ‚ ˆ  j | d: t d dN ƒ ƒt dO dP ƒ t dJ dK ƒ f t dL dK ƒ t dQ dP ƒ f g k sðt ‚ dR ˆ d dS ˆ d dT ˆ d	 dU ˆ d dV ˆ d } ˆ  j | ƒ t d ƒ t d dW ƒ f t d dW ƒ t d dW ƒ f t d d ƒ t d d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f g k sÁt ‚ ˆ  j | d: t d dG ƒ ƒt d dX ƒ t d dX ƒ f t d dW ƒ t d dW ƒ f t d d ƒ t d d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f g k sft ‚ dæ \ } } } } d] ˆ d d^ ˆ d	 d_ ˆ d d` ˆ da } ˆ  j | ƒ | | f dç dè | | f g k sßt ‚ ˆ  j | d: t d db ƒ ƒt | ƒ t | ƒ f t d | ƒ t d | ƒ f t d | ƒ t d | ƒ f t | ƒ t | ƒ f g k smt ‚ ˆ  j | dc t ƒ\ \ } } } }	 \ }
 } | | k  o²| k  n r| t d ƒ t d ƒ f k r|	 t d ƒ t d ƒ f k r|
 | k  o| k  n st ‚ ˆ  j | dc t d: t d dd ƒ ƒt | ƒ t | ƒ f t d | ƒ t d | ƒ f t d | ƒ t d | ƒ f t | ƒ t | ƒ f g k sªt ‚ d( ˆ d d. ˆ d	 de ˆ d df ˆ dg } ˆ  j | ƒ dé dê dë dì g k st ‚ ˆ  j | d: t d d ƒ ƒt d ƒ t d ƒ f t dh d1 ƒ t di d ƒ f t d ƒ t d ƒ f t dj dk ƒ t dl d/ ƒ f g k s‘t ‚ ˆ d } ˆ  j | dm d ƒg  k s¼t ‚ ˆ  j | dn d ƒg  k sÝt ‚ ˆ  j | ƒ dí g k sût ‚ ˆ  j | dm d ƒdî g k st ‚ ˆ  j | dn d ƒdï g k sCt ‚ ˆ  j | dm d dn d ƒdð g k smt ‚ ˆ d d } ˆ  j | dm t d- d ƒ ƒg  k s¥t ‚ ˆ  j | dm t d- d ƒ ƒt d- d ƒ t d	 d ƒ f g k sêt ‚ ˆ  j | dn t d- d ƒ ƒdñ g k st ‚ ˆ  j | dn t d- d ƒ ƒdò d t d	 d ƒ f g k sVt ‚ ˆ  j | dn t d- d ƒ ƒg  k st ‚ ˆ  j | dn t d- d ƒ ƒt d	 d ƒ t d- d ƒ f g k sÉt ‚ ˆ  j | dm t d- d ƒ ƒdó g k s÷t ‚ ˆ  j | dm t d- d ƒ ƒt d	 d ƒ d f dô g k s8t ‚ dõ dö g }  ˆ  j | dm d ƒ|  k set ‚ ˆ  j | dn d 
ƒ|  k s‡t ‚ ˆ  j | dm d dn d ƒ|  k s®t ‚ t  d t ƒ \ ‰  ‰ t d. d ƒ ˆ d t do dp ƒ ˆ t d> dq ƒ } ˆ  j | ƒ d÷ dø g k st ‚ t  d t ƒ \ ‰  ‰ t t ‡  ‡ f dr †  ƒ d  S(ù   NR   i    i   i   iÿÿÿÿi   i   iþÿÿÿi   i   i   i
   i#   i2   i   i   iU   iá   i  ix   i   iÈ   i   i<   iL  ip  id   i¬  iPÃ  i€© i(   i–   i4!  ièn i Ï) i · iýÿÿÿiüÿÿÿiûÿÿÿiöÿÿÿiìÿÿÿiâÿÿÿiØÿÿÿiÎÿÿÿi   i   i	   i   i   i1   i$   i   ib   iH   i9   iÒ   iÁ   R   i÷ÿÿÿi   iøÿÿÿi   iè  ißÿÿÿiF   i!   i'  i•ÿÿÿiã   ik   i † iÏþÿÿi‡  iðþÿÿiA  i  i1  i@B iŸûÿÿiJ	  ia  i¬Híi¤¿)i_¡À)i¶kïiQœ  i'  i'  IêÏS	  i£7wIçwT   IHë¾N	  l   N•,-UŸ, l   ñ*0B¿de_Ê/ l   Å@FRµ{®.hNÛ^À3Ðma3 l   Yv~1¤bÎ@´Þý
Ml   H_ø‹Zee W
I èvH   t   fastl      @*_kæzÁcP iP   i    i    i   i   i'   i   i   t   inft   supiNU i  i  c              s   ˆ  j  ˆ d ƒ S(   Ni   (   t   dup_isolate_real_roots_sqf(    (   R
   R   (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyR     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   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   (   i   i   (   i(   i(   (   i
   i
   (   i   i   (   i   i   (   i(   i(   (   i2   i2   (   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ÿÿÿÿ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ìÿÿÿ(   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   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þÿÿÿ(   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ÿÿÿÿi    (   i    i   (   i   i   (   i   i   (   i   i   (   iÿÿÿÿi    (   i    i   (   IêÏS	  i£7wIçwT   IHë¾N	  (   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þÿÿÿiÿÿÿÿ(   i   i   (   iÿÿÿÿi    (   i   i   (	   R    R   R   R	   R   t   TrueR   R   R   (   t   IR   t   at   bt   ct   dR   R   t   Bt   CR   R   (    (   R
   R   sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_isolate_real_roots_sqfS   s
   ))'#$(4@(4@(4@(4@)&)&)&)&$ @,!X$<'EEEEEE>3T6T2)s-|!s2s
!!$$**E-?+H.A!"'5!c       	      s^  t  d t ƒ \ ‰  ‰ ˆ  j d ƒ g  k s0 t ‚ ˆ  j d ƒ g  k sK t ‚ ˆ  j d ˆ ƒ d d f d f g k sy t ‚ ˆ  j d ˆ d ƒ d d f d f g k s« t ‚ ˆ  j ˆ d ˆ ƒ d	 d	 f d f d d f d f g k sì t ‚ ˆ  j ˆ d ˆ ƒ d d f d f d d f d f g k s-t ‚ ˆ  j ˆ d ˆ d ƒ g  k sTt ‚ d
 d	 f d f d d f d f g }  ˆ  j ˆ d d ƒ |  k s›t ‚ ˆ  j ˆ d d ƒ |  k s¿t ‚ 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! } ˆ  j | ƒ } ˆ  j | ƒ t d ƒ t d d ƒ f d f t d d ƒ t d d ƒ f d f t d ƒ t d d ƒ f d f t d d ƒ t d d ƒ f d f t d d ƒ t d ƒ f d f g k s3t ‚ ˆ  j | ƒ t d ƒ t d d ƒ f t d d ƒ t d d ƒ f t d ƒ t d d ƒ f t d d ƒ t d d ƒ f t d d ƒ t d ƒ f g k sÐt ‚ ˆ  j | ƒ t d ƒ t d d ƒ f d f t d d ƒ t d d ƒ f d f t d ƒ t d d ƒ f d f t d d ƒ t d d ƒ f d f t d d ƒ t d ƒ f d f g k s‹t ‚ ˆ d } ˆ  j | d" d ƒg  k s¶t ‚ ˆ  j | d# d ƒg  k s×t ‚ ˆ  j | ƒ d d f d f g k st ‚ ˆ  j | d" d ƒd d f d f g k s1t ‚ ˆ  j | d# d ƒd d f d f g k sat ‚ ˆ  j | d" d d# d ƒd d f d f g k s—t ‚ ˆ d d ˆ d d } ˆ  j | d" t d d ƒ ƒg  k sÛt ‚ ˆ  j | d" t d d ƒ ƒt d d ƒ t d d ƒ f d f g k s&t ‚ ˆ  j | d# t d d ƒ ƒd
 d	 f d f g k s_t ‚ ˆ  j | d# t d d ƒ ƒd
 d	 f d f d t d d ƒ f d f g k s°t ‚ ˆ  j | d# t d d ƒ ƒg  k sÛt ‚ ˆ  j | d# t d d ƒ ƒt d d ƒ t d d ƒ f d f g k s)t ‚ ˆ  j | d" t d d ƒ ƒd d f d f g k sct ‚ ˆ  j | d" t d d ƒ ƒt d d ƒ d	 f d f d d f d f g k s¶t ‚ d
 d	 f d f d d f d f g }  ˆ  j | d" d
 ƒ|  k sût ‚ ˆ  j | d# d 
ƒ|  k st ‚ ˆ  j | d" d
 d# d ƒ|  k sDt ‚ ˆ d d ˆ d ˆ d d ˆ d d ˆ d d ˆ d d ˆ d d ˆ d } ˆ  j | d$ t ƒd
 d	 f d f d d f d f d d f d f d d f d f g k sût ‚ ˆ  j | d$ t ƒd
 d	 f d d d d
 g f d d f d d d g f d d f d d d	 g f d d f d d d d
 g f g k s‚	t ‚ ˆ 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 ˆ dF dG ˆ dH dI ˆ dJ dK ˆ d dL ˆ dM dK ˆ dN dI ˆ dO dG ˆ dP dE ˆ dQ dC ˆ dR dA ˆ dS d? ˆ d d= ˆ dT d; ˆ d d9 ˆ d d7 ˆ d d5 ˆ d d3 ˆ d d1 ˆ d d/ ˆ d d- ˆ d d+ ˆ d dU ˆ d dV ˆ d d* ˆ d dW ˆ d dX ˆ d } ˆ  j | | ƒ d t d d ƒ f d f t d d ƒ t d d ƒ f d f t d d ƒ d f d f d d f d f d dJ f d f g k s,t ‚ t  d t	 ƒ \ ‰  ‰ t
 t ‡  ‡ f dY †  ƒ d  S(Z   NR   i    i   i   i   i   i   i   iÿÿÿÿiþÿÿÿi   i   i`   i   i   i   i¨  i   i?  i
   i@  i	   iì#  i   i(  iGU  i   i6  iºT  i h  id  iÀ<  iÈ  R   R   t   basisi-   i,   iÞ  i+   i.   iL;  i#íŽ i(   iÈ¸0i'   iÏ„i&   ijÛªAi%   IÕ+øò    i$   I\2,   i#   I7è@	   i"   Is½±   i!   IEØÐÙ7   i    I`Í&w   i   Iê}£Ùæ   i   I¬Vóa—  i   IN¶²V  i   IX®e<Ç  i   I*x¼Ä  i   I4poªP  i   IÞsÄ-  I°»¶þ|  i   i   i   i   i   i   i   i   i‚ê iq} i  i/   c              s   ˆ  j  ˆ d ƒ S(   Ni   (   t   dup_isolate_real_roots(    (   R
   R   (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyR   P  R   (   R    R   R(   R	   t   dup_sqf_partR   R   t   FalseR   R   R   R   (   R   R   t   g(    (   R
   R   sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_isolate_real_roots  sl    .2AA'$#$ªaNOBaN
!!*006*K9Q+N:S$!"'ZKu&ÿ ÷~c       	      s!
  t  d t ƒ \ ‰  ‰ ˆ  j ˆ d ˆ ˆ g ƒ d i d d 6f d i d d 6d d 6f g k se t ‚ ˆ  j ˆ d ˆ ˆ g ƒ d i d d 6d d 6f d i d d 6f g k sµ t ‚ ˆ  j ˆ d ˆ d ˆ d ˆ d ˆ d ˆ d g ƒ t d ƒ t d ƒ f i d d 6f t d ƒ t d ƒ f i d d 6d d 6f t d ƒ t d ƒ f i d d 6d d 6d d 6f g k syt ‚ ˆ  j ˆ d ˆ d ˆ d ˆ d ˆ d ˆ d g ƒ t d ƒ t d ƒ f i d d 6d d 6f t d ƒ t d ƒ f i d d 6d d 6f t d ƒ t d ƒ f i d d 6d d 6f g k s=t ‚ ˆ d d ˆ d d ˆ d }  } ˆ  j |  | g d	 t d
 d ƒ ƒg  k s’t ‚ ˆ  j |  | g d	 t d
 d ƒ ƒt d
 d ƒ t d d ƒ f i d d 6f g k sêt ‚ ˆ  j |  | g d t d
 d ƒ ƒd i d d 6f d i d d 6f g k s:t ‚ ˆ  j |  | g d t d
 d ƒ ƒd i d d 6f d i d d 6f d t d d ƒ f i d d 6f g k s©t ‚ ˆ  j |  | g d t d
 d ƒ ƒg  k sÚt ‚ ˆ  j |  | g d t d
 d ƒ ƒt d d ƒ t d
 d ƒ f i d d 6f g k s5t ‚ ˆ  j |  | g d	 t d
 d ƒ ƒd i d d 6f d i d d 6f g k s†t ‚ ˆ  j |  | g d	 t d
 d ƒ ƒt d d ƒ d f i d d 6f d i d d 6f d  i d d 6f g k s÷t ‚ d ˆ d d ˆ d d }  } ˆ  j |  | g ƒ t d ƒ t d ƒ f i d d 6f t d ƒ t d ƒ f i d d 6f t d ƒ t d ƒ f i d d 6f t d ƒ t d ƒ f i d d 6f g k sÄt ‚ ˆ  j |  | g d t ƒt d d ƒ t d d ƒ f i d d 6f t d ƒ t d d ƒ f i d d 6f t d d ƒ t d ƒ f i d d 6f t d d ƒ t d d ƒ f i d d 6f g k s‰t ‚ ˆ d d ˆ d ˆ d d ˆ d }  } ˆ  j |  | g ƒ t d ƒ t d ƒ f i d d 6d d 6f t d ƒ t d ƒ f i d d 6f t d ƒ t d ƒ f i d d 6d d 6f g k sMt ‚ ˆ d d ˆ ˆ d ˆ d d ˆ d d ˆ d }  } ˆ  j |  | g ƒ t d ƒ t d ƒ f i d d 6d d 6f t d ƒ t d ƒ f i d d 6d d 6f t d ƒ t d ƒ f i d d 6f t d ƒ t d ƒ f i d d 6d d 6f g k sJt ‚ ˆ d d ˆ d ˆ d
 d ˆ d d ˆ d d ˆ d d ˆ d d ˆ d ˆ d d ˆ d d ˆ d d ˆ d d ˆ }  } ˆ  j |  | g d t ƒd! i d d 6f d" i d d 6d d 6f d# i d d 6d d 6f d$ i d d 6f g k sP	t ‚ ˆ  j |  | g d t ƒd% i d d 6d d d g f d& i d d 6d d 6d d g f d' i d d 6d d 6d d g f d( i d d 6d d d g f g k sï	t ‚ t  d t ƒ \ ‰  ‰ t t	 ‡  ‡ f d †  ƒ d  S()   NR   i   iÿÿÿÿi   i    i   i   i   R   i   R   iþÿÿÿt   stricti	   i   i   i   i   R'   c              s   ˆ  j  ˆ d g ƒ S(   Ni   (   t   dup_isolate_real_roots_list(    (   R
   R   (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyR     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   i   (   i   i   (   iþÿÿÿiÿÿÿÿ(   i    i    (   i   i   (   i   i   (
   R    R   R.   R	   R   R   R*   R   R   R   (   R   R+   (    (   R
   R   sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt    test_dup_isolate_real_roots_listS  s\    666Ž6Ž%0!7!/!N1"9"/"O!GSQ\-…=TZ‘]<Kc          C   sd  t  d t ƒ \ }  } | d d } | d d } |  j | | g ƒ t d d ƒ t d d ƒ f i d	 d
 6f t d d ƒ t d d ƒ f i d	 d	 6f g k s¢ t ‚ t  d t ƒ \ }  } t d	 d ƒ | d d	 } t d	 d ƒ | d d	 } |  j | | g ƒ t d d ƒ t d d ƒ f i d	 d
 6f t d d ƒ t d d ƒ f i d	 d	 6f g k s`t ‚ d  S(   NR   i   iÈ   iÉ   iK   i   ie   i#   i   i    i5  ik   i	   (   R    R   R.   R   R	   (   R
   R   R   R+   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt#   test_dup_isolate_real_roots_list_QQ’  s    _c          C   s½  t  d t ƒ \ }  } |  j d ƒ d k s0 t ‚ |  j d ƒ d k sK t ‚ | d } |  j | ƒ d k sp t ‚ |  j | d d ƒd k s‘ t ‚ |  j | d d ƒd k s² t ‚ |  j | d d ƒd k sÓ t ‚ |  j | d d d d ƒd k sú t ‚ |  j | d d d d ƒd k s!t ‚ |  j | d d d d ƒd k sHt ‚ | d d } |  j | ƒ d k sqt ‚ |  j | d d ƒd k s’t ‚ |  j | d d d d ƒd k s¹t ‚ d  S(	   NR   i    i   i   R   R   i   iÿÿÿÿ(   R    R   t   dup_count_real_rootsR	   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_real_roots¤  s    
!!!'''!i   i    c          C   s±   t  d t ƒ \ }  } | d } |  j | t t ƒ d k s@ t ‚ |  j | t t ƒ d k sa t ‚ | d } |  j | t t ƒ d k sŒ t ‚ |  j | t t ƒ d k s­ t ‚ d  S(   NR   i   i    (   R    R   t   dup_count_complex_rootsR    R!   R	   R"   R#   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_complex_roots_1½  s    
!!
!c          C   s[  t  d t ƒ \ }  } | d | } |  j | t t ƒ d k sD t ‚ |  j | t t ƒ d k se t ‚ | d | } |  j | t t ƒ d k s• t ‚ |  j | t t ƒ d k s¶ t ‚ | d | } |  j | t t ƒ d k så t ‚ |  j | t t ƒ d k st ‚ | d | } |  j | t t ƒ d k s6t ‚ |  j | t t ƒ d k sWt ‚ d  S(   NR   i   i   (   R    R   R3   R    R!   R	   R"   R#   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_complex_roots_2Ë  s    !!!!!!!c          C   s
  t  d t ƒ \ }  } | d d } |  j | t t ƒ d k sD t ‚ |  j | t t ƒ d k se t ‚ | d | } |  j | t t ƒ d k s” t ‚ |  j | t t ƒ d k sµ t ‚ | d | } |  j | t t ƒ d k så t ‚ |  j | t t ƒ d k st ‚ d  S(   NR   i   i   i   (   R    R   R3   R    R!   R	   R"   R#   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_complex_roots_3ã  s    !!!!!c          C   s  t  d t ƒ \ }  } | d d } |  j | t t ƒ d k sD t ‚ |  j | t t ƒ d k se t ‚ | d | } |  j | t t ƒ d k s” t ‚ |  j | t t ƒ d k sµ t ‚ | d | } |  j | t t ƒ d k så t ‚ |  j | t t ƒ d k st ‚ | d | d | d } |  j | t t ƒ d k sAt ‚ |  j | t t ƒ d k sbt ‚ | d | d | d | } |  j | t t ƒ d k s¡t ‚ |  j | t t ƒ d k sÂt ‚ | d | d | d | } |  j | t t ƒ d k st ‚ |  j | t t ƒ d k s#t ‚ | d d } |  j | t t ƒ d k sRt ‚ |  j | t t ƒ d k sst ‚ | d | } |  j | t t ƒ d k s¢t ‚ |  j | t t ƒ d k sÃt ‚ | d | } |  j | t t ƒ d k sót ‚ |  j | t t ƒ d k st ‚ d  S(   NR   i   i   i   i   i   (   R    R   R3   R    R!   R	   R"   R#   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_complex_roots_4ö  s8    !!!!!!!!!!!!!!!!!c          C   sÕ  t  d t ƒ \ }  } | d d | d } |  j | t t ƒ d k sL t ‚ |  j | t t ƒ d k sm t ‚ | d | d d } |  j | t t ƒ d k s¤ t ‚ |  j | t t ƒ d k sÅ t ‚ | d | d d | } |  j | t t ƒ d k s t ‚ |  j | t t ƒ d k s!t ‚ | d d | d d | d } |  j | t t ƒ d k sdt ‚ |  j | t t ƒ d k s…t ‚ | d d | d d | d d | } |  j | t t ƒ d k sÐt ‚ |  j | t t ƒ d k sñt ‚ | d d | d | d d | d } |  j | t t ƒ d k s<t ‚ |  j | t t ƒ d k s]t ‚ | d d | d | d d | d d | } |  j | t t ƒ d k s°t ‚ |  j | t t ƒ d k sÑt ‚ d  S(   NR   i   i    i   i   i   i   (   R    R   R3   R    R!   R	   R"   R#   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_complex_roots_5'  s,    !!!!!!"!!*!!*!!2!c          C   sÕ  t  d t ƒ \ }  } | d d | d } |  j | t t ƒ d k sL t ‚ |  j | t t ƒ d k sm t ‚ | d d | d d | d } |  j | t t ƒ d k s° t ‚ |  j | t t ƒ d k sÑ t ‚ | d d | d d | d d | } |  j | t t ƒ d k st ‚ |  j | t t ƒ d k s=t ‚ | d | d d } |  j | t t ƒ d k stt ‚ |  j | t t ƒ d k s•t ‚ | d | d d | } |  j | t t ƒ d k sÐt ‚ |  j | t t ƒ d k sñt ‚ | d d | d | d d | d } |  j | t t ƒ d k s<t ‚ |  j | t t ƒ d k s]t ‚ | d d | d | d d | d d | } |  j | t t ƒ d k s°t ‚ |  j | t t ƒ d k sÑt ‚ d  S(   NR   i   i   i   i   i   (   R    R   R3   R    R!   R	   R"   R#   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_complex_roots_6N  s,    !!"!!*!!!!!!*!!2!c          C   sí  t  d t ƒ \ }  } | d d } |  j | t t ƒ d k sD t ‚ |  j | t t ƒ d k se t ‚ | d d | d d | d } |  j | t t ƒ d k s¨ t ‚ |  j | t t ƒ d k sÉ t ‚ | d d | d d | d d } |  j | t t ƒ d k st ‚ |  j | t t ƒ d k s1t ‚ | d | d d | d } |  j | t t ƒ d k spt ‚ |  j | t t ƒ d k s‘t ‚ | d | d d | d d | } |  j | t t ƒ d k sØt ‚ |  j | t t ƒ d k sùt ‚ | d | d d | d } |  j | t t ƒ d k s8t ‚ |  j | t t ƒ d k sYt ‚ | d | d d | d d | } |  j | t t ƒ d k s t ‚ |  j | t t ƒ d k sÁt ‚ | d | d d | d d } |  j | t t ƒ d k st ‚ |  j | t t ƒ d k s%t ‚ | d	 | d d | d d | } |  j | t t ƒ d	 k slt ‚ |  j | t t ƒ d k st ‚ | d d | d d } |  j | t t ƒ d k sÈt ‚ |  j | t t ƒ d k sét ‚ d  S(
   NR   i   i   i   i   i   i   i   i   (   R    R   R3   R    R!   R	   R"   R#   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_complex_roots_7u  s>    !!"!!&!!!!&!!!!&!!"!!&!!!c          C   sý   t  d t ƒ \ }  } | d d | d d | } |  j | t t ƒ d k sT t ‚ |  j | t t ƒ d k su t ‚ | d d | d d | d d	 | d d | d d
 | } |  j | t t ƒ d k sØ t ‚ |  j | t t ƒ d k sù t ‚ d  S(   NR   i	   i   i   i   i   i   i   i   i   (   R    R   R3   R    R!   R	   R"   R#   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_count_complex_roots_8«  s    !!B!c          C   s„   t  d t ƒ \ }  } | d | } |  j | ƒ d k s> t ‚ |  j | d d ƒd k s_ t ‚ |  j | d d ƒd k s€ t ‚ d  S(	   NR   i   R   i    i   R   (   i    i    (   i    i    (   R    R   R3   R	   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt%   test_dup_count_complex_roots_implicit¹  s
    !c       	   C   së  t  d t ƒ \ }  } | d | } t d ƒ t d ƒ f t d ƒ t d ƒ f } } |  j | | | ƒ d k sv t ‚ |  j | | | d d g ƒd k s  t ‚ |  j | | | d d	 g ƒd k sÊ t ‚ |  j | | | d d d	 g ƒd
 k s÷ t ‚ |  j | | | d d g ƒd k s!t ‚ |  j | | | d d g ƒd k sKt ‚ |  j | | | d d d g ƒd k sxt ‚ |  j | | | d d	 d d d g ƒd
 k s«t ‚ |  j | | | d d g ƒd k sÕt ‚ |  j | | | d d g ƒd k sÿt ‚ |  j | | | d d d g ƒd
 k s,t ‚ |  j | | | d d d d g ƒd k s\t ‚ |  j | | | d d d d d	 g ƒd k st ‚ t d ƒ t d ƒ f t d ƒ t d ƒ f } } |  j | | | d t ƒd k sçt ‚ d  S(   NR   i   i   i    i   t   excludet   Si   t   Ni   t   Et   Wt   SWt   SE(   R    R   R   R3   R	   R   (   R
   R   R   R    R!   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt$   test_dup_count_complex_roots_excludeÅ  s$    2!**-**-3**-031c       	   C   sÅ  t  d t ƒ \ }  } | d d | d } |  j | ƒ d d f d d  f g k sX t ‚ g  |  j | d t ƒD] } | j ƒ  ^ qn d! d" f d# d$ f g k s¤ t ‚ |  j | d t d	 d
 ƒ ƒt d d ƒ t d d ƒ f t d d ƒ t d d ƒ f f t d d ƒ t d d ƒ f t d d ƒ t d d ƒ f f g k sBt ‚ |  j | d t d	 d ƒ ƒt d d ƒ t d d ƒ f t d d ƒ t d d ƒ f f t d d ƒ t d d ƒ f t d d ƒ t d d ƒ f f g k sàt ‚ d | d d | d d | d d | d } |  j | ƒ t d d ƒ t d d ƒ f d% f t d d ƒ d f d t d d ƒ f f d t d d ƒ f t d d ƒ d f f d& t d d ƒ t d d ƒ f f g k sÁt ‚ d  S('   NR   i   i   i    iúÿÿÿi   t   blackboxR   i   i
   i   i   i!   i    i-   id   iÿ   i   ik  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   t   dup_isolate_complex_roots_sqfR	   R   t   as_tupleR   (   R
   R   R   t   r(    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt"   test_dup_isolate_complex_roots_sqfç  s     !+!;H;H2Kc          C   su  t  d t ƒ \ }  } d | d | d d | d d | } |  j | ƒ d d g d t d d ƒ f t d d ƒ d f f d t d d ƒ t d d ƒ f f g f k s¯ t ‚ |  j | d t d	 d
 ƒ ƒt d d ƒ t d d ƒ f d g t d d ƒ t d d ƒ f t d d ƒ t d d ƒ f f t d d ƒ t d d ƒ f t d d ƒ t d d ƒ f f g f k sqt ‚ d  S(   NR   i   i   i   i   iÿÿÿÿi    R   i   i
   iùÿÿÿi   iúÿÿÿi   i#   i@   i    iA   (   iÿÿÿÿi    (   i    i    (   i    i    (   i    i    (   R    R   t   dup_isolate_all_roots_sqfR   R	   (   R
   R   R   (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_isolate_all_roots_sqfþ  s    *	[!c             sÞ  t  d t ƒ \ ‰  }  d |  d |  d d |  d d |  ‰ ˆ  j ˆ ƒ d d g d t d d ƒ f t d d ƒ d f f d f d t d d ƒ t d d ƒ f f d f g f k s» t ‚ ˆ  j ˆ d	 t d d
 ƒ ƒt d d ƒ t d d ƒ f d f d g t d d ƒ t d d ƒ f t d d ƒ t d d ƒ f f d f t d d ƒ t d d ƒ f t d d ƒ t d d ƒ f f d f g f k st ‚ |  d |  d d |  d d |  d |  d ‰ t t ‡  ‡ f d †  ƒ d  S(   NR   i   i   i   i   iÿÿÿÿi    i   R   i
   iùÿÿÿi   iúÿÿÿi   i#   i@   i    iA   c              s   ˆ  j  ˆ ƒ S(   N(   t   dup_isolate_all_roots(    (   R
   R   (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyR     R   (   iÿÿÿÿi    (   (   iÿÿÿÿi    i   (   i    i    (   (   i    i    i   (   i    i    (   i    i    (   (   i    i    i   (   R    R   RL   R   R	   R   t   NotImplementedError(   R   (    (   R
   R   sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   test_dup_isolate_all_roots  s    *	.9'AQ2N($   t   __doc__t   sympy.polys.ringsR    t   sympy.polys.domainsR   R   R   t   sympy.polys.polyerrorsR   R   t   sympy.utilities.pytestR   R   R   R&   R,   R/   R0   R2   R    R!   R"   R#   R4   R5   R6   R7   R8   R9   R:   R;   R<   RD   RI   RK   RN   (    (    (    sC   lib/python2.7/site-packages/sympy/polys/tests/test_rootisolation.pyt   <module>   s4   	
	A	±	O	?		31				1	'	'	6			"		