
    h                         S SK JrJr  S SKrS SKJr  S SKJrJ	r	J
r
Jr  S SKJrJrJrJr  S SKJr   " S S\5      r " S	 S
\5      r " S S\5      rg)    )OptionalTupleN)TensorProto)float32_to_float8e4m3float32_to_float8e5m2np_dtype_to_tensor_dtypetensor_dtype_to_np_dtype)float8e4m3fnfloat8e4m3fnuz
float8e5m2float8e5m2fnuz)OpRunc                   
   \ rS rSr\R
                  " \5      r\R
                  " \5      rS\R                  S\	4S jr
   SS\R                  S\R                  S\\R                     S\	S	\S\\R                     4S
 jjrSrg)_CommonQuantizeLinear   
zero_point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     _/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/reference/ops/op_quantize_linear.pyget_zero_point_type)_CommonQuantizeLinear.get_zero_point_type   s    ,  &&q)!,8+++.  &&q)!,
:---z)j.>.>.D.DQ.G.Jf.T))).  &&q)!,
:---'
(8(899    Nxy_scaleaxissaturatec                 R   [        UR                  5      S:  a  [        S5      e[        UR                  5      S:  a  UR                  S:X  a  US   n[        UR                  5      S:  a=  UR                   Vs/ s H  nSPM     nn[        U5      Xt'   XR	                  U5      -  nOX-  nUR                  nUGb|  U R                  U5      nU[        R                  :X  a  [        R                  " U5      R                  [        R                  5      n	[        UR                  5      S:  a  XR	                  U5      -  n	OX-  n	[        U5      n
[        R                  " U	SS5      R                  U
5      4$ U[        R                  :X  a  [        R                  " U5      R                  [        R                  5      n	[        UR                  5      S:  a  XR	                  U5      -  n	OX-  n	[        U5      n
[        R                  " U	SS5      R                  U
5      4$ U[        R                  :X  a)  [         R#                  XS9nUR                  [$        5      4$ U[        R&                  :X  a+  [         R#                  USUS	9nUR                  [(        5      4$ U[        R*                  :X  a)  [         R-                  XS9nUR                  [.        5      4$ U[        R0                  :X  a,  [         R-                  USSUS
9nUR                  [2        5      4$ [        SU SUR4                   S35      e[        R6                  n
[        R                  " U5      R                  [        R                  5      n	[        R                  " U	SS5      R                  U
5      4$ s  snf )N   z%Input 2 must be a vector or a number.r      i   )r'   T)uzr'   )fnr,   r'   z0Unexpected tensor_type for input 2: tensor_type=z, zero_point.dtype=.)lenshapeRuntimeErrorsizereshaper!   r   UINT8nprintastypeint32r	   clipINT8r   r   r   r
   r   r   r   r   r   r   r   r   uint8)r   r$   r%   r   r&   r'   s	new_shapetensor_typexir   f8s               r    
common_run _CommonQuantizeLinear.common_run2   s    w}}!FGGw}}!glla&7ajGw}}!$%GG,GqGI,!'lIOOOI..AAI!22:>Kk///WWQZ&&rxx0w}}%),,Y77B$B0=As+2259;;k...WWQZ&&rxx0w}}%),,Y77B$B0=D#.55e<>>k666*@@@V		,/11k888*@@$ A  		.133k444*@@@V		*-//k888*@@$4( A  		.133B;- P$$.$4$4#5Q8 
 WWQZrxx(As#**5133m -s   :N$ )Nr)   T)__name__
__module____qualname____firstlineno__r5   	vectorizer   r   ndarrayintr!   r   boolr   rA   __static_attributes__rC   r#   r    r   r      s    LL)>?LL)>?:bjj :S :0 ,0C4::C4 C4 RZZ(	C4
 C4 C4 
rzz	C4 C4r#   r   c                   "    \ rS rSrSS.S jrSrg)QuantizeLinear_10x   N)r&   c                &    U R                   " USU06$ )Nr&   rA   )r   r&   argss      r    _runQuantizeLinear_10._runy   s    0400r#   rC   rD   rE   rF   rG   rS   rL   rC   r#   r    rN   rN   x   s    # 1 1r#   rN   c                   $    \ rS rSrSSS.S jrSrg)QuantizeLinear_19~   Nr&   r'   c                &    U R                   " X1US.6$ )NrY   rQ   )r   r&   r'   rR   s       r    rS   QuantizeLinear_19._run   s    (CCr#   rC   rU   rC   r#   r    rW   rW   ~   s    #d D Dr#   rW   )typingr   r   numpyr5   onnxr   onnx.helperr   r   r   r	   #onnx.reference.custom_element_typesr
   r   r   r   onnx.reference.op_runr   r   rN   rW   rC   r#   r    <module>rb      sT    #     ([4E [4|1- 1D- Dr#   