ó
\K]c           @  sW  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z	 d  d l
 j Z d  d l m Z m Z m Z m Z m Z m Z d  d l m Z m Z m Z d  d l m Z m Z d  d l m Z m Z d  d l m Z d  d l  m! Z! m" Z" d	 d
 l# m$ Z$ m% Z% m& Z& m' Z' d  d l( m) Z) d  d l* m+ Z+ m, Z, e- j. d k Z/ e j0 j1 d  Z2 e d	 d f k Z3 e   Z4 e4 j5 d  e4 j5 d  e   Z6 e6 j5 d  e   Z7 e7 j5 d  e7 j5 d  d   Z8 d   Z9 d   Z: d   Z; d   Z< d   Z= d   Z> d   Z? d e& f d     YZ@ d e@ e$ f d     YZA d e@ e$ f d      YZB d! e$ f d"     YZC d# eC f d$     YZD d% e$ f d&     YZE d' e$ f d(     YZF d) eF f d*     YZG eG jH   d+ eF f d,     YZI eI jH   d- eF f d.     YZJ eJ jH   d/ eF f d0     YZK eK jH   d1 eF f d2     YZL eL jH   d3 eF f d4     YZM eM jH   d5 eF f d6     YZN eN jH   d7 eF f d8     YZO eO jH   d9 eF f d:     YZP eP jH   d; eF f d<     YZQ eQ jH   d= e$ f d>     YZR d? e$ f d@     YZS eT dA k rSe jU   n  d S(B   i’’’’(   t   print_functionN(   t   typest   typingt   utilst   typeoft   numpy_supportt   njit(   t   compile_isolatedt   Flagst   DEFAULT_FLAGS(   t
   from_dtypet   version(   t   jitt	   vectorize(   t	   PYVERSION(   t   LoweringErrort   TypingErrori   (   t   TestCaset   CompilationCachet   MemoryLeakMixint   tag(   t   exec_(   t   supported_ufuncst
   all_ufuncsi   t   win32i   t   enable_pyobjectt   no_rewritest   nrtc           s"   t  j      f d    } d S(   s   An 'expectedFailure' like decorator that only expects compilation errors
    caused by unimplemented functions that fail in no-python modec            sG   y   |  |   Wn& t  k
 r9 t j t j     n Xt j  d  S(   N(   R   t   unittestt   _ExpectedFailuret   syst   exc_infot   _UnexpectedSuccess(   t   argst   kwargs(   t   func(    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   wrapper-   s
    N(   t	   functoolst   wraps(   R#   R$   (    (   R#   s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _unimplemented*   s    c         C  s   i  } d j  g  t |  j  D] } d j |  ^ q  } d j | |  j  } t | t   |  | d } d j |  j  | _ | S(   Nt   ,s   a{0}s   def fn({0}):
    np.{1}({0})t   fns   {0}_usecase(   t   joint   ranget   nargst   formatt   __name__R   t   globals(   t   ufunct   ldictt   it   arg_strt   func_strR)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _make_ufunc_usecase5   s    4
c         C  sK   |  j  } i  } t d j |  t   |  | d } d j |  | _  | S(   Ns    def fn(x,out):
    np.{0}(x,out)R)   s   {0}_usecase(   R.   R   R-   R/   (   R0   t
   ufunc_nameR1   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _make_unary_ufunc_usecase?   s    	
c         C  sH   i  } t  d j |   t   |  | d } d j t |    | _ | S(   Ns   def fn(x):
    return {0}(x)R)   s   usecase_{0}(   R   R-   R/   t   hashR.   (   t   ufunc_opR1   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _make_unary_ufunc_op_usecaseH   s
    
c         C  sK   |  j  } i  } t d j |  t   |  | d } d j |  | _  | S(   Ns$   def fn(x,y,out):
    np.{0}(x,y,out)R)   s   {0}_usecase(   R.   R   R-   R/   (   R0   R6   R1   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _make_binary_ufunc_usecaseP   s    	
c         C  sH   i  } t  d j |   t   |  | d } d j t |    | _ | S(   Ns   def fn(x,y):
    return x{0}yR)   s   usecase_{0}(   R   R-   R/   R8   R.   (   R9   R1   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _make_binary_ufunc_op_usecaseY   s
    
c         C  sH   i  } t  d j |   t   |  | d } d j t |    | _ | S(   Ns   def fn(x,y):
    x{0}yR)   s   usecase_{0}(   R   R-   R/   R8   R.   (   R9   R1   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _make_inplace_ufunc_op_usecasea   s
    
c         C  s>   g  t  |  |  D]* \ } } t j t |   j |  ^ q S(   s5   Convert python values into numpy scalar objects.
    (   t   zipt   npt   dtypet   strt   type(   t   tyargsR!   t   tyt   val(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _as_dtype_valuei   s    t   BaseUFuncTestc           B  s    e  Z d    Z d d d  Z RS(   c         C  st  t  t |   j   t j d  t j f t j d  t j f t j d  t j f t j d  t j f t j d  t j f t j d  t j f t j d  t j f t j d  t j f t j d  t j f t j d  t j f t j	 d  t j	 f t j	 d  t j	 f t j	 d  t j	 f t j
 d  t j
 f t j
 d  t j
 f t j
 d  t j
 f t j d d g d d t j t j d d	  f t j d d g d d
 t j t j d d	  f t j d d d g d d t j t j d d	  f t j d d d g d d t j t j d d	  f t j d d d g d d t j t j	 d d	  f t j d d d g d d t j t j
 d d	  f t j d d g d t j t j t j d d	  f t j d d g d t j t j t j d d	  f t j d d g d t j t j t j d d	  f t j d d g d t j t j t j d d	  f g |  _ t   |  _ d  S(   Ni    i   i’’’’g      ąæg        g      ą?R@   t   u4t   Ct   u8t   i4t   i8t   f4t   f8(   t   superRG   t   setUpR?   t   uint32R   t   int32t   uint64t   int64t   float32t   float64t   arrayt   Arrayt   int8t   int16t   uint8t   uint16t   inputsR   t   cache(   t   self(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRP   r   s8    003333333<c         C  så   | } t  | t j  r$ | j } n  | t j k ri | rQ t j | d d  } qį t j | d d  } nx | t j k r® | r t j | d d  } qį t j | d d  } n3 | rĢ t j | d d  } n t j | d d  } | S(   Ni   RI   (   t
   isinstanceR   RX   R@   t   signed_domaint   unsigned_domain(   R_   t
   input_typet   int_output_typet   float_output_typeRD   t   output_type(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _determine_output_type   s    N(   R.   t
   __module__RP   t   NoneRg   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRG   p   s   	$t
   TestUFuncsc           B  sĖ  e  Z e g  g  d] d] d  d  Z e g  g  d] d] d  e d  Z d] e d  Z d] e d  Z e	 d  e d   Z
 e	 d  e d   Z e	 d  e d   Z e	 d  e d	   Z d
   Z d   Z e	 d  e d   Z e	 d  d    Z e	 d  e d   Z e	 d  e d   Z e	 d  e d   Z e	 d  e d   Z e	 d  e d   Z e	 d  e e j d   Z e	 d  e d   Z e	 d  e d   Z e	 d  e d   Z e	 d  e d   Z e	 d  e d   Z e	 d  e d   Z e	 d  e d   Z  e	 d  e d   Z! e	 d  e d   Z" e	 d  e d   Z# e	 d  e d   Z$ e	 d  e d   Z% e	 d  e d    Z& e	 d  e d!   Z' e	 d  e d"   Z( e	 d  e d#   Z) e	 d  e d$   Z* e	 d  e d%   Z+ e	 d  e d&   Z, e d'  Z- e d(  Z. e d)  Z/ e d*  Z0 e d+  Z1 e	 d  e d,   Z2 e	 d  e d-   Z3 e	 d  e d.   Z4 e d/  Z5 e d0  Z6 e d1  Z7 e d2  Z8 e d3  Z9 e d4  Z: e d5  Z; e d6  Z< e d7  Z= e d8  Z> e d9  Z? e d:  Z@ e	 d  e d;   ZA e	 d  e d<   ZB e	 d  e d=   ZC e	 d  e d>   ZD e	 d  e d?   ZE e	 d  e d@   ZF e dA  ZG e dB  ZH e dC  ZI e dD  ZJ e	 d  e dE   ZK e	 d  e dF   ZL e dG  ZM e dH  ZN dI   ZO e	 d  e dJ   ZP e	 d  e dK   ZQ e	 d  e dL   ZR e	 d  e dM   ZS e	 d  e dN   ZT e dO  ZU eV e dP   ZW eV e dQ   ZX e	 d  e dR   ZY e	 d  e dS   ZZ e	 d  e dT   Z[ e dU  Z\ e dV  Z] dW   Z^ e	 d  dX    Z_ dY   Z` dZ   Za d[   Zb d\   Zc RS(^   t   ifcc      
   C  s  |  j  t  t |  } t |  j  } | j |  | }	 xH| D]@}
 |
 d } |
 d } | | k rn qB n  t j r | j j	 | k r qB n  |  j
 | | |  } |  j j |	 | | f d | } | j } t | t j  rt j | j d | j j } t j | j d | j j } n6 t j d d | j j } t j d d | j j } t } t j d t  k } t j d  |	 | |  d } xA | D]9 } t | j t  rt | j  j |  rt } qqWWd  QX| | |  d j d	 d
 d d d d d g  j  | j | | | | | j |  } y# t j! j" | | d d d | WqB t# k
 r| r{t$ d |
 | |  q  qB XqB Wd  S(   Ni    i   t   flagsR@   t   recordt   alwayss   invalid value encountereds   
s   ufunc '{0}' faileds   inputs ({1}):s   {2}s   got({3})s   {4}s   expected ({5}):s   {6}t   decimali   t   err_msgs!   Output mismatch for invalid input(%   t   reset_module_warningsR.   R7   t   listR]   t   extendR   t   strict_ufunc_typingR@   t   kindRg   R^   t   compilet   entry_pointR`   R?   t   ndarrayt   zerost   sizet   namet   Falset   warningst   catch_warningst   Truet   simplefiltert
   issubclasst   categoryt   RuntimeWarningRA   t   messaget
   startswithR*   R-   t   testingt   assert_array_almost_equalt   AssertionErrort   print(   R_   R0   Rl   t   skip_inputst   additional_inputsRd   Re   t   kindsR]   t   pyfunct   input_tuplet   input_operandRc   Rf   t   crt   cfunct   resultt   expectedt   invalid_flagt   warnlistt   warnmsgt   thiswarnt   msg(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   unary_ufunc_test°   sh    

				c	         C  s  t  |  } t |  j  | }	 | }
 xr|	 D]j} | d } | d } | | k rX q, n  | ry t j | d k   ry q, n  t j r | j j | k r q, n  |  j	 | | |  } |  j
 j |
 | | | f d | } | j } t | t j  r-t j | j d | j j } t j | j d | j j } n6 t j d d | j j } t j d d | j j } | | | |  |
 | | |  t j j | |  q, Wd  S(   Ni    i   Rl   R@   (   R;   Rr   R]   R?   t   anyR   Rt   R@   Ru   Rg   R^   Rv   Rw   R`   Rx   Ry   Rz   R{   R   R   (   R_   R0   Rl   R   R   Rd   Re   R   t   positive_onlyR]   R   R   R   Rc   Rf   R   R   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   binary_ufunc_testž   s8    

			c         C  sS   |  j  | d | d t j t j t j t j d d  t j t j d d  g d  S(   NRl   R   i   RI   (   R   R   RU   RV   RX   (   R_   R{   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   unary_int_ufunc_test*  s    c         C  sS   |  j  | d | d t j t j t j t j d d  t j t j d d  g d  S(   NRl   R   i   RI   (   R   R   RU   RV   RX   (   R_   R{   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   binary_int_ufunc_test0  s    t	   importantc         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   add(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_add_ufunc:  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   subtract(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_subtract_ufunc>  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   multiply(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_multiply_ufuncB  s    c         C  s>   d  } t d k r t j } n  |  j t j d | d | d  S(   Ni   i    Rl   Rd   (   i   i    (   Ri   R   R   RV   R   R?   t   divide(   R_   Rl   t   int_out_type(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_divide_ufuncF  s    c         C  s   |  j  t j d d d  S(   NR   t   f(   R   R?   t	   logaddexp(   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_logaddexp_ufuncP  s    c         C  s   |  j  t j d d d  S(   NR   R©   (   R   R?   t
   logaddexp2(   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_logaddexp2_ufuncS  s    c         C  s#   |  j  t j d | d t j d  S(   NRl   Rd   (   R   R?   t   true_divideR   RV   (   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_true_divide_ufuncV  s    c         C  s   |  j  t j  d  S(   N(   R   R?   t   floor_divide(   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_floor_divide_ufuncZ  s    c      	   C  sD   |  j  t j d t j d t j t j d d  t j g d | d  S(   NRd   R   i   RI   Rl   (   R   R?   t   negativeR   RT   RX   RQ   (   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_negative_ufunc^  s    !c         C  s    |  j  t j d | d t d  S(   NRl   R   (   R   R?   t   powert   after_numpy_112(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_power_ufuncf  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t	   remainder(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_remainder_ufunck  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   mod(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_mod_ufunco  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   fmod(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_fmod_ufuncs  s    c         C  s­   |  j  | d | d t j t j t j  j  t j f t j t j t j  j  t j f t j t j t j  j	  t j f t j
 t j t j
  j	  t j
 f g d  S(   NRl   R   (   R   R?   RQ   t   iinfot   maxR   RS   RU   t   finfot   minRV   (   R_   Rl   R0   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_abs_ufuncw  s
    $$$c         C  s   |  j  d | d t j  d  S(   NRl   R0   (   RĮ   R?   t   absolute(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_absolute_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   fabs(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_fabs_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   t   cf(   R   R?   t   rint(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_rint_ufunc  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   sign(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_sign_ufunc  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   conj(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_conj_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   exp(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_exp_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   exp2(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_exp2_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   log(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_log_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   log2(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_log2_ufunc”  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   log10(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_log10_ufunc„  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   expm1(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_expm1_ufunc©  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   log1p(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_log1p_ufunc­  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   sqrt(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_sqrt_ufunc±  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   square(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_square_ufuncµ  s    c      
   C  s   t  j t  j d d  t  j t  j t  j d d  t  j t  j t  j d d  t  j t  j t  j d d  t  j g } |  j t j d | d | d  S(   Ni   RI   R   Rl   (	   R   RX   RQ   RR   RS   RT   R   R?   t
   reciprocal(   R_   Rl   t   to_skip(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_reciprocal_ufunc¹  s
    !c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t	   conjugate(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_conjugate_ufuncÄ  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   sin(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_sin_ufuncĢ  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   cos(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_cos_ufuncŠ  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   tan(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_tan_ufuncŌ  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   arcsin(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_arcsin_ufuncŲ  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   arccos(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_arccos_ufuncŪ  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   arctan(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_arctan_ufuncŽ  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   arctan2(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_arctan2_ufuncį  s    c         C  s   |  j  t j d d d  S(   NR   R©   (   R   R?   t   hypot(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_hypot_ufuncä  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   sinh(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_sinh_ufuncē  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   cosh(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_cosh_ufuncė  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   tanh(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_tanh_ufuncļ  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   arcsinh(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_arcsinh_ufuncó  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   RĘ   (   R   R?   t   arccosh(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_arccosh_ufuncö  s    c      
   C  s   t  j t  j d d  t  j t  j t  j d d  t  j t  j t  j d d  t  j t  j t  j d d  t  j g } |  j t j d | d | d d d  S(   Ni   RI   R   Rl   R   RĘ   (	   R   RX   RQ   RR   RS   RT   R   R?   t   arctanh(   R_   Rl   Rą   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_arctanh_ufuncł  s    	!c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   deg2rad(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_deg2rad_ufunc
  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   rad2deg(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_rad2deg_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   degrees(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_degrees_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   radians(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_radians_ufunc  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   bitwise_and(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_bitwise_and_ufunc  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t
   bitwise_or(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_bitwise_or_ufunc  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   bitwise_xor(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_bitwise_xor_ufunc  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   invert(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_invert_ufunc"  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   bitwise_not(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_bitwise_not_ufunc%  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   greater(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_greater_ufunc4  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   greater_equal(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_greater_equal_ufunc8  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   less(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_less_ufunc<  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t
   less_equal(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_less_equal_ufunc@  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t	   not_equal(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_not_equal_ufuncD  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   equal(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_equal_ufuncH  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   logical_and(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_logical_and_ufuncL  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t
   logical_or(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_logical_or_ufuncO  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   logical_xor(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_logical_xor_ufuncR  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   logical_not(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_logical_not_ufuncU  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   maximum(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_maximum_ufuncX  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   minimum(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_minimum_ufunc\  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   fmax(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_fmax_ufunc`  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   fmin(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_fmin_ufuncc  s    c         C  s7   t  j t t g d t  j t j t j d d  f g S(   NR@   i   RI   (   R?   RW   R   R|   t   bool_R   RX   (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   bool_additional_inputsj  s    c         C  s,   |  j  t j d | d d d |  j   d  S(   NRl   R   t   ifcbR   (   R   R?   t   isfiniteR/  (   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_isfinite_ufuncp  s    c         C  s,   |  j  t j d | d d d |  j   d  S(   NRl   R   R0  R   (   R   R?   t   isinfR/  (   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_isinf_ufuncw  s    c         C  s,   |  j  t j d | d d d |  j   d  S(   NRl   R   R0  R   (   R   R?   t   isnanR/  (   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_isnan_ufunc~  s    c         C  s   |  j  t j d | d  S(   NRl   (   R   R?   t   signbit(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_signbit_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   copysign(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_copysign_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t	   nextafter(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_nextafter_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   modf(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_modf_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   frexp(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_frexp_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   floor(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_floor_ufunc  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   ceil(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_ceil_ufunc   s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   trunc(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_trunc_ufunc¤  s    c         C  s    |  j  t j d | d d d  S(   NRl   R   R©   (   R   R?   t   spacing(   R_   Rl   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_spacing_ufuncØ  s    c      
   C  s
  | j  } t |  } d t j f d t j f d t j f t j d d g d d t j t j d d  f t j d d g d d t j t j d d  f t j d	 d g d d
 t j t j d d  f g } | } t j t j d d  t j t j d d  g } | } xųt	 j
 | | |  D]į\ } }	 }
 | d } | d } |	 d } |	 d } | d k r¦| t j t j d d  k s!| t j t j d d  k r¦q!n  | d k rż| t j t j d d  k rż| t j k rżt j t j d d  rżq!n  | d k rT| t j t j d d  k rT| t j k rTt j t j d d  rTq!n  t | t j  sxt | t j  rt |
 t j  rq!n  |  j j | | | |
 f d | } | j } t | t j  rt j | j d |
 j j } t j | j d |
 j j } n t | t j  r`t j | j d |
 j j } t j | j d |
 j j } n6 t j d d |
 j j } t j d d |
 j j } | | | |  | | | |  t |
 d |
  } | t j t j f k ręd n d } |  j | | d | q!Wd  S(   Ni   i’’’’g      ą?i    R@   RJ   RI   RL   g      ąæRN   R¦   R¢   Rl   t   singlet   doublet   prec(   R.   R;   R   RS   RT   RV   R?   RW   RX   t	   itertoolst   productRQ   R`   R^   Rv   Rw   Rx   Ry   Rz   R@   R{   t   getattrRU   t	   complex64t   assertPreciseEqual(   R_   R0   Rl   R6   t   inputs1t   inputs2t   output_typesR   t   input1t   input2Rf   t   input1_operandt   input1_typet   input2_operandt   input2_typeR   R   R   R   t   scalar_typeRK  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   binary_ufunc_mixed_types_test®  sh    	006%



**'*'		c         C  s&   t  j s" |  j t j d t n  d  S(   NRl   (   R   Rt   R[  R?   R¦   t   no_pyobj_flags(   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_mixed_types÷  s    	c         C  so  t  t j  } t j d d d t j d d d j d d  t j d d d j d d  t j d d d j d d  t j d d d j d d  t j d d d j d d  g } t j d	 d d j d d  t j d
 d d j d d  t j d d d j d d  t j d d d j d d d  t j d d d j d d d  t j d d d j d d d  g } xÅ t | |  D]“ \ } } t j t j	 | j
 d  } t j t j | j
 d  } |  j j | | | f d t } | j }	 t j | j d | j }
 t j | |
  |	 | |  |  j | |
  qWt t j  } t j d d d t j d d d j d d  t j d d d j d d d  t j d d d j d d  t j d d d j d d  t j d d d j d d d  t j d d d j d d d  t j d d d j d d d  t j d d d j d d d  g	 } | } xō t j | |  D]ą \ } } t j t j	 | j
 d  } t j t j	 | j
 d  } t j t j	 t | j
 | j
  d  } |  j j | | | | f d t } | j }	 t j | |  }
 t j |
 j d d } |	 | | |  |  j | |
  qWd  S(   Ni   R@   RL   i   RI   Rl   RJ   i	   i	   i	   i	   i	   i   i	   i   i	   i   i	   i	   i   i	   i	   i	   (   R7   R?   R²   t   aranget   reshapeRy   R>   R   RX   RS   t   ndimRT   R^   Rv   R\  Rw   t   shapeR@   RP  R;   R    RL  RM  R¾   (   R_   R   t   input_operandst   output_operandst   xR   Rc   Rf   R   R   R   t   input1_operandst   input2_operandst   yRW  RY  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_broadcastingū  sZ    $!!'		!!!!''		c      	   C  sV   |  j  t  A d   } t j t j d d  } t | | | f d t } Wd  QXd  S(   Nc         S  s   t  j |  |  S(   N(   R?   R    (   t   a0t   a1(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   myaddB  s    i   RI   Rl   (   t   assertRaisest	   TypeErrorR   RX   RS   R   R\  (   R_   Rk  t   arr_tyR   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_implicit_output_npm@  s
    	c         C  sį  d   } t  j d d d t  j d d d j d d  t  j d
 d d j d d d  t  j d d d j d d  t  j d d d j d d  t  j d d d j d d d  t  j d d d j d d d  t  j d d d j d d d  t  j d d d j d d d  g	 } | } x“ t j | |  D]  \ } } t j t j | j d  } t j t j | j d  } |  j	 j
 | | | f d t } | j }	 t  j | |  }
 |	 | |  } t  j j |
 |  q9Wd  S(   Nc         S  s   t  j |  |  S(   N(   R?   R    (   Ri  Rj  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR   I  s    i   R@   RJ   i   RI   Rl   i	   i	   i   i	   i	   i	   (   R?   R^  R_  RL  RM  R   RX   RS   R`  R^   Rv   t   enable_nrt_flagsRw   R    R   t   assert_array_equal(   R_   R   Re  Rf  Rd  Rg  RW  RY  R   R   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt&   test_broadcast_implicit_output_npm_nrtH  s(    	!!!!'		c         C  s  d   } t  j d d d  j d d  } t  j | d d } | j d d  j d } t |  } | j j r | j d	 k s t	  t |  } | j j
 r¬ | j d k s² t	  t |  } | j d
 k sÓ t	  | j j sę t	  | j j
 sł t	  t t j | | | g d   } | | | f g 7} | | | f g 7} | | | f g 7} x­ | D]„ \ }	 }
 |  j j | t |	  t |
  f d t } | |	 |
  } | j |	 |
  } |  j | j j | j j  |  j | j j
 | j j
  t  j j | |  qZWd  S(   Nc         S  s   t  j |  |  S(   N(   R?   R    (   Ri  Rj  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR   g  s    i    i   i   i   i   t   ordert   FRI   t   Ai   Rl   (   R?   t   linspaceR_  RW   t   TR   Rl   t   c_contiguoust   layoutR   t   f_contiguousRr   RL  t   permutationsR^   Rv   Rp  Rw   t   assertEqualR   Rq  (   R_   R   t   Xt   Yt   Zt   Xtyt   Ytyt   Ztyt	   testcasest   arg0t   arg1R   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt"   test_implicit_output_layout_binaryf  s4    	!!!!$	c         C  s”  d   } t  j d d d  j d d  } t  j | d d } | j d d  j d } t |  } | j j r | j d	 k s t	  t |  } | j j
 r¬ | j d k s² t	  t |  } | j d
 k sÓ t	  | j j sę t	  | j j
 sł t	  x” | | | g D] } |  j j | t |  f d t }	 | |  }
 |	 j |  } |  j |
 j j | j j  |  j |
 j j
 | j j
  t  j j |
 |  q	Wd  S(   Nc         S  s   t  j |   S(   N(   R?   RŪ   (   Ri  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR     s    i    i   i   i   i   Rs  Rt  RI   Ru  Rl   (   R?   Rv  R_  RW   Rw  R   Rl   Rx  Ry  R   Rz  R^   Rv   Rp  Rw   R|  R   Rq  (   R_   R   R}  R~  R  R  R  R  R  R   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt!   test_implicit_output_layout_unary  s,    	!!!	N(d   R.   Rh   R\  Ri   R   R|   R   R   R   R   R”   R£   R„   RØ   R«   R­   RÆ   R±   R³   R¶   Rø   Rŗ   R¼   R?   t   absRĮ   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ł   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/  R2  R4  R6  R8  R:  R<  R'   R>  R@  RB  RD  RF  RH  R[  R]  Rh  Ro  Rr  R  R  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRj   ®   s(  K)
																														
																								I	E			%t   TestArrayOperatorsc           B  sÕ  e  Z d    Z e g  g  d- d- d  Z e g  g  d- d- e d  Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d	   Z d
   Z e d  d    Z d   Z e d  d    Z e d  d    Z e d  d    Z d   Z d   Z d   Z e d  d    Z d   Z d   Z d   Z e d  d    Z d   Z d   Z e d  d    Z e d  d    Z  e d  d    Z! e d  d    Z" e d  d    Z# e d  d     Z$ e d  d!    Z% e d  d"    Z& e d  d#    Z' e d  d$    Z( e d  d%    Z) e d  d&    Z* e d  d'    Z+ e d  d(    Z, e d  d)    Z- e d  d*    Z. e d  d+    Z/ e d  d,    Z0 RS(.   c         C  s3   |  j  | j j | j j  t j j | |  d  S(   N(   R|  R@   Ru   R?   R   R   (   R_   R   t   got(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _check_resultsÆ  s    c         C  sĆ   t  |  } t |  j  } | j |  | }	 x | D] }
 |
 \ } } | | k s5 t | t j  rl q5 n  |  j j |	 | f d | } | j	 } |	 |  } | |  } |  j
 | |  q5 Wd  S(   NRl   (   R:   Rr   R]   Rs   R`   R   RX   R^   Rv   Rw   R  (   R_   t   operatorRl   R   R   Rd   Re   t   operator_funcR]   R   R   R   Rc   R   R   R   R  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   unary_op_test³  s    		c         C  s  t  |  } t |  j  }	 |	 j |  | }
 xL|	 D]D} | \ } } t j t | d |   } | } | | k rz q5 n  | r t j d d | d } n  t	 | t
 j  rŽ | } | } | r!t j | | k   r!q5 q!nC t j j d  d j |  } t |  } | r!| | k  r!q5 n  |  j j |
 | | f d | } | j } |
 | |  } | | |  } |  j | |  q5 Wd  S(   NR@   i   i    i
   id   Rl   (   R<   Rr   R]   Rs   R   t   as_dtypeRN  R?   Ry   R`   R   RX   R   t   randomt   astypeR   R^   Rv   Rw   R  (   R_   R  Rl   R   R   Rd   Re   t   positive_rhsR  R]   R   R   t   input_operand1Rc   t   input_dtypet   input_type1t   zerot   input_operand0t   input_type0R   R   R   R  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   binary_op_testČ  s:    				c         C  sF   t  t j f t t j f t j t  t g  t j t j d d  f g S(   Ni   RI   (   R   R   t   booleanR|   R?   RW   RX   (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   bitwise_additional_inputsš  s    c         O  sb   | j  d g   } | t j t j t j t j d d  t j t j d d  g 7} |  j | |   S(   NR   i   RI   (   t
   setdefaultR   RU   RV   RX   R  (   R_   R!   t   kwsR   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   binary_int_op_testł  s    c         O  s2   | j  d g   } | |  j   7} |  j | |   S(   NR   (   R  R  R  (   R_   R!   R  R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   binary_bitwise_op_test  s    c         C  sC  t  |  } | } g  | D] } t j | d | ^ q }	 g  | D] } t j | d | ^ qA }
 g  | D] } | D] } | |  ^ qs qi } |
 | } x¤ t j |	 |  D] \ } } t |  } t |  } |  j j | | | f d t } | j	 } | j
   } | | |  | j
   } | | |  |  j | |  q« Wd  S(   NR@   Rl   (   R=   R?   RW   RL  RM  R   R^   Rv   R\  Rw   t   copyRP  (   R_   R  t
   lhs_valuest
   rhs_valuest
   lhs_dtypest
   rhs_dtypesR  R   R@   t
   lhs_inputst
   rhs_arrayst   vt   rhs_scalarst
   rhs_inputst   lhst   rhst   lhs_typet   rhs_typeR   R   R   R  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   inplace_op_test  s&    %%,
		c         C  s7   |  j  | | | t j t j f t j t j t j f  S(   N(   R®  R?   RU   RV   RT   (   R_   R  R”  R¢  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   inplace_float_op_test"  s    c         C  s;   |  j  | | | t j t j t j f t j t j f  d  S(   N(   R®  R?   RZ   RR   RT   RQ   (   R_   R  R”  R¢  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   inplace_int_op_test)  s    c         C  sB   |  j  | | |  |  j | | | t j f t j t j f  d  S(   N(   R°  R®  R?   R.  (   R_   R  R”  R¢  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   inplace_bitwise_op_test.  s    c         C  s   |  j  d  d  S(   Nt   +(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_unary_positive_array_op6  s    R   c         C  s   |  j  d  d  S(   Nt   -(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_unary_negative_array_op9  s    c      
   C  sY   |  j  d d t j t j t j t j d d  t j t j d d  g d |  j   d  S(   Nt   ~R   i   RI   R   (   R  R   RU   RV   RX   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_unary_invert_array_op=  s
    c         C  s)   |  j  d d d d g d d d g  d  S(   Ns   +=i’’’’g      ų?i   iū’’’i    g      @(   RÆ  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_addG  s    c         C  s)   |  j  d d d d g d d d g  d  S(   Ns   -=i’’’’g      ų?i   iū’’’i    g      @(   RÆ  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_subK  s    c         C  s)   |  j  d d d d g d d d g  d  S(   Ns   *=i’’’’g      ų?i   iū’’’i    g      @(   RÆ  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_mulO  s    c         C  s)   |  j  d d d d g d d d g  d  S(   Ns   //=i’’’’g      ų?i   iū’’’g      ō?g      @(   RÆ  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_floordivS  s    c         C  s)   |  j  d d d d g d d d g  d  S(   Ns   /=i’’’’g      ų?i   iū’’’i    g      @(   RÆ  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_divV  s    c         C  s)   |  j  d d d d g d d d g  d  S(   Ns   %=i’’’’g      ų?i   iū’’’i   g      @(   RÆ  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_remainderY  s    c         C  s)   |  j  d d d d g d d d g  d  S(   Ns   **=i’’’’g      ų?i   iū’’’i   g      @(   RÆ  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_pow\  s    c         C  s5   |  j  d d d d d d g d d d d	 d
 g  d  S(   Ns   &=i    i   i   i   i3   i   i   i*   i’   (   R±  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_and`  s    c         C  s5   |  j  d d d d d d g d d d d	 d
 g  d  S(   Ns   |=i    i   i   i   i3   i   i   i*   i’   (   R±  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_orc  s    c         C  s5   |  j  d d d d d d g d d d d	 d
 g  d  S(   Ns   ^=i    i   i   i   i3   i   i   i*   i’   (   R±  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_xorf  s    c         C  s/   |  j  d d d d d g d d d d g  d  S(	   Ns   <<=i    i   iö’’’iĶ’’’i   i   i   (   R°  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_lshifti  s    c         C  s/   |  j  d d d d d g d d d d g  d  S(	   Ns   >>=i    i   iö’’’iĶ’’’i   i   i   (   R°  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_inplace_rshiftm  s    c         C  sĶ   d   } t  j d  } | |  } |  j | d | d k oO | d | d k  t  j d  } t |  |  } |  j | d | d k o | d | d k  t  j j | |  t  j j | |  d S(   s¶   
        Verify that the unary positive operator copies values, and doesn't
        just alias to the input array (mirrors normal Numpy/Python
        interaction behavior).
        c         S  s   |  
} d |  d <d | d <| S(   Ni   i    i   i   (    (   Rj  t   a2(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR©   w  s    

i
   i    i   N(   R?   Ry   t
   assertTrueR   R   Rq  (   R_   R©   Rj  RÄ  t   a3t   a4(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR³  p  s    	//c         C  s   |  j  d  d  S(   NR²  (   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_add_array_op  s    c         C  s   |  j  d  d  S(   NR“  (   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_subtract_array_op  s    c         C  s   |  j  d  d  S(   Nt   *(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_multiply_array_op  s    c         C  s5   d  } t d k r t j } n  |  j d d | d  S(   Ni   i    t   /Rd   (   i   i    (   Ri   R   R   RV   R  (   R_   R§   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_divide_array_op  s    c         C  s  t  j d  t j f t  j d  t j f t  j d  t j f t  j d  t j f t  j d  t j f t  j d  t j f t  j d  t j f t  j d  t j f t  j d  t j f t  j d	  t j f t  j d d
 g d d t j	 t j d d  f t  j d d g d d t j	 t j d d  f t  j d d d g d d t j	 t j d d  f t  j d d d g d d t j	 t j d d  f t  j d d g d d t j	 t j d d  f t  j d d	 g d d t j	 t j d d  f g |  _
 |  j d  d  S(   Ni   iž’’’i    i   iū’’’g      ąæg      ų?g      Ąg      @i   R@   RH   RI   i   RJ   i’’’’i   RK   i   RL   RM   RN   s   //(   R?   RQ   R   RR   RS   RT   RU   RV   RW   RX   R]   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_floor_divide_array_op  s"    003309c         C  s   |  j  d  d  S(   Nt   %(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_remainder_array_op·  s    c         C  s   |  j  d d t d  S(   Ns   **R  (   R  Rµ   (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_power_array_op»  s    c         C  s   |  j  d d t d  S(   Ns   <<R  (   R  R   (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_left_shift_array_opæ  s    c         C  s   |  j  d d t d  S(   Ns   >>R  (   R  R   (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_right_shift_array_opĆ  s    c         C  s   |  j  d  d  S(   Nt   &(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_bitwise_and_array_opĒ  s    c         C  s   |  j  d  d  S(   Nt   |(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_bitwise_or_array_opĖ  s    c         C  s   |  j  d  d  S(   Nt   ^(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_bitwise_xor_array_opĻ  s    c         C  s   |  j  d  d  S(   Ns   ==(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_equal_array_opÓ  s    c         C  s   |  j  d  d  S(   Nt   >(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_greater_array_op×  s    c         C  s   |  j  d  d  S(   Ns   >=(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_greater_equal_array_opŪ  s    c         C  s   |  j  d  d  S(   Nt   <(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_less_array_opß  s    c         C  s   |  j  d  d  S(   Ns   <=(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_less_equal_array_opć  s    c         C  s   |  j  d  d  S(   Ns   !=(   R  (   R_   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_not_equal_array_opē  s    N(1   R.   Rh   R  Rp  Ri   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Č  RÉ  RĖ  RĶ  RĪ  RŠ  RŃ  RŅ  RÓ  RÕ  R×  RŁ  RŚ  RÜ  RŻ  Rß  Rą  Rį  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR  ­  sb   	%											
								t   TestScalarUFuncsc           B  s;   e  Z d  Z e Z d   Z d   Z d   Z e d  Z RS(   si  check the machinery of ufuncs works when the result is an scalar.
    These are not exhaustive because:
    - the machinery to support this case is the same for all the functions of a
      given arity.
    - the result of the inner function itself is already tested in TestUFuncs

    This class tests regular uses. A subclass tests the no python backend.
    c         C  sķ  xęt  | |  D]Õ\ } } t | | d |  j } | j } | |   } | t | |    }	 d j | |  }
 t t j t j	 f t j	 t j f t j
 t j	 f t j	 t j
 f g  } | | k rÓ t |	  }	 nu t j |	 j t j  rś t |	  }	 nN t j |	 j t j  r!t |	  }	 n' t j |	 j t j  rHt |	  }	 n  | j j | j j f } t g  | D] } | t j k ^ qk rd } n7 t g  | D] } | t j k ^ q rĆd } n d } |  j | |	 d |
 d | q Wd  S(   NRl   s   for args {0} typed {1}RI  RJ  t   exactR   RK  (   R>   R   t   _compile_flagsRw   RF   R-   t   setR   RR   RS   RT   t   floatR?   t
   issubdtypeR@   t   inexactt   integert   intt   boolt	   signatureR!   t   return_typeR   RU   RV   RP  (   R_   R   t	   arg_typest
   arg_valuesRC   R!   R   R   R  R   R   t   specialt   alltypest   tRK  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt	   run_ufuncų  s.    	!'(	(	c         C  st   d   } d d d d	 d
 d g } t  j f t  j f t  j f t  j f t  j f t  j f g } |  j | | |  d  S(   Nc         S  s   t  j |   S(   N(   R?   RŪ   (   Rd  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _func(  s    i   i   g¹?gÉ?(   i   (   i   (   i   (   i   (   g¹?(   gÉ?(   R   RR   RQ   RT   RS   RU   RV   Ró  (   R_   Rō  t   valst   tys(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_scalar_unary_ufunc'  s    	c         C  st   d   } d d d d d d g } t  j t  j t  j t  j t  j t  j g } |  j | t | |  t | |   d  S(   Nc         S  s   t  j |  |  S(   N(   R?   R    (   Rd  Rg  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRō  3  s    i   i   g¹?gÉ?(	   R   RR   RQ   RT   RS   RU   RV   Ró  R>   (   R_   Rō  Rõ  Rö  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt    test_scalar_binary_uniform_ufunc2  s
    	c         C  sz   d   } d d d d d d g } t  j t  j t  j t  j t  j t  j g } |  j | t j	 | |  t j	 | |   d  S(   Nc         S  s   t  j |  |  S(   N(   R?   R    (   Rd  Rg  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRō  =  s    i   i   g¹?gÉ?(
   R   RR   RQ   RT   RS   RU   RV   Ró  RL  RM  (   R_   Rl   Rō  Rõ  Rö  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_scalar_binary_mixed_ufunc<  s    	(	   R.   Rh   t   __doc__t   enable_pyobj_flagsRä  Ró  R÷  Rų  Rł  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRā  ģ  s   	/		
t   TestScalarUFuncsNoPythonc           B  s   e  Z d  Z e Z RS(   s:   Same tests as TestScalarUFuncs, but forcing no python mode(   R.   Rh   Rś  R\  Rä  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRü  H  s   t   TestUfuncIssuesc           B  s#   e  Z d    Z d   Z d   Z RS(   c         C  sk   t  d g  d    } t j d d d } t j d d d } |  j | | |  | | | |  d  S(   Ns   (float64,float64)c         S  s    t  j |  |  t  j |  |  S(   N(   R?   R    (   t   x1t   x2(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   fooQ  s    i
   R@   RN   (   R   R?   R^  RP  (   R_   R   t   at   b(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_issue_651O  s    c         C  sM   d   } t  | t j t j g  } |  j | d d  | j d d   d  S(   Nc         S  s   t  j |  |  S(   N(   R?   R°   (   Rd  Rg  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR   Z  s    y              š?(   R   R   t
   complex128R|  Rw   (   R_   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_issue_713Y  s    	c           sĄ   d   } |  t  d t          f d   } t j d d d g  t j d d d
 g  g } xP | D]H } | | d  | | t j d   | | t j d d d g   qp Wd	 S(   sF   
        <float32 ** int> should return float32, not float64.
        c         S  s   t  j |  |  S(   N(   R?   R“   (   Rd  Rg  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR   d  s    t   nopythonc           sE     |  |  } t  j j |  |  |    j | j |  j  d  S(   N(   R?   R   R   R|  R@   (   Rd  Rg  R  (   R   R   R_   (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   checki  s    i   i   i   y              š?y              @Ny      @      Ą(   R   R   R?   RU   RO  RS   RT   (   R_   R   R  t   xsRd  (    (   R   R   R_   s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_issue_2006`  s    	0(   R.   Rh   R  R  R	  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRż  M  s   	
	t   _LoopTypesTesterc           B  s   e  Z d  Z d Z i d d 6d d 6d d 6d d 6d d 6Z d d  Z d   Z d   Z d   Z e	 d    Z
 e	 d    Z e	 d    Z RS(   sģ  Test code generation for the different loop types defined by ufunc.

    This test relies on class variables to configure the test. Subclasses
    of this class can just override some of these variables to check other
    ufuncs in a different compilation context. The variables supported are:

    _funcs: the ufuncs to test
    _compile_flags: compilation flags to use (to force nopython mode)
    _skip_types: letter types that force skipping the loop when testing
                 if present in the NumPy ufunc signature.
    _supported_types: only test loops where all the types in the loop
                      signature are in this collection. If unset, all.

    Note that both, _skip_types and _supported_types must be met for a loop
    to be tested.

    The NumPy ufunc signature has a form like 'ff->f' (for a binary ufunc
    loop taking 2 floats and resulting in a float). In a NumPy ufunc object
    you can get a list of supported signatures by accessing the attribute
    'types'.
    t   OegGi   Rģ   Rt  i   Rź   t   Di   RÕ   Rų   i    c         C  s°  | d k r+ t  j d d d d g d | S| d k rV t  j d d d d g d | S| d	 k r t  j t t t t g d | S| d d
 k rĖ t |  d k r¬ d } n  t  j d d d d g d | S| d d k rt |  d k rö d } n  t  j d d d d g d | S| d k rFt  j d d d t d  g d | S| d k rt j d k rjd } n d  } t  j | d! d t d  d g d | St d | f   d S("   s<   return a suitable array argument for testing the letter typet   bhilqi   i   i    iž’’’R@   t   BHILQi   t   ?t   ms   m8[D]iż’’’t   NaTt   Ms   M8[D]t   Nati   t   fdg      ų?g      Ąg        t   nant   FDR   y              š?y              ų?y                s   type %r not understoodNy              š?y             šæy              šæy      ų?      ų?(	   R?   RW   R   R|   t   lenRę  R   t   platformt   RuntimeError(   R_   t   a_letter_typet   indext   negzero(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _arg_for_type  s0    			"c           sÓ   | | j   | | j   t |  d g     rQ t  f d     D  rQ d  St |  d g    t  f d     D  r d  St |  d g   } | r¼ t   f d   | D  r¼ d  S|  j | |    d  S(   Nt   _supported_typesc         3  s   |  ] } |   k Vq d  S(   N(    (   t   .0t   l(   t   supported_types(    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pys	   <genexpr>É  s    t   _skip_typesc         3  s   |  ] } |   k Vq d  S(   N(    (   R  R   (   t
   skip_types(    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pys	   <genexpr>Ģ  s    t   _required_typesc         3  s   |  ] } |   k Vq d  S(   N(    (   R  R   (   t   letter_types(    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pys	   <genexpr>Ń  s   (   t   nint   noutRN  R   t   _check_ufunc_with_dtypes(   R_   R)   R0   t   loopt   required_types(    (   R%  R#  R!  s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _check_loopĄ  s    c      
   C  sö  g  | D] } t  j |  ^ q } g  | D]! } t j t |  d d  ^ q) } t | | d |  j } g  t |  D]* \ } } |  j | d | j	 d  ^ qu }	 x |	 D] }
 |  j
 j |
  q¬ Wg  |	 D] } | j   ^ qĶ } | j |	   | |   xó t | | |	  D]ß \ } } } |  j | | |  \ } } | j j } |  j j | j | f d  } | d k rud n d } | d	 k rd
 n | } d j d d d d g  } | j | j |	 | | |  } |  j | | d | d | d | qWd  S(   Ni   RI   Rl   R  i   t   fFRI  Rć  t   dDRJ  s   
s    ufunc '{0}' arrays differ ({1}):s	   args: {2}s   expected {3}s   got {4}RK  R   t   ulps(   R?   R@   R   RX   R
   R   Rä  t	   enumerateR  t   repeatR  t   shuffleR   Rw   R>   t   _fixup_resultst   chart   _ulpst   getR.   R*   R-   RP  (   R_   R)   R0   t   dtypesRņ  t   arg_dtyt   arg_nbtyR   R  t   c_argst   arrR  t   py_argsR@   t   py_argt   c_argt   typecharR.  RK  R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR(  ×  s*    ".:
"	c         C  s
   | | f S(   N(    (   R_   R@   R<  R=  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR2  ō  s    c         C  s(   x! | j  D] } |  j | |  q
 Wd  S(   N(   R   t   _inject_test(   t   clsR0   R)  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _check_ufunc_loops÷  s    c           sA      f d   } t  |  d j  j   j d d   |  d  S(   Nc           s#   t    } |  j |     d  S(   N(   R5   R+  (   R_   R)   (   R)  R0   (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_templatež  s    s   test_{0}_{1}s   ->t   _(   t   setattrR-   R.   t   replace(   R@  R0   R)  RB  (    (   R)  R0   s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR?  ü  s    c         C  s%   x |  j  D] } |  j |  q
 Wd  S(   N(   t   _ufuncsRA  (   R@  R0   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   autogenerate  s    (   Rģ   Rt  (   Rź   R  (   Rź   Rt  (   RÕ   R  (   Rų   Rt  (   R.   Rh   Rś  R"  R4  R  R+  R(  R2  t   classmethodRA  R?  RG  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR
  x  s   

(				t   TestLoopTypesIntNoPythonc           B  s   e  Z e Z e Z e j e j  e j e j	  e j e j
  e j e j  e j e j  e j e j  d  Z d e j Z RS(   s   ?bBhHiIlLqQt   fdFDmMO(   R.   Rh   R\  Rä  R   RF  t   removeR?   R“   Rß   t
   left_shiftt   right_shiftR¢   R²   R$  R
  R"  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRI    s   t(   TestLoopTypesSubtractAndNegativeNoPythonc           B  sF   e  Z e Z e j e j g Z d  Z d e	 j
 Z
 e rD e
 d 7Z
 n  RS(   s   ?bBhHiIlLqQfdFDt   mMOR  (   R.   Rh   R\  Rä  R?   R¢   R²   RF  R$  R
  R"  Rµ   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRN    s   t   TestLoopTypesReciprocalNoPythonc           B  s9   e  Z e Z e j g Z d  Z d e j	 Z	 d d  Z
 RS(   t   bBhHiIlLqQfdFDRO  i    c         C  sD   t  |  j |   j | d | } | d k r@ d | | d k <n  | S(   NR  t
   bBhHiIlLqQi*   i    (   RO   t	   __class__R  (   R_   R  R  t   res(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR  -  s
    	(   R.   Rh   R\  Rä  R?   Rß   RF  R$  R
  R"  R  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRP  '  s
   t   TestLoopTypesPowerNoPythonc           B  s9   e  Z e Z e j g Z d  Z d e j	 Z	 d d  Z
 RS(   RQ  RO  i    c         C  sP   t  |  j |   j | d | } | d k rL | d k rL d | | d k  <n  | S(   NR  RR  i   i   i    (   RO   RS  R  (   R_   R  R  RT  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR  @  s
    	(   R.   Rh   R\  Rä  R?   R“   RF  R$  R
  R"  R  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRU  :  s
   t!   TestLoopTypesIntLeftShiftNoPythonc           B  s9   e  Z e Z e j g Z d  Z d e j	 Z	 d d  Z
 RS(   RR  RJ  i    c         C  s]   t  |  j |   j | d | } | d k rY | j j d } t j | d | d  } n  | S(   NR  i   i   i    (   RO   RS  R  R@   t   itemsizeR?   t   clip(   R_   R  R  RT  t	   bit_count(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR  S  s    	(   R.   Rh   R\  Rä  R?   RL  RF  R$  R
  R"  R  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRV  M  s
   t"   TestLoopTypesIntRightShiftNoPythonc           B  s9   e  Z e Z e j g Z d  Z d e j	 Z	 d d  Z
 RS(   RR  RJ  i    c         C  s{   t  |  j |   j | d | } | d k rY | j j d } t j | d | d  } n  | d k rw t j |  } n  | S(   NR  i   i   i    (   RO   RS  R  R@   RW  R?   RX  R  (   R_   R  R  RT  RY  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR  j  s    	
(   R.   Rh   R\  Rä  R?   RM  RF  R$  R
  R"  R  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRZ  d  s
   t    TestLoopTypesFloorDivideNoPythonc           B  s<   e  Z e Z e j e j g Z d  Z d e	 j
 Z
 d   Z RS(   RQ  RO  c         C  s`   | j  d k rV t j |  t j |  @} | | d k | d k @O} | | | | <n  | | f S(   NR©   g        (   Ru   R?   R3  R5  (   R_   R@   R<  R=  t   pred(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR2    s
    (   R.   Rh   R\  Rä  R?   R°   R·   RF  R$  R
  R"  R2  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR[    s
   t   TestLoopTypesFloatNoPythonc           B  sq   e  Z e Z e Z e r, e j e j	  n  e j e j
  e j e j  e j e j  d  Z d e j Z RS(   R  t   FDmMO(   R.   Rh   R\  Rä  R   RF  t	   iswindowsRK  R?   R7  R°   R·   R¹   R$  R
  R"  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR]    s   t   TestLoopTypesComplexNoPythonc           B  s(   e  Z e Z e Z d  Z d e j Z RS(   R  RO  (	   R.   Rh   R\  Rä  R   RF  R$  R
  R"  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR`  §  s   t   TestLoopTypesDatetimeNoPythonc           B  sZ   e  Z e Z e Z d  Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z RS(   t   mMc      
   C  s’   t  j } t |  } |  j | | d d d g  |  j | | d d d g  t j s |  j | | d d d g  |  j | | d d d g  n  |  j | | d d d g  |  j | | d d d g  |  j t  ! |  j | | d d d g  Wd  QXd  S(   Ns   m8[s]s   m8[m]t   m8s   m8[ms](   R?   R    R5   R(  R   Rt   Rl  R   (   R_   R0   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_addÄ  s    		c      
   C  s»   t  j } t |  } |  j | | d d d g  |  j | | d d d g  |  j | | d d d g  |  j | | d d d g  |  j t  ! |  j | | d d d g  Wd  QXd  S(   Ns   M8[s]s   M8[m]s   m8[s]s   m8[ms]s   m8[m](   R?   R¢   R5   R(  Rl  R   (   R_   R0   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_subtractŌ  s    	c      
   C  s   t  j } t |  } |  j | | d d d g  |  j | | d d d g  |  j t  ! |  j | | d d d g  Wd  QXd  S(   Ns   m8[s]t   qs   m8[us]s   m8[m](   R?   R¤   R5   R(  Rl  R   (   R_   R0   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_multiplyį  s    	c      
   C  s»   t  j } t |  } |  j | | d d d g  |  j | | d d d g  |  j | | d d d g  |  j | | d d d g  |  j t  ! |  j | | d d d g  Wd  QXd  S(   Ns   m8[m]s   m8[s]t   dRf  (   R?   R®   R5   R(  Rl  R   (   R_   R0   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_true_divideė  s    	c      
   C  s   t  j } t |  } |  j | | d d d g  |  j | | d d d g  |  j t  ! |  j | | d d d g  Wd  QXd  S(   Ns   m8[m]Rf  s   m8[s]Rh  (   R?   R°   R5   R(  Rl  R   (   R_   R0   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_floor_divideų  s    	c         C  sÄ   t  |  } |  j | | d d d g  |  j | | d d d g  t j s |  j | | d d d g  |  j | | d d d g  n  |  j | | d d d g  |  j | | d d d g  d  S(   Ns   m8[m]s   m8[s]R  Rc  s   M8[m]s   M8[s](   R5   R(  R   Rt   (   R_   R0   R)   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   _check_comparison  s    	c         C  sF   x? t  j t  j t  j t  j t  j t  j g D] } |  j |  q+ Wd  S(   N(   R?   R  R  R  R  R  R  Rk  (   R_   R0   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_comparisons  s    (   R.   Rh   R\  Rä  R   RF  R$  Rd  Re  Rg  Ri  Rj  Rk  Rl  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRa  ³  s   
			
		
	t   TestUFuncBadArgsNoPythonc           B  s)   e  Z e Z d    Z d   Z d   Z RS(   c      	   C  s;   d   } |  j  t t | t j g d t j d |  j d  S(   Nc         S  s   t  j |   } | S(   s   error: np.add requires two args(   R?   R    (   Rd  R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR#     s    Rķ  Rl   (   Rl  R   R   R   RV   Rä  (   R_   R#   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_missing_args  s    	c      	   C  sQ   d   } t  j t  j d d  } |  j t t | | g d d | d |  j d  S(   Nc         S  s   t  j |  |  | |  } | S(   s   error: too many args(   R?   R    (   Rd  t   outt   out2R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR#   $  s    i   RI   i   Rķ  Rl   (   R   RX   RV   Rl  R   R   Rä  (   R_   R#   t
   array_type(    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   test_too_many_args#  s    	c      	   C  s;   d   } |  j  t t | t j g d t j d |  j d  S(   Nc         S  s   d } t  j |  |  |  d S(   s0   error: scalar as a return value is not supportedi    N(   R?   R    (   Rd  Rg  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR#   .  s    Rķ  Rl   (   Rl  R   R   R   RV   Rä  (   R_   R#   (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt"   test_no_scalar_result_by_reference-  s    	(   R.   Rh   R\  Rä  Rn  Rr  Rs  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRm    s   	
	
t    TestUFuncCompilationThreadSafetyc           B  s   e  Z d    Z RS(   c           s   g    t  d        f d   } g  t d  D] } t j d |  ^ q4 } x | D] } | j   qY Wx | D] } | j   qt W|  j    d S(   s{   
        Test that (lazy) compiling from several threads at once doesn't
        produce errors (see issue #2403).
        c         S  s   |  d S(   Ni   (    (   Rd  (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR   >  s    c            sx   yQ t  j d d t  j }  t  j d d t  j d } t  j j  |   |  Wn  t k
 rs }   j |  n Xd  S(   Ni
   R@   g      š?(   i
   (   i
   (   R?   t   onesRV   R   Rq  t   BaseExceptiont   append(   R  R   t   e(   t   errorsR   (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyR$   B  s    i   t   targetN(   R   R+   t	   threadingt   Threadt   startR*   t   assertFalse(   R_   R$   R2   t   threadsRņ  (    (   Ry  R   s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt	   test_lock7  s    +(   R.   Rh   R  (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyRt  5  s   t   __main__(V   t
   __future__R    R%   RL  t   reR   R}   R{  t   numpyR?   t   numba.unittest_supportt   unittest_supportR   t   numbaR   R   R   R   R   R   t   numba.compilerR   R   R	   t   numba.numpy_supportR
   R   t   numpy_versionR   R   t   numba.configR   t   numba.errorsR   R   t   supportR   R   R   R   t	   numba.sixR   t   numba.typing.npydeclR   R   t   tuplet   __itemsize__t   is32bitsR  R   R_  Rµ   Rū  Rå  R\  Rp  R'   R5   R7   R:   R;   R<   R=   RF   RG   Rj   R  Rā  Rü  Rż  R
  RI  RG  RN  RP  RU  RV  RZ  R[  R]  R`  Ra  Rm  Rt  R.   t   main(    (    (    s6   lib/python2.7/site-packages/numba/tests/test_ufuncs.pyt   <module>   s   ."					
								>’ ’ ’ ’ @\+







	
`
