ó
\K]c           @@ sE   d  d l  m Z m Z d  d l Z d e f d     YZ d   Z d S(   i    (   t   print_functiont   absolute_importNt   KernelRuntimeErrorc           B@ s   e  Z d d d   Z RS(   c         C@ sW   | |  _  | |  _ | |  _ d } | |  j  |  j |  j f } t t |   j |  d  S(   Ns1   An exception was raised in thread=%s block=%s
	%s(   t   tidt   ctaidt   msgt   superR   t   __init__(   t   selfR   R   R   t   t(    (    s0   lib/python2.7/site-packages/numba/cuda/errors.pyR      s    			N(   t   __name__t
   __module__t   NoneR   (    (    (    s0   lib/python2.7/site-packages/numba/cuda/errors.pyR      s   c         C@ s1   d   } | |  d  }  | | d  } |  | f S(   sE   
    Normalize and validate the user-supplied kernel dimensions.
    c         S@ sū   t  |  t t f  s! |  g }  n t |   }  t |   d k rX t d | |  f   n  x9 |  D]1 } t  | t j  s_ t d | |  f   q_ q_ Wx# t |   d k  rđ |  j d  q W|  S(   Ni   s3   %s must be a sequence of 1, 2 or 3 integers, got %rs)   %s must be a sequence of integers, got %ri   (	   t
   isinstancet   tuplet   listt   lent
   ValueErrort   numberst   Integralt	   TypeErrort   append(   t   dimt   namet   v(    (    s0   lib/python2.7/site-packages/numba/cuda/errors.pyt	   check_dim   s    t   griddimt   blockdim(    (   R   R   R   (    (    s0   lib/python2.7/site-packages/numba/cuda/errors.pyt   normalize_kernel_dimensions   s    	(   t
   __future__R    R   R   t   RuntimeErrorR   R   (    (    (    s0   lib/python2.7/site-packages/numba/cuda/errors.pyt   <module>   s   