o
    toi                     @  sz   d dl mZ d dlZd dlZd dlmZ 	ddddZG dd deZG dd deZ	G dd deZ
G dd deZdS )    )annotationsN)OpRunupx
np.ndarraytoonnx.TensorProto.DataTypesaturatebool
round_modestrc                 C  s   |t jjkr| tjS t j|}|t jjt jj	t jj
t jjhv r+|r+t j| |S |t jjkr<t j| |||S | |S N)onnxTensorProtoSTRINGastypenpstr_helpertensor_dtype_to_np_dtypeFLOAT8E4M3FNFLOAT8E4M3FNUZ
FLOAT8E5M2FLOAT8E5M2FNUZnumpy_helpersaturate_cast
FLOAT8E8M0to_float8e8m0)r   r   r	   r   dtype r   N/home/ubuntu/.local/lib/python3.10/site-packages/onnx/reference/ops/op_cast.pycast_to   s    	
r!   c                   @     e Zd ZdddZdS )Cast_1Nc                 C  s   t ||dddfS )NTr   )r	   r   r!   )selfr   r   r   r   r    _run&      zCast_1._runr   __name__
__module____qualname__r&   r   r   r   r    r#   %       r#   c                   @  r"   )Cast_19Nc                 C  s   t |||ddfS )Nr   )r   r$   )r%   r   r   r	   r   r   r    r&   +   r'   zCast_19._run)NNr(   r   r   r   r    r-   *   r,   r-   c                   @  r"   )Cast_24Nc                 C     t ||||fS r   r$   r%   r   r   r	   r   r   r   r    r&   0      zCast_24._runNNNr(   r   r   r   r    r.   /   r,   r.   c                   @  r"   )Cast_25Nc                 C  r/   r   r$   r0   r   r   r    r&   5   r1   zCast_25._runr2   r(   r   r   r   r    r3   4   r,   r3   )r   )r   r   r   r   r	   r
   r   r   )
__future__r   numpyr   r   onnx.reference.op_runr   r!   r#   r-   r.   r3   r   r   r   r    <module>   s   