o
    پi                     @   sp   d dl Z d dlmZ dZdZdZeddG dd	 d	ZeddG d
d deZeddG dd deZdS )    N)	dataclassg      @g      |@g      n@T)frozenc                   @   s8   e Zd ZU dZejdB ed< dejfddZdd ZdS )BaseFlexDataNdtypexc                 C   s   | j d u r|S || j S N)r   viewselfr    r   K/home/ubuntu/.local/lib/python3.10/site-packages/triton_kernels/numerics.pyr      s   
zBaseFlexData.viewc                 C   s&   | j d u s|j jdkr|S || j S )N   )r   itemsizer   r	   r   r   r   reinterpret   s   zBaseFlexData.reinterpret)	__name__
__module____qualname__r   torch__annotations__Tensorr   r   r   r   r   r   r   	   s   
 r   c                   @   s,   e Zd ZU dZejdB ed< edd ZdS )
InFlexDataNscalec                 C   s   | j d u rdS t| j dkS )NFr   )r   lenr
   r   r   r   is_per_batch   s   zInFlexData.is_per_batch)	r   r   r   r   r   r   r   propertyr   r   r   r   r   r      s   
 r   c                   @   sL   e Zd ZU dZejdB ed< dZejdB ed< dZejdB ed< dd Z	dS )OutFlexDataNexpected_scaleactual_scalechecksum_scalec                 c   s    | j V  | jV  | jV  d S r   )r   r   r   r   r   r   r   __iter__'   s   zOutFlexData.__iter__)
r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   !   s
   
 r   )	r   dataclassesr   MAX_FINITE_FLOAT8E5MAX_FINITE_FLOAT8E4NVMAX_FINITE_FLOAT8E4B8r   r   r   r   r   r   r   <module>   s    