U
    ?h                     @   sN   d dl Z d dlmZ G dd deZG dd deZdZdeZd	d
 Z	dS )    N)LoweringErrorc                       s   e Zd Zd fdd	Z  ZS )KernelRuntimeErrorNc                    s>   || _ || _|| _d}|| j | j| jf }tt| | d S )Nz1An exception was raised in thread=%s block=%s
	%s)tidctaidmsgsuperr   __init__)selfr   r   r   t	__class__ C/var/www/html/venv/lib/python3.8/site-packages/numba/cuda/errors.pyr      s    zKernelRuntimeError.__init__)NN)__name__
__module____qualname__r   __classcell__r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )CudaLoweringErrorN)r   r   r   r   r   r   r   r      s   r   zJhttps://numba.readthedocs.io/en/stable/cuda/kernels.html#kernel-invocationz
Kernel launch configuration was not specified. Use the syntax:

kernel_function[blockspergrid, threadsperblock](arg0, arg1, ..., argn)

See {} for help.

c                 C   s8   dd }d| |fkrt t|| d} ||d}| |fS )zE
    Normalize and validate the user-supplied kernel dimensions.
    c                 S   s   t | ttfs| g} nt| } t| dkr:td|| f | D ] }t |tjs>td|| f q>t| dk rx| d q`t| S )N   z3%s must be a sequence of 1, 2 or 3 integers, got %rz)%s must be a sequence of integers, got %r   )	
isinstancetuplelistlen
ValueErrornumbersIntegral	TypeErrorappend)dimnamevr   r   r   	check_dim%   s    z.normalize_kernel_dimensions.<locals>.check_dimNgriddimblockdim)r   missing_launch_config_msg)r#   r$   r"   r   r   r   normalize_kernel_dimensions    s    

r&   )
r   Znumba.core.errorsr   RuntimeErrorr   r   Z_launch_help_urlformatr%   r&   r   r   r   r   <module>   s   
