U
    qh0                     @  s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZmZmZ dd ZG dd	 d	eZG d
d deZdS )    )annotations)np_dtype_to_tensor_dtype)TensorProto)OpRun)bfloat16cast_tofloat8e4m3fnfloat8e4m3fnuz
float8e5m2float8e5m2fnuzint4uint4c                 C  s&  |j tkr&|j jd d dkr&tj}n|j tkrL|j jd d dkrLtj}n|j tkrr|j jd d dkrrtj}n|j t	kr|j jd d dkrtj
}n|j tkr|j jd d dkrtj}nZ|j tkr|j jd d dkrtj}n4|j tkr|j jd d dkrtj}n
t|j }t| ||fS )	Nr   r   Ze4m3fnZe4m3fnuzZe5m2Ze5m2fnuzr   r   )Zdtyper   descrr   ZBFLOAT16r   ZFLOAT8E4M3FNr	   ZFLOAT8E4M3FNUZr
   Z
FLOAT8E5M2r   ZFLOAT8E5M2FNUZr   ZUINT4r   ZINT4r   r   )xysaturateto r   C/tmp/pip-unpacked-wheel-xnis5xre/onnx/reference/ops/op_cast_like.py
_cast_like   s     "
r   c                   @  s   e Zd Zdd ZdS )CastLike_15c                 C  s   t ||dS )NTr   )selfr   r   r   r   r   _run+   s    zCastLike_15._runN__name__
__module____qualname__r   r   r   r   r   r   *   s   r   c                   @  s   e Zd ZdddZdS )CastLike_19Nc                 C  s   t |||S )Nr   )r   r   r   r   r   r   r   r   0   s    zCastLike_19._run)Nr   r   r   r   r   r   /   s   r   N)
__future__r   Zonnx.helperr   Zonnx.onnx_pbr   Zonnx.reference.op_runr   Zonnx.reference.ops.op_castr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   <module>   s   (