
    
NgR                         d dl Zd dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZ d Z G d	 d
e          Z G d de          ZdS )    N)subbyte)float32_to_bfloat16float32_to_float8e4m3float32_to_float8e5m2tensor_dtype_to_np_dtype)bfloat16_to_float32float8e4m3_to_float32float8e5m2_to_float32)TensorProto)bfloat16float8e4m3fnfloat8e4m3fnuz
float8e5m2float8e5m2fnuzint4uint4)OpRunc           
         | j         t          k    r| j         j        d         d         dk    r|t          j        k    r| S |                                 }t          j        |j        d         t          j	                  }t          |j        d                   D ]}t          ||                   }|||<   t          |          }|                    |                              | j                  S t          dt          j        ft"          t$          dt          j        fd t(          dt          j        ft,          t.          dt          j        fd	 i}|                                D ]\  \  }	}
}}| j         |	k    r| j         j        d         d         |
k    r||k    r| c S |                                 }t          j        |j        d         t          j	                  }t          |j        d                   D ]} |||                   }|||<   t          |          }|                    |                              | j                  c S |t          j        k    r|                     t          j	                                                  }t          j        |j        t                                                    }t          |j        d                   D ]}t5          ||         d
          }|||<   |                    | j                  S t6          dt          j        dft:          dt          j        d
fg}|D ]\  }}}}| j         |k    rL| j         j        d         d         |k    r0||k    r| c S t          |          }|                     |          c S ||k    r|                     t          j	                                                  }t          j        |j        |                                          }t          |j        d                   D ]#}t?          j         ||         |          }|||<   $|                    | j                  c S t          j        t          fdft          j        t$          fdft          j        t(          fdft          j        t.          fdfi}|                                D ]\  }	\  }}||	k    r|                     t          j	                                                  }t          j        |j        |                                          }t          |j        d                   D ]} |||                   }|||<   |                    | j                  c S |t          j!        k    r|                     t          j"                  S t          |          }|                     |          S )Nr   r   )dtypee4m3fne4m3fnuzc                      t          | ddiS )NuzT)r	   argss    V/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/reference/ops/op_cast.py<lambda>zcast_to.<locals>.<lambda>3   s    .>>>     e5m2e5m2fnuzc                      t          | dddS )NT)fnr   )r
   r   s    r   r   zcast_to.<locals>.<lambda>9   s    .$GGG r   T)truncater   Fr   )signedc                      t          | diS Nsaturater   r   r'   s    r   r   zcast_to.<locals>.<lambda>f       /III r   c                      t          | ddS )NT)r   r'   r(   r)   s    r   r   zcast_to.<locals>.<lambda>j   s    /$RRR r   c                      t          | diS r&   r   r)   s    r   r   zcast_to.<locals>.<lambda>n   r*   r   c                       t          | dddS )NT)r"   r   r'   r-   r)   s    r   r   zcast_to.<locals>.<lambda>r   s     /$4(   r   )#r   r   descrr   BFLOAT16ravelnpemptyshapefloat32ranger   r   astypereshaper   FLOAT8E4M3FNr	   r   FLOAT8E4M3FNUZr   
FLOAT8E5M2r
   r   FLOAT8E5M2FNUZitemsr   r   UINT4r   INT4r   float32_to_4bit_unpackedSTRINGstr_)xtor'   xrxfielr   f8dtst
proto_typecvtyi4np_typenp_desctensor_typer$   to_typef8backnpdts     `                   r   cast_torV   !   s   w(qw}Q/2j@@%%%HWWYYXbhqk444rx{## 	 	A$RU++BBqEE(,,yy''000 
x!9:<Q&	
 ?>	V[346K&	
 HG
B &(XXZZ 
5 
5!Rc7b==QW]1-a0B66ZB"(1+RZ888B28A;''  SAZZ1,R00E99U##++AG44444	[!!!XXbj!!''))HRXX...4466qwqz"" 	 	A$RUT:::BAaDDyy!!! 
*E2	v{'.
B 24 & &-+v7g!'-"21"5"@"@[  .r22G88G$$$$$"*%%++--B1117799A171:&&  5beFKKK!99QW%%%%%  	 IIII#
 	"RRRR%
 	IIII!
 	"   %
F( "<<>> & &KT388"*%%++--B...4466A171:&&  SAZZ!99QW%%%%%  
[xx   $R((E88E??r   c                       e Zd ZddZdS )Cast_1Nc                 (    t          ||d          fS )NT)r'   rV   )selfrC   rD   s      r   _runzCast_1._run   s    2---//r   N__name__
__module____qualname__r\    r   r   rX   rX      s(        0 0 0 0 0 0r   rX   c                       e Zd ZddZdS )Cast_19Nc                 &    t          |||          fS r]   rZ   )r[   rC   rD   r'   s       r   r\   zCast_19._run   s    2x((**r   )NNr^   rb   r   r   rd   rd      s(        + + + + + +r   rd   )numpyr2   onnxr   onnx.helperr   r   r   r   onnx.numpy_helperr   r	   r
   onnx.onnx_pbr   #onnx.reference.custom_element_typesr   r   r   r   r   r   r   onnx.reference.op_runr   rV   rX   rd   rb   r   r   <module>rm      s                                
 % $ $ $ $ $                  ( ' ' ' ' 'c c cL0 0 0 0 0U 0 0 0
+ + + + +e + + + + +r   