o
    i                     @   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__ N/home/ubuntu/veenaModal/venv/lib/python3.10/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v 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 rA| d t| dk s6t| 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   numba.core.errorsr   RuntimeErrorr   r   _launch_help_urlformatr%   r&   r   r   r   r   <module>   s    
