ó
\K]c           @@ sŦ   d  d l  m Z m Z d  d l Z d  d l m Z m Z d  d l m	 Z	 m
 Z
 m Z d   Z d   Z e d  d e
 e	 j f d	     Y Z e d
 k r§ e	 j   n  d S(   i    (   t   print_functiont   absolute_importN(   t   cudat   float64(   t   unittestt   SerialMixint   skip_on_cudasimc         C@ sJ   t  j d  } | t |  k r% d  St t |  | | |   | | <d  S(   Ni   (   R   t   gridt   lenR   t   max(   t   At   Bt   Ct   i(    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   builtin_max	   s    c         C@ sJ   t  j d  } | t |  k r% d  St t |  | | |   | | <d  S(   Ni   (   R   R   R   R   t   min(   R
   R   R   R   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   builtin_min   s    s   Tests PTX emissiont   TestCudaMinMaxc           B@ s\   e  Z d  d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 RS(
   i   c         C@ sĘ   t  j |  } t j | d t j } t j | d | d } t j | d d d | }	 | d | j f | |	 |  t j j	 | | | |	   t
 d   | j   j   D  }
 |  j | |
  d  S(   Nt   dtypeg      ā?t
   fill_valuei   i   c         s@ s   |  ] } | Vq d  S(   N(    (   t   .0t   p(    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pys	   <genexpr>.   s    (   R   t   jitt   npt   zerosR   t   aranget   fullt   shapet   testingt   assert_allcloset   nextt   inspect_asmt   valuest   assertIn(   t   selft   kernelt   numpy_equivalentt   ptx_instructiont
   dtype_leftt   dtype_rightt   nt   ct   at   bt   ptx(    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   _run   s    "c         C@ s&   |  j  t t j d t j t j  d  S(   Ns   max.f64(   R-   R   R   t   maximumR   (   R"   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   test_max_f8f81   s    c         C@ s&   |  j  t t j d t j t j  d  S(   Ns   max.f64(   R-   R   R   R.   t   float32R   (   R"   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   test_max_f4f89   s    c         C@ s&   |  j  t t j d t j t j  d  S(   Ns   max.f64(   R-   R   R   R.   R   R0   (   R"   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   test_max_f8f4A   s    c         C@ s&   |  j  t t j d t j t j  d  S(   Ns   max.f32(   R-   R   R   R.   R0   (   R"   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   test_max_f4f4I   s    c         C@ s&   |  j  t t j d t j t j  d  S(   Ns   min.f64(   R-   R   R   t   minimumR   (   R"   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   test_min_f8f8Q   s    c         C@ s&   |  j  t t j d t j t j  d  S(   Ns   min.f64(   R-   R   R   R4   R0   R   (   R"   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   test_min_f4f8Y   s    c         C@ s&   |  j  t t j d t j t j  d  S(   Ns   min.f64(   R-   R   R   R4   R   R0   (   R"   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   test_min_f8f4a   s    c         C@ s&   |  j  t t j d t j t j  d  S(   Ns   min.f32(   R-   R   R   R4   R0   (   R"   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   test_min_f4f4i   s    (   t   __name__t
   __module__R-   R/   R1   R2   R3   R5   R6   R7   R8   (    (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyR      s   								t   __main__(   t
   __future__R    R   t   numpyR   t   numbaR   R   t   numba.cuda.testingR   R   R   R   R   t   TestCaseR   R9   t   main(    (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_minmax.pyt   <module>   s   				V