o
    8Î®c¼  ã                   @   sª   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZm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 )é    )Úir)Úregister_default)Úregister_modelÚ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__© ú8/tmp/pip-target-vg8gfxp4/lib/python/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%   N)Úllvmliter   Únumba.core.datamodel.registryr   Únumba.core.extendingr   r   Ú
numba.corer   Únumba.cuda.typesr   r   r	   ÚStructModelr   ÚPrimitiveModelr    ÚFloatr%   ÚOpaqueModelr   r   r   r   Ú<module>   s    
