ó
î&]\c           @` sÔ   d  d l  m Z m Z m Z d  d l Z d  d l m Z m Z m	 Z	 m
 Z
 d  d l 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 d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_equalt   assert_almost_equalt   assert_allcloset   assert_(   t   suppress_warnings(   t   assert_func_equal(   t
   ellip_harmt   ellip_harm_2t   ellip_normal(   t   IntegrationWarning(   t   sqrtt   pic    	      ` sG  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 d ƒ | j t d ƒ 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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt	   potential/   s    !!,ix   i   i   i)   i   i   i   i   gš™™™™™	@i   i   g333333@i   s    The occurrence of roundoff errors"   The maximum number of subdivisionst   atoli    t   rtolg:Œ0âŽyE>t   err_msgi
   (   R   R   t   filterR   t   reprR   R   R   (	   R&   R.   t   ptst   supR   R1   t   exactt   resultt	   last_term(    (   R   R   R   sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   test_ellip_potential   s     			'-c       
   ` sA  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 t d ƒ t t | | d d  ƒWd  QXd  S(1   Nc         S` s   d t  S(   Ni   (   R   (   R   R   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   G01H   s    c         S` s   d t  |  | d S(   Ni   i   (   R   (   R   R   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   G11K   s    c         S` s   d t  |  | |  d S(   Ni   i   (   R   (   R   R   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   G12N   s    c         S` s   d t  | | |  d S(   Ni   i   (   R   (   R   R   (    (    sB   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   G21Y   s    Œc         S` s    d t  |  d | | |  d S(   Ni   i   i   (   R   (   R   R   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   G23^   s    c         S` s    d t  |  | d | |  d S(   Ni   i   i   (   R   (   R   R   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   G24a   s    c         S` s    d t  |  | | |  d d S(   Ni   i   i   (   R   (   R   R   (    (    sB   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   _ellip_norm“   s    c         ` s   ˆ  | | |  | ƒ S(   N(    (   R   R   R   R   (   RL   (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   ellip_normal_known˜   s    iÒ  g      à?t   sizes    The occurrence of roundoff errorR0   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   paretoRN   R   t   appendt   onest   arrayR   R2   R   R   R   (   R:   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   RI   RM   R   R   t   pointsR   R   R5   (    (   RL   RK   sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   test_ellip_normF   sD    																#Ac          C` sõ   d „  }  t  ƒ  Ý } | j t d ƒ 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   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   I1¬   s    _3s    The occurrence of roundoff errori   i   i
   i   id   i   g$Ðâ ;´Q?g¬¾yoVQ?i   g©Ã<i`Q?i   gÏ™ar~Q?gTzLÛ°Q?i_   i\   (   R   R2   R   R   R   R
   (   RZ   R5   (    (    sB   lib/python2.7/site-packages/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   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E01À   s    c         S` s   | S(   N(    (   R   R   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E11Ã   s    c         S` s   t  t | | |  ƒ ƒ S(   N(   R   R   (   R   R   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E12Æ   s    c         S` s   t  t | | | ƒ ƒ S(   N(   R   R   (   R   R   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E13É   s    c         S` s<   | | d |  | t  t |  | |  | d |  | ƒ ƒ S(   Ni   i   gUUUUUUÕ?(   R   R   (   R   R   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E21Ì   s    c         S` s<   | | d |  | t  t |  | |  | d |  | ƒ ƒ S(   Ni   i   gUUUUUUÕ?(   R   R   (   R   R   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E22Ï   s    c         S` s   | t  t | | |  ƒ ƒ S(   N(   R   R   (   R   R   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E23Ò   s    c         S` s   | t  t | | | ƒ ƒ S(   N(   R   R   (   R   R   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E24Õ   s    c         S` s$   t  t | | |  | | | ƒ ƒ S(   N(   R   R   (   R   R   RY   (    (    sB   lib/python2.7/site-packages/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   RY   (    (    sB   lib/python2.7/site-packages/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   RY   (    (    sB   lib/python2.7/site-packages/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   RY   (    (    sB   lib/python2.7/site-packages/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   RY   (    (    sB   lib/python2.7/site-packages/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   RY   (    (    sB   lib/python2.7/site-packages/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   RY   (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   E36ï   s    9c         S` s(   | t  t | | |  | | | ƒ ƒ S(   N(   R   R   (   R   R   RY   (    (    sB   lib/python2.7/site-packages/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   RN   t   intRT   (   R   R   R   R   RY   t   iRJ   (   RK   t	   point_ref(    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   ellip_harm_known   s    $)iÒ  g      à?RN   i   R0   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	   RO   RQ   RR   RS   RN   R   RT   RV   R   (   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Ro   R   R   RY   RW   Rm   R   R   (    (   RK   Rn   sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   test_ellip_harm¾   sF    																#4(   t
   __future__R    R   R   t   numpyRO   t   numpy.testingR   R   R   R   t   scipy._lib._numpy_compatR   t   scipy.special._testutilsR   t   scipy.specialR	   R
   R   t   scipy.integrateR   R   R   R9   RX   R[   Rp   (    (    (    sB   lib/python2.7/site-packages/scipy/special/tests/test_ellip_harm.pyt   <module>   s   "	4	d	