ó
Ê½÷Xc           @` sì   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m	 Z	 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 d  d l m Z m Z d „  Z d	 „  Z d
 „  Z d „  Z e d k rè e ƒ  n  d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_equalt   assert_almost_equalt   assert_allcloset   assert_t   run_module_suite(   t   assert_func_equal(   t
   ellip_harmt   ellip_harm_2t   ellip_normal(   t   IntegrationWarning(   t   sqrtt   pic          ` s;  d „  ‰  d „  ‰ d „  ‰ ‡ ‡ f d †  }  ‡  f d †  } d t  d ƒ d d	 t  d
 ƒ d d d f d t  d ƒ d d t  d ƒ d d d f g } t j ƒ  ™ t j d d t ƒx~ | D]v } t | ƒ } | | Œ  } |  | Œ  \ } } t | | d d d d d | ƒt t | | ƒ d t | ƒ k  | ƒ q· WWd  QXd  S(   Nc         S` s¥   t  |  d | d | d | | ƒ } t  |  d | | d | | | d | | | ƒ } t  |  d | | | d | | d | | | ƒ } | | | f S(   Ni   (   R   (   t   lambda1t   mut   nut   h2t   k2t   xt   yt   z(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   change_coefficient   s    (88c         S` sB   t  | | | | |  ƒ t  | | | | | ƒ t  | | | | | ƒ S(   N(   R	   (   R   R   R   t   nt   pR   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   solid_int_ellip   s    c         S` sB   t  | | | | |  ƒ t | | | | | ƒ t | | | | | ƒ S(   N(   R
   R	   (   R   R   R   R   R   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   solid_int_ellip2   s    c         ` sè   d } d }	 xÏ t  d ƒ D]Á }
 d } x„ t  d d |
 d ƒ D]k } | d t ˆ  | | | |
 | | | ƒ ˆ |  | | |
 | | | ƒ t | | |
 | ƒ d |
 d 7} q= Wt | ƒ d | t |	 ƒ k  rÐ Pn  |	 | 7}	 q W|	 | f S(   Ng:Œ0âŽyE>i    i   i   i   i   gš™™™™™¹?(   t   rangeR   R   t   abs(   R   t   mu1t   nu1t   lambda2t   mu2t   nu2R   R   t   tolt   sum1R   t   xsumR   (   R   R   (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt	   summation"   s    ?' c         ` sv   ˆ  |  | | | | ƒ \ } }	 }
 ˆ  | | | | | ƒ \ } } } t  | | d | |	 d | |
 d ƒ } d | S(   Ni   i   (   R   (   R   R   R   R    R!   R"   R   R   t   x1t   y1t   z1t   x2t   y2t   z2t   res(   R   (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt	   potential0   s    !!,ix   i   i   i)   i   i   i   i   gš™™™™™	@i   i   g333333@i   t   ignoret   categoryt   atoli    t   rtolg:Œ0âŽyE>t   err_msgi
   (	   R   t   warningst   catch_warningst   simplefilterR   t   reprR   R   R   (   R&   R.   t   ptsR   R3   t   exactt   resultt	   last_term(    (   R   R   R   sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   test_ellip_potential   s    			'-c       
   ` s8  d „  }  d „  } d „  } d „  } d „  } d „  } d „  } d „  } d	 „  } d
 „  }	 d „  }
 d „  } d „  } d „  } d „  } d „  } i |  d! 6| d" 6| d# 6| d$ 6| d% 6| d& 6| d' 6| d( 6| d) 6|
 d* 6|	 d+ 6| d, 6| d- 6| d. 6| d/ 6| d0 6‰ ‡ f d †  ‰  t  j ˆ  ƒ ‰  ‡  f d †  } t  j j d ƒ t  j j d d d ƒ} | d t  j j d d | j ƒ} g  } xo t d ƒ D]a } xX t d d | d ƒ D]? } | j | | | t  j | j ƒ | t  j | j ƒ f ƒ q¯Wq‘Wt  j	 | ƒ } t
 j d t ƒ  t t | | d d  ƒWd  QXd  S(1   Nc         S` s   d t  S(   Ni   (   R   (   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G01H   s    c         S` s   d t  |  | d S(   Ni   i   (   R   (   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G11K   s    c         S` s   d t  |  | |  d S(   Ni   i   (   R   (   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G12N   s    c         S` s   d t  | | |  d S(   Ni   i   (   R   (   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G13Q   s    c         S` sœ   d |  d | d d |  | |  d | d d |  d | d t  |  d | d |  | ƒ d |  d | d d |  | |  | } d t d | S(   Ni   i   i   iþÿÿÿi   i   i•  (   R   R   (   R   R   R-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G22T   s    CIc         S` sœ   d |  d | d d |  | |  d | d d |  d | d t  |  d | d |  | ƒ d |  d | d d |  | |  | } d t d | S(   Ni   i   i   i   i   i•  (   R   R   (   R   R   R-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G21Y   s    Œc         S` s    d t  |  d | | |  d S(   Ni   i   i   (   R   (   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G23^   s    c         S` s    d t  |  | d | |  d S(   Ni   i   i   (   R   (   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G24a   s    c         S` s    d t  |  | | |  d d S(   Ni   i   i   (   R   (   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G25d   s    c         S` s¬   d |  d | d d |  | |  d | d d |  d | d t  d |  d | d d |  | ƒ d |  d | d d	 |  | |  | } d t d
 | |  | S(   Ni   i   i$   i   i.   i   iøÿÿÿi   i   iE3  (   R   R   (   R   R   R-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G32g   s    {c         S` s¬   d |  d | d d |  | |  d | d d |  d | d t  d |  d | d d |  | ƒ d |  d | d d	 |  | |  | } d t d
 |  | | S(   Ni   i   i$   i   i.   i   i   i   i   iE3  (   R   R   (   R   R   R-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G31m   s    {c         S` sÄ   d |  d d | d d |  d | d |  | d d |  d | d t  |  d d | d |  | ƒ d	 |  d d
 | d d |  d | d |  | d } d t d |  | |  | S(   Ni   i   i   i   i   i   i"   i   iúÿÿÿi   i	   i   iE3  (   R   R   (   R   R   R-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G34s   s    “c         S` sÄ   d |  d d | d d |  d | d |  | d d |  d | d t  |  d d | d |  | ƒ d |  d d	 | d d
 |  d | d |  | d } d t d |  | |  | S(   Ni   i   i   i   i   i   i"   i   i   i	   i   iE3  (   R   R   (   R   R   R-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G33y   s    “c         S` sÄ   d |  d d | d d |  d | d |  | d d |  d | d t  d |  d | d |  | ƒ d	 |  d d | d d
 |  d | d |  | d } d t d | | |  | S(   Ni   i   i   i   i   i   i"   i   iøÿÿÿi   i	   iE3  (   R   R   (   R   R   R-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G36   s    “c         S` sÄ   d |  d d | d d |  d | d |  | d d |  d | d t  d |  d | d |  | ƒ d	 |  d d | d d
 |  d | d |  | d } d t d | | |  | S(   Ni   i   i   i   i   i   i"   i   i   i   i	   iE3  (   R   R   (   R   R   R-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G35…   s    “c         S` s(   d t  |  d | d | |  d d S(   Ni   i   ii   (   R   (   R   R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   G37‹   s    i    i   i   i   i   i   i   i   c         ` s   ˆ  |  | f } | | | ƒ S(   N(    (   R   R   R   R   t   func(   t   known_funcs(    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   _ellip_norm“   s    c         ` s   ˆ  | | |  | ƒ S(   N(    (   R   R   R   R   (   RO   (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   ellip_normal_known˜   s    iÒ  g      à?t   sizet   recordR2   gê-™—q=(   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   (   t   npt	   vectorizet   randomt   seedt   paretoRQ   R   t   appendt   onest   arrayR4   R5   t   TrueR   R   (   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   RP   R   R   t   pointsR   R   (    (   RO   RN   sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   test_ellip_normF   sB    																#Ac          C` sì   d „  }  t  j d t ƒ Ë t |  d d d ƒ d d t d d ƒ ƒ t t d d d d d ƒ d	 ƒ t t d d d d d ƒ d
 ƒ t t d d d d d ƒ d ƒ t t d d d d d ƒ d ƒ t t d d d d d ƒ d ƒ Wd  QXd  S(   Nc      	   S` s–   t  |  | d d | ƒ d t |  | d d | ƒ t  |  | d d | ƒ d t |  | d d | ƒ t  |  | d d | ƒ d t |  | d d | ƒ } | S(   Ni   i   i   (   R
   R	   (   R   R   t   sR-   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   I1«   s    _3RR   i   i   i
   i   id   i   g$Ðâ ;´Q?g¬¾yoVQ?i   g©Ã<i`Q?i   gÏ™ar~Q?gTzLÛ°Q?i_   i\   (   R4   R5   R[   R   R   R
   (   R_   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   test_ellip_harm_2©   s    	+c       
   ` se  d „  }  d „  } d „  } d „  } d „  } d „  } d „  } d „  } d	 „  } d
 „  }	 d „  }
 d „  } d „  } d „  } d „  } d „  } t  t d d d d d d d ƒ t d d d d d ƒ ƒ i |  d" 6| d# 6| d$ 6| d% 6| d& 6| d' 6| d( 6| d) 6| d* 6|	 d+ 6|
 d, 6| d- 6| d. 6| d/ 6| d0 6| d1 6‰  g  ‰ ‡  ‡ f d †  } t j j d ƒ t j j d d d ƒ} | d t j j d d | j ƒ} t j j d d | j ƒ} g  } xx t | j ƒ D]g } x^ t d ƒ D]P } xG t d d | d ƒ D]. } | j | | | | | | | | f ƒ qWqäWqÑWt j	 | ƒ } t
 t | | d  d! ƒd  S(2   Nc         S` s   d S(   Ni   (    (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E01¾   s    c         S` s   | S(   N(    (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E11Á   s    c         S` s   t  t | | |  ƒ ƒ S(   N(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E12Ä   s    c         S` s   t  t | | | ƒ ƒ S(   N(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E13Ç   s    c         S` s<   | | d |  | t  t |  | |  | d |  | ƒ ƒ S(   Ni   i   gUUUUUUÕ?(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E21Ê   s    c         S` s<   | | d |  | t  t |  | |  | d |  | ƒ ƒ S(   Ni   i   gUUUUUUÕ?(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E22Í   s    c         S` s   | t  t | | |  ƒ ƒ S(   N(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E23Ð   s    c         S` s   | t  t | | | ƒ ƒ S(   N(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E24Ó   s    c         S` s$   t  t | | |  | | | ƒ ƒ S(   N(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E25Ö   s    c         S` sF   | | | | d d |  | t  d |  | |  | d |  | ƒ S(   Ni   i   i   i   (   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E31Ù   s    3c         S` sF   | | | | d d |  | t  d |  | |  | d |  | ƒ S(   Ni   i   i   i   (   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E32Ý   s    3c      
   S` s`   t  t | | |  ƒ ƒ | | d |  d | t  t |  d | |  d | d |  | ƒ ƒ S(   Ni   i   i   gš™™™™™É?(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E33á   s    5c      
   S` s`   t  t | | |  ƒ ƒ | | d |  d | t  t |  d | |  d | d |  | ƒ ƒ S(   Ni   i   i   gš™™™™™É?(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E34å   s    5c      	   S` s`   t  t | | | ƒ ƒ | | d d |  | t  t d |  | d |  | d |  | ƒ ƒ S(   Ni   i   i   gš™™™™™É?(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E35é   s    9c      	   S` s`   t  t | | | ƒ ƒ | | d d |  | t  t d |  | d |  | d |  | ƒ ƒ S(   Ni   i   i   gš™™™™™É?(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E36í   s    9c         S` s(   | t  t | | |  | | | ƒ ƒ S(   N(   R   R   (   R   R   R^   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   E37ñ   s    i   i   i   i   g      @i    i   i   i   i   c         ` sg   x` t  |  j ƒ D]O } ˆ  t | | ƒ t | | ƒ f } ˆ j | |  | | | | | ƒ ƒ q Wˆ S(   N(   R   RQ   t   intRX   (   R   R   R   R   R^   t   iRM   (   RN   t	   point_ref(    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   ellip_harm_knownþ   s    $)iÒ  g      à?RQ   i   R2   gê-™—q=(   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	   RS   RU   RV   RW   RQ   R   RX   RZ   R   (   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Rl   Rm   Rn   Ro   Rp   Rt   R   R   R^   R\   Rr   R   R   (    (   RN   Rs   sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   test_ellip_harm¼   sF    																#4t   __main__(   t
   __future__R    R   R   R4   t   numpyRS   t   numpy.testingR   R   R   R   R   t   scipy.special._testutilsR   t   scipy.specialR	   R
   R   t   scipy.integrateR   R   R   R<   R]   R`   Ru   t   __name__(    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_ellip_harm.pyt   <module>   s   (	3	c		U