o
    Tæ«d0  ã                   @   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                       ó   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   Úint32ÚsuperÚ__init__)ÚselfÚdmmÚfe_typeÚmembers©Ú	__class__© úd/home/ncw/WWW/www-new/content/articles/pi-bbp/venv/lib/python3.10/site-packages/numba/cuda/models.pyr      s
   ýzDim3Model.__init__©Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__r   r   r   r   r      ó    r   c                       r
   )ÚGridGroupModelc                    s   t  d¡}tƒ  |||¡ d S )Né@   )r   ÚIntTyper   r   ©r   r   r   Úbe_typer   r   r   r      s   
zGridGroupModel.__init__r   r   r   r   r   r       r   r    c                       r
   )Ú
FloatModelc                    s^   |t jkrt d¡}n|t jkrt ¡ }n|t jkrt ¡ }nt|ƒ‚t	t
| ƒ |||¡ d S )Né   )r   Úfloat16r   r"   Úfloat32Ú	FloatTypeÚfloat64Ú
DoubleTypeÚNotImplementedErrorr   r%   r   r#   r   r   r   r   $   s   




zFloatModel.__init__r   r   r   r   r   r%   "   r   r%   )Ú	functoolsÚllvmliter   Únumba.core.datamodel.registryr   r   Únumba.core.extendingr   Ú
numba.corer   Únumba.cuda.typesr   r   r	   Úcuda_data_managerÚpartialÚregister_modelÚStructModelr   ÚPrimitiveModelr    ÚFloatr%   ÚOpaqueModelr   r   r   r   Ú<module>   s    
