
    hi                         S SK rS SKJrJrJrJr  S SKJrJ	r	J
r
  S SKJr  S SKJrJrJrJrJr  S SKJr  S r " S S	\5      r " S
 S\5      rg)    N)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)OpRunc           
      	  ^ U R                   [        :X  a  U R                   R                  S   S   S:X  a  U[        R                  :X  a  U $ U R                  5       n[        R                  " UR                  S   [        R                  S9n[        UR                  S   5       H  n[        X5   5      nXdU'   M     [        U5      nUR                  U5      R                  U R                  5      $ [        S[        R                   4["        [$        S[        R&                  4S [(        S[        R*                  4[,        [.        S[        R0                  4S	 0nUR3                  5        H  u  u  ppU R                   U	:X  d  M  U R                   R                  S   S   U
:X  d  M<  X:X  a  U s  $ U R                  5       n[        R                  " UR                  S   [        R                  S9n[        UR                  S   5       H  nU" X5   5      nXdU'   M     [        U5      nUR                  U5      R                  U R                  5      s  $    U[        R                  :X  a  U R                  [        R                  5      R                  5       n[        R                  " UR                  [        S9R                  5       n[        UR                  S   5       H  n[5        XE   S
S9nXmU'   M     UR                  U R                  5      $ [        R                   [        U4S j4[        R&                  [$        U4S j4[        R*                  [(        U4S j4[        R0                  [.        U4S j40nUR3                  5        H  u  n	u  pX:X  d  M  U R                  [        R                  5      R                  5       n[        R                  " UR                  US9R                  5       n[        UR                  S   5       H  nU" XE   5      nXmU'   M     UR                  U R                  5      s  $    U[        R6                  :X  a  U R                  [        R8                  5      $ [        U5      nU R                  U5      $ )Nr   r   )dtypee4m3fne4m3fnuzc                      [        U SS06$ )NuzT)r   argss    T/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/reference/ops/op_cast.py<lambda>cast_to.<locals>.<lambda>0   s    .>>    e5m2e5m2fnuzc                      [        U SSS.6$ )NT)fnr   )r	   r   s    r   r   r   6   s    .$Gr   T)truncatec                     > [        U ST06$ Nsaturater   r   r$   s    r   r   r   P       /IIr   c                     > [        U STS.6$ )NT)r   r$   r%   r&   s    r   r   r   T   s    /$Rr   c                     > [        U ST06$ r#   r   r&   s    r   r   r   X   r'   r   c                     > [        U SSTS.6$ )NT)r    r   r$   r*   r&   s    r   r   r   \   s    /$4(r   )r   r   descrr
   BFLOAT16ravelnpemptyshapefloat32ranger   r   astypereshaper   FLOAT8E4M3FNr   r   FLOAT8E4M3FNUZr   
FLOAT8E5M2r	   r   FLOAT8E5M2FNUZitemsr   STRINGstr_)xtor$   xrxfielr   f8dtst
proto_typecvtyf8backnpdts     `             r   cast_torK      s   ww(qww}}Q/2j@%%%HWWYXXbhhqk4rxx{#A$RU+BqE $ ),yy''00 
x!9!9:<Q&&	
 ?	V[3346K&&	
 H
B &(XXZ!77b=QWW]]1-a0B6B"((1+RZZ8B288A;'Z1 ( -R0E99U#++AGG44 &0 
[!!!XXbjj!'')HHRXXX.446qwwqz"A$RUT:BaD # yy!! 	  I#
 	""R%
 	I!
 	""%
F( "<<>KT8"**%++-B.446A1771:&Z! ' 99QWW%% * 
[xx  $R(E88E?r   c                       \ rS rSrSS jrSrg)Cast_1q   Nc                     [        XSS94$ )NT)r$   rK   )selfr=   r>   s      r   _runCast_1._runr   s    -//r    N__name__
__module____qualname____firstlineno__rR   __static_attributes__rT   r   r   rM   rM   q   s    0r   rM   c                       \ rS rSrSS jrSrg)Cast_19v   Nc                     [        XU5      4$ rU   rP   )rQ   r=   r>   r$   s       r   rR   Cast_19._runw   s    x(**r   rT   )NNrV   rT   r   r   r]   r]   v   s    +r   r]   )numpyr/   onnx.helperr   r   r   r   onnx.numpy_helperr   r   r	   onnx.onnx_pbr
   #onnx.reference.custom_element_typesr   r   r   r   r   onnx.reference.op_runr   rK   rM   r]   rT   r   r   <module>rg      sQ      
 %  (Pf0U 0
+e +r   