
    h                     ~    S SK JrJr  S SKrS SKJr  S SKJr  S SK	J
r
Jr  S SKJrJrJrJr  S SKJr   " S S	\5      rg)
    )OptionalTupleN)TensorProto)np_dtype_to_tensor_dtype)float8e4m3_to_float32float8e5m2_to_float32)float8e4m3fnfloat8e4m3fnuz
float8e5m2float8e5m2fnuz)OpRunc            
           \ rS rSrS\R
                  S\4S jr\S\R
                  S\	\S4   S\
\   S\R
                  4S	 j5       r  SS\R
                  S\R
                  S\
\R
                     S\
\   4S jjrSrg
)DequantizeLinear   xreturnc                 L   UR                   [        :X  a0  UR                   R                  S   S   S:X  a  [        R                  $ UR                   [
        :X  a0  UR                   R                  S   S   S:X  a  [        R                  $ UR                   [        :X  a0  UR                   R                  S   S   S:X  a  [        R                  $ UR                   [        :X  a0  UR                   R                  S   S   S:X  a  [        R                  $ [        UR                   5      $ )Nr   e4m3fne4m3fnuze5m2e5m2fnuz)dtyper	   descrr   FLOAT8E4M3FNr
   FLOAT8E4M3FNUZr   
FLOAT8E5M2r   FLOAT8E5M2FNUZr   )selfr   s     a/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/reference/ops/op_dequantize_linear.py
get_x_typeDequantizeLinear.get_x_type   s    77l"qww}}Q'7':h'F+++77n$q)9!)<
)J---77j QWW]]1%5a%8F%B)))77n$q)9!)<
)J---'00    valueshape.axisc           
      (   Uc  [        S5      e[        U R                  5      S:X  a  U $ S/[        U5      -  n U R                  X2'   U R                  [        U5      5      $ ! [         a%  n[	        SU SU R                   SU S35      UeS nAff = f)Nzaxis cannot be None.r      zaxis is out of boundary, axis=z, value.shape=z, shape=.)
ValueErrorlenr$   size
IndexErrorreshapetuple)r#   r$   r%   dimses        r   reshape_inputDequantizeLinear.reshape_input"   s     <344u{{q LsSZ	DJ }}U4[))  	0 7${{m8E7!= 	s   A" "
B, BBNx_scalex_zero_pointc                 v   [        UR                  5      S:  a  [        S5      eU R                  U5      nU[        R
                  [        R                  [        R                  [        R                  1;   nUbq  U(       dj  U R                  U5      nXW:w  a  [        SU SU S35      eUR                  [        R                  5      [        R                  X1R                  U5      -
  nGOU(       al  Ubi  UR                  [        R                  5      n	U	R                  5       n
U	R!                  5       nX:w  d  U
[        R                  " S5      :w  a  [        S5      eU[        R
                  :X  a  [#        U5      nO~U[        R                  :X  a  [#        USS	9nO_U[        R                  :X  a  [%        U5      nO?U[        R                  :X  a  [%        USSS
9nOUR                  [        R                  5      nU[        R                  X!R                  U5      -  nUR                  UR&                  5      4$ )Nr'   z%Input 2 must be a vector or a number.zType mismatch z != z in DequantizeLinear.r   z>x_zero_point is not null but should be zero for float 8 types.T)uz)fnr6   )r*   r$   RuntimeErrorr    r   r   r   r   r   astypenpfloat32r   r1   uint8minmaxr   r   r   )r   r   r3   r4   r%   x_typef8_type	zero_typedxu_x_zero_pointumiumays                r   _runDequantizeLinear._run4   s    w}}!FGG#$$&&""&&	
 
 #G5I""$VHD;PQ  "**%(8(F(Fggt) B <3!-!4!4RXX!>$((*$((*:!3&X  111*1-;555*16;111*1-;555*1$?XXbjj)!//$GG'))r"    )NN)__name__
__module____qualname____firstlineno__r:   ndarrayintr    staticmethodr   r   r1   rG   __static_attributes__rI   r"   r   r   r      s    	1BJJ 	13 	1 *zz*"'S/*9A#*	* ** .2"/*::/* /* rzz*	/*
 sm/* /*r"   r   )typingr   r   numpyr:   onnxr   onnx.helperr   onnx.numpy_helperr   r   #onnx.reference.custom_element_typesr	   r
   r   r   onnx.reference.op_runr   r   rI   r"   r   <module>rY      s3    #   0 J  (M*u M*r"   