
\K]c           @@ s   d  d l  m Z m Z d  d l Z d  d l Z d  d l j Z d  d l	 m
 Z
 d  d l	 m Z d e j f d     YZ e d k r e j   n  d S(   i    (   t   print_functiont   absolute_importN(   t   roc(   t   utilst   TestMathc           B@ s   e  Z d    Z d d d e j e j f d  Z d d d e j e j f 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   Z d   Z d   Z d   Z RS(   c         C@ s   i d t  j t j f 6d t  j t j f 6d t  j t j f 6d t  j t j f 6d t  j t j f 6} | t j k rz d n d } | j | | f |  S(   s?   gets the tolerance for functions when the input is of type 'ty'g+=gvIh%<=g&.>g&.1>g:0yU>gV瞯<gư>(	   t   matht   gammat   npt   float64t   lgammat   asint   acost   sqrtt   get(   t   selft   math_fnt   tyt   low_rest   default(    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   _get_tol   s    g      g      ?i   c      
   @ s   t  j   f d    } x | D] } | d  k rZ t j | d | d |  j |  }	 n t j | d | }	 t j |	  }
 | |	 j d f |
 |	  t j	 j
 |
 | |	  d |  j   |  d d j   j | j  q Wd  S(   Nc         @ s9   t  j d  } | |  j k  r5   | |  |  | <n  d  S(   Ni    (   R   t   get_global_idt   size(   t   dstt   srct   i(   R   (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   fn   s    i    i   t   dtypet   rtolt   err_msgs	   {0} ({1})(   R   t   jitt   NoneR   t   linspacet   astypet   arrayt
   zeros_likeR   t   testingt   assert_allcloseR   t   formatt   __name__(   R   R   t   npy_fnt   casest   spant   countt   typesR   R   R   R   (    (   R   s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   _generic_test_unary   s    )c      
   @ s,  t  j   f d    } x| D]} | d  k r t j | d | d |  j |  }	 t j | d | d |  j |  }
 n2 t j | d d | }	 t j | d d | }
 t j |	  } | | j d f | |	 |
  t j	 j
 | | |	 |
  d |  j   |  d d	 j   j | j  q Wd  S(
   Nc         @ s@   t  j d  } | |  j k  r<   | | | |  |  | <n  d  S(   Ni    (   R   R   R   (   R   t   src1t   src2R   (   R   (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyR   7   s    i    i   i   i   R   R   R   s	   {0} ({1})(   R   R   R   R   R   R    R!   R"   R   R#   R$   R   R%   R&   (   R   R   R'   R(   R)   R*   R+   R   R   R-   R.   R   (    (   R   s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   _generic_test_binary2   s    &)c         C@ s\   t  j t  j t  j g } x= | D]5 } |  j | t t | j  d t j t j f q Wd  S(   NR)   (	   R   t   sint   cost   tanR,   t   getattrR   R&   t   pi(   R   t   funcsR   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt	   test_trigM   s    c         C@ s^   t  j t j f t  j t j f t  j t j f g } x$ | D] \ } } |  j | |  q: Wd  S(   N(	   R   R
   R   t   arcsinR   t   arccost   atant   arctanR,   (   R   R5   R   t   np_fn(    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_trig_invT   s
    c         C@ sO   t  j t  j t  j g } x0 | D]( } |  j | t t | j  d d q Wd  S(   NR)   g      g      @(   g      g      @(   R   t   sinht   cosht   tanhR,   R3   R   R&   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt
   test_trigh\   s    c         C@ sp   t  j t j d f t  j t j d	 f t  j t j d
 f g } x- | D]% \ } } } |  j | | d | qC Wd  S(   Nii   i   i	   gg?R)   (   ii   (   i   i	   (   gg?(	   R   t   asinhR   t   arcsinht   acosht   arccosht   atanht   arctanhR,   (   R   R5   R   R;   R)   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_trigh_invb   s
    c         C@ s|   t  j t  j g } t d  t d  t d  t d  d d d f } x0 | D]( } |  j | t t | j  d | qL Wd  S(	   Nt   nant   infs   -infs   -nani    i   iR(   (   R   t   isnant   isinft   floatR,   R3   R   R&   (   R   R5   R(   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_classifyj   s    $c         C@ sq   t  j t  j g } xX | D]P } |  j | t t | j  d d |  j | t t | j  d d	 d d q Wd  S(
   NR)   gQgHzY@ii   R*   i   (   gQgHzY@(   ii   (   R   t   ceilt   floorR,   R3   R   R&   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_floor_ceilr   s    c         C@ sC   t  j g } x0 | D]( } |  j | t t | j  d d q Wd  S(   NR)   gfffffOgfffffO@(   gfffffOgfffffO@(   R   t   fabsR,   R3   R   R&   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt	   test_fabs}   s    c         C@ sC   t  j g } x0 | D]( } |  j | t t | j  d d q Wd  S(   NR)   ii   (   ii   (   R   t   expR,   R3   R   R&   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_unary_exp   s    c         C@ sC   t  j g } x0 | D]( } |  j | t t | j  d d q Wd  S(   NR)   ii   (   ii   (   R   t   expm1R,   R3   R   R&   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_unary_expm1   s    c         C@ sC   t  j g } x0 | D]( } |  j | t t | j  d d q Wd  S(   NR)   i    i  (   i    i  (   R   R   R,   R3   R   R&   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt	   test_sqrt   s    c         C@ sO   t  j t  j t  j g } x0 | D]( } |  j | t t | j  d d q Wd  S(   NR)   g?i	  (   g?i	  (   R   t   logt   log10t   log1pR,   R3   R   R&   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_log   s    c         C@ sC   t  j t  j g } x* | D]" } |  j | t t | j   q Wd  S(   N(   R   t   copysignt   fmodR/   R3   R   R&   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_binaries   s    c         C@ s@   t  j t j f g } x$ | D] \ } } |  j | |  q Wd  S(   N(   R   t   powR   t   powerR/   (   R   R5   R   R'   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_pow   s    c         C@ s@   t  j t j f g } x$ | D] \ } } |  j | |  q Wd  S(   N(   R   t   atan2R   t   arctan2R/   (   R   R5   R   R'   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt
   test_atan2   s    c         C@ s@   t  j t  j g } x' | D] } |  j | t j |   q Wd  S(   N(   R   t   erft   erfcR,   R   t	   vectorize(   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   test_erf   s    c         C@ sF   t  j t  j g } x- | D]% } |  j | t j |  d d q Wd  S(   NR)   g-C6?g      @(   g-C6?g      @(   R   R   R	   R,   R   Rg   (   R   R5   R   (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt
   test_gamma   s    N(   g      g      ?(   g      g      ?g      ?g      (   R&   t
   __module__R   R   R   t   float32R   R,   R/   R6   R<   R@   RG   RM   RP   RR   RT   RV   RW   R[   R^   Ra   Rd   Rh   Ri   (    (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyR      s.   																t   __main__(   t
   __future__R    R   t   numpyR   R   t   numba.unittest_supportt   unittest_supportt   unittestt   numbaR   R   t   TestCaseR   R&   t   main(    (    (    s>   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_math.pyt   <module>   s   