๓
\K]c           @` sฎ   d  d l  m Z m Z m Z d  d l Z d  d l m Z m Z m	 Z	 d  d l
 m Z m Z d   Z d   Z d   Z d e e j f d	     YZ e d
 k rช e j   n  d S(   i    (   t   print_functiont   absolute_importt   divisionN(   t   cudat   int32t
   complex128(   t   unittestt   SerialMixinc         C` st   t  j j d d t } x) t | j d  D] } |  | | | <q, Wx) t | j d  D] } | | | | <qX Wd  S(   Ni่  t   dtypei    (   R   t   localt   arrayR   t   ranget   shape(   t   At   Bt   Ct   i(    (    sD   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_localmem.pyt   culocal	   s
    c         C` st   t  j j d d t } x) t | j d  D] } |  | | | <q, Wx) t | j d  D] } | | | | <qX Wd  S(   Nid   R   i    (   R   R	   R
   R   R   R   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_localmem.pyt   culocalcomplex   s
    c         C` st   t  j j d d t } x) t | j d  D] } |  | | | <q, Wx) t | j d  D] } | | | | <qX Wd  S(   Ni   R   i    (   i   (   R   R	   R
   R   R   R   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_localmem.pyt   culocal1tuple   s
    t   TestCudaLocalMemc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s|   t  j d  t  } |  j d | j k  t j d d d } t j |  } | | |  |  j t j | | k   d  S(   Ns   void(int32[:], int32[:])s   .locali่  R   R   (	   R   t   jitR   t
   assertTruet   ptxt   npt   aranget
   zeros_liket   all(   t   selft   jculocalR   R   (    (    sD   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_localmem.pyt   test_local_array"   s    c         C` sf   t  j d  t  } t j d d d } t j |  } | | |  |  j t j | | k   d S(   s6   Ensure that the macro can be use with 1-tuple
        s   void(int32[:], int32[:])i   R   R   N(   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_localmem.pyt   test_local_array_1_tuple*   s
    c         C` st   d } t  j |  t  } t j d d d d d } t j |  } | | |  |  j t j | | k   d  S(   Ns"   void(complex128[:], complex128[:])id   R   R   i   y               @(   R   R   R   R   R   R   R   R   (   R   t   sigt   jculocalcomplexR   R   (    (    sD   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_localmem.pyt   test_local_array_complex5   s    (   t   __name__t
   __module__R   R   R"   (    (    (    sD   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_localmem.pyR   !   s   		t   __main__(   t
   __future__R    R   R   t   numpyR   t   numbaR   R   R   t   numba.cuda.testingR   R   R   R   R   t   TestCaseR   R#   t   main(    (    (    sD   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_localmem.pyt   <module>   s   			