ó
\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
 d   Z d e
 e	 j f d     YZ e d k r e	 j   n  d S(	   i    (   t   print_functiont   absolute_importN(   t   cudat   float32(   t   unittestt   SerialMixinc         C@ s`   t  j t  j |  |   j |  |   d t  j } t  j t  j |   d d | j } | | f S(   Nt   dtypei    (   t   npt   arrayt   aranget   reshapeR   R   (   t   nt   At   B(    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_nondet.pyt   generate_input   s    1%t   TestCudaNonDetc           B@ s   e  Z d    Z RS(   c         C@ s  t  j d t d d  d d  f t d d  d d  f t g  d    } d } t |  \ } } t j | j d | j } d	 } d
 } t  j |  } t  j |  }	 t  j | d t	 }
 | | | f |
 | |	  t j
 | t j |   } t j j |
 j   |  d S(   si   Test issue with loop not running due to bad sign-extension at the for loop
        precondition.
        t   argtypesNc         S@ sť   t  j d  \ } } t  j j t  j j } t  j j t  j j } |  j d } |  j d } xY t | | |  D]E }	 x< t | | |  D]( }
 | |
 |	 f | |	 |  |
 |	 f <q Wqn Wd  S(   Ni   i    i   (   R   t   gridt   gridDimt   xt   blockDimt   yt   shapet   range(   t   ct   at   bt   startXt   startYt   gridXt   gridYt   heightt   widthR   R   (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_nondet.pyt   diagproduct   s    i   R   i    i   t   copy(   i    i   (   i   i   (   R   t   jitR   R   R   t   emptyR   R   t	   to_devicet   Falset   dott   diagt   testingt   assert_array_almost_equalt   copy_to_host(   t   selfR!   t   NR   R   t   Ft   blockdimt   griddimt   dAt   dBt   dFt   E(    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_nondet.pyt   test_for_pre   s    Q(   t   __name__t
   __module__R5   (    (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_nondet.pyR      s   t   __main__(   t
   __future__R    R   t   numpyR   t   numbaR   R   t   numba.cuda.testingR   R   R   t   TestCaseR   R6   t   main(    (    (    sB   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_nondet.pyt   <module>   s   	$