U
    ?h0                     @   s   d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZ e Ze eeZeeG dd dejZeeG d	d
 d
ejZee	jG dd dejZeeej dS )    N)ir)DataModelManagerregister)models)types)Dim3	GridGroupCUDADispatcherc                       s   e Zd Z fddZ  ZS )	Dim3Modelc                    s0   dt jfdt jfdt jfg}t ||| d S )Nxyz)r   Zint32super__init__)selfdmmfe_typemembers	__class__ C/var/www/html/venv/lib/python3.8/site-packages/numba/cuda/models.pyr      s
    zDim3Model.__init____name__
__module____qualname__r   __classcell__r   r   r   r   r
      s   r
   c                       s   e Zd Z fddZ  ZS )GridGroupModelc                    s   t d}t ||| d S )N@   )r   IntTyper   r   r   r   r   Zbe_typer   r   r   r      s    
zGridGroupModel.__init__r   r   r   r   r   r      s   r   c                       s   e Zd Z fddZ  ZS )
FloatModelc                    s^   |t jkrtd}n0|t jkr*t }n|t jkr>t }nt|t	t
| ||| d S )N   )r   Zfloat16r   r   Zfloat32Z	FloatTypeZfloat64Z
DoubleTypeNotImplementedErrorr   r!   r   r    r   r   r   r   $   s    




zFloatModel.__init__r   r   r   r   r   r!   "   s   r!   )	functoolsZllvmliter   Znumba.core.datamodel.registryr   r   Znumba.core.extendingr   Z
numba.corer   Znumba.cuda.typesr   r   r	   Zcuda_data_managerpartialZregister_modelZStructModelr
   ZPrimitiveModelr   Floatr!   ZOpaqueModelr   r   r   r   <module>   s   
