§
    2�Åjì  ã                  ó*  — d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmZ ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        hZej        dej        dej        d	ej        d
ej        dej        dej        dej        diZ G d„ de
¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# G d„ de¦  «        Z$dS )é    )ÚannotationsN)ÚTensorProto)Únp_dtype_to_tensor_dtypeÚtensor_dtype_to_np_dtype)ÚOpRun)Úreshape_input)r   éÿ   )i€ÿÿÿé   )r   iÿÿ  )i €ÿÿiÿ  )r   é   )iøÿÿÿé   )r   é   )éþÿÿÿé   c                  ó$   — e Zd Z	 	 	 	 	 	 ddd„ZdS )Ú_CommonQuantizeLinearNr   TÚxú
np.ndarrayÚy_scaleÚ
zero_pointúnp.ndarray | NoneÚaxisÚintÚsaturateÚboolÚ
block_sizeú
int | NoneÚoutput_dtypeúTensorProto.DataType | NoneÚ	precisionÚreturnútuple[np.ndarray]c	                óš  — t          ||j        ||¦  «        }|}	|�3t          |j        ¦  «        }
|r||
k    rt	          d|› d|
› �¦  «        ‚|
}	|	pt
          j        }	|	t          vrt	          d|	› d�¦  «        ‚|�t          ||j        ||¦  «        }|r;t          |¦  «        }| 	                    |¦  «        | 	                    |¦  «        z  }n||z  }|	t          v rŠt          j        |¦  «         	                    t          j        ¦  «        }|�||z  }t          |	¦  «        }t          |	         }t          j        ||d         |d         ¦  «         	                    |¦  «        fS |	t
          j        t
          j        t
          j        t
          j        hv rT|r/t&          j                             |t          |	¦  «        ¬¦  «        fS | 	                    t          |	¦  «        ¦  «        fS |	t
          j        t
          j        t
          j        hv r*|�||z   }| 	                    t          |	¦  «        ¦  «        fS t	          d|	› d�¦  «        ‚)Nz+Mismatched output data-types: output_dtype=z, zero_point type=zUnexpected type: output_dtype=z# is not a supported quantized type.r   r   )Údtype)Ú_reshape_inputÚshaper   r#   Ú
ValueErrorr   ÚUINT8Ú_QUANT_TYPESr   ÚastypeÚ_QUANT_INTEGER_RANGESÚnpÚrintÚint32ÚclipÚFLOAT8E4M3FNÚFLOAT8E4M3FNUZÚ
FLOAT8E5M2ÚFLOAT8E5M2FNUZÚonnxÚnumpy_helperÚsaturate_castÚ
FLOAT4E2M1Ú
FLOAT6E2M3Ú
FLOAT6E3M2)Úselfr   r   r   r   r   r   r   r   Útensor_typeÚzero_point_typeÚprecision_npÚxir#   Úquant_ranges                  úVC:\Projects\Historical\venv\Lib\site-packages\onnx/reference/ops/op_quantize_linear.pyÚ_runz_CommonQuantizeLinear._run2   sƒ  € õ ! ¨!¬'°4¸ÑDÔDˆð #ˆØÐ!Ý6°zÔ7GÑHÔHˆOØð  °Ò ?Ð ?Ý ØsÀ,ÐsÐsÐbqÐsÐsñô ð ð *ˆKØ!Ð6¥[Ô%6ˆà�lÐ*Ð*ÝØa°ÐaÐaÐañô ð ð
 Ð!Ý'¨
°A´G¸TÀ:ÑNÔNˆJØð 	Ý3°IÑ>Ô>ˆLØ—’˜Ñ&Ô&¨¯ª¸Ñ)EÔ)EÑEˆAˆAà�G‘ˆAàÕ/Ð/Ð/Ý”˜‘”×"Ò"¥2¤8Ñ,Ô,ˆBØÐ%Ø�jÑ �Ý,¨[Ñ9Ô9ˆEÝ/°Ô<ˆKÝ”G˜B ¨A¤°¸A´Ñ?Ô?×FÒFÀuÑMÔMÐOÐOàÝÔ$ÝÔ&ÝÔ"ÝÔ&ð	
ð 
ð 
ð ð åÔ%×3Ò3ØÕ!9¸+Ñ!FÔ!Fð 4ñ ô ðð ð
 —H’HÕ5°kÑBÔBÑCÔCÐEÐEàÝÔ"ÝÔ"ÝÔ"ð
ð 
ð 
ð Ð%Ø˜
‘N�Ø—H’HÕ5°kÑBÔBÑCÔCÐEÐEåØ]¨[Ð]Ð]Ð]ñ
ô 
ð 	
ó    )Nr   TNNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   )Ú__name__Ú
__module__Ú__qualname__r@   © rA   r?   r   r   1   sH   € € € € € ð
 )-ØØØ!%Ø48Ø $ðK
ð K
ð K
ð K
ð K
ð K
ð K
rA   r   c                  ó"   ‡ — e Zd Zddˆ fd„Zˆ xZS )ÚQuantizeLinear_10Nr   r   r   c                óœ   •— t          |j        ¦  «        dk    rt          d¦  «        ‚t          ¦   «                              ||||¬¦  «        S )Nr   ú%Input 2 must be a vector or a number.)r   ©Úlenr%   r&   Úsuperr@   )r9   r   r   r   r   Ú	__class__s        €r?   r@   zQuantizeLinear_10._run�   sE   ø€ ÝˆwŒ}ÑÔ Ò!Ð!ÝÐDÑEÔEÐEÝ‰wŒw�|Š|˜A˜w¨
¸ˆ|Ñ>Ô>Ð>rA   )Nr   )r   r   ©rB   rC   rD   r@   Ú__classcell__©rM   s   @r?   rG   rG   €   sB   ø€ € € € € ð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?rA   rG   c                  ó"   ‡ — e Zd Zd	d
ˆ fd„Zˆ xZS )ÚQuantizeLinear_19Nr   Tr   r   r   r   c                óž   •— t          |j        ¦  «        dk    rt          d¦  «        ‚t          ¦   «                              |||||¬¦  «        S )Nr   rI   )r   r   rJ   )r9   r   r   r   r   r   rM   s         €r?   r@   zQuantizeLinear_19._runˆ   sG   ø€ ÝˆwŒ}ÑÔ Ò!Ð!ÝÐDÑEÔEÐEÝ‰wŒw�|Š|˜A˜w¨
¸Èˆ|ÑQÔQÐQrA   )Nr   T)r   r   r   r   rN   rP   s   @r?   rR   rR   ‡   sM   ø€ € € € € ðRð Rð Rð Rð Rð Rð Rð Rð Rð Rð RrA   rR   c                  ó,   ‡ — e Zd Zdddddœdˆ fd„Zˆ xZS )ÚQuantizeLinear_21r   Tr   N©r   r   r   r   r   r   r   r   r   c               ó<   •—  t          ¦   «         j        |||||dœŽS )NrV   ©rL   r@   )r9   r   r   r   r   ÚargsrM   s         €r?   r@   zQuantizeLinear_21._run�   s3   ø€ ð �u‰wŒwŒ|ØØØØ!Ø%ð
ð 
ð 
ð 	
rA   ©r   r   r   r   r   r   rN   rP   s   @r?   rU   rU   Ž   sU   ø€ € € € € ð ØØØð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rA   rU   c                  ó.   ‡ — e Zd Zddddddœdˆ fd„Zˆ xZS )ÚQuantizeLinear_23r   Tr   N©r   r   r   r   r   r   r   r   r   r   c          	     ó>   •—  t          ¦   «         j        ||||||dœŽS ©Nr]   rX   ©r9   r   r   r   r   r   rY   rM   s          €r?   r@   zQuantizeLinear_23._run¢   ó6   ø€ ð �u‰wŒwŒ|ØØØØ!Ø%Øð
ð 
ð 
ð 	
rA   rZ   rN   rP   s   @r?   r\   r\   ¡   óX   ø€ € € € € ð ØØØØð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rA   r\   c                  ó.   ‡ — e Zd Zddddddœdˆ fd„Zˆ xZS )ÚQuantizeLinear_25r   Tr   Nr]   r   r   r   r   r   c          	     ó>   •—  t          ¦   «         j        ||||||dœŽS r_   rX   r`   s          €r?   r@   zQuantizeLinear_25._run·   ra   rA   rZ   rN   rP   s   @r?   rd   rd   ¶   rb   rA   rd   )%Ú
__future__r   Únumpyr+   r3   r   Úonnx.helperr   r   Úonnx.reference.op_runr   Úonnx.reference.ops._quant_utilsr   r$   r'   ÚINT8ÚUINT16ÚINT16ÚINT2ÚUINT2ÚUINT4ÚINT4r/   r0   r1   r2   r6   r7   r8   r(   r*   r   rG   rR   rU   r\   rd   rE   rA   r?   ú<module>rr      sW  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø KÐ KÐ KÐ KÐ KÐ Kð ÔØÔØÔØÔØÔØÔØÔØÔØÔØÔØÔØÔØÔØÔØÔð€ð& Ô�xØÔ�kØÔ˜
ØÔ�ØÔ�wØÔ�gØÔ�vØÔ�gð	Ð ðL
ð L
ð L
ð L
ð L
˜Eñ L
ô L
ð L
ð^?ð ?ð ?ð ?ð ?Ð-ñ ?ô ?ð ?ðRð Rð Rð Rð RÐ-ñ Rô Rð Rð
ð 
ð 
ð 
ð 
Ð-ñ 
ô 
ð 
ð&
ð 
ð 
ð 
ð 
Ð-ñ 
ô 
ð 
ð*
ð 
ð 
ð 
ð 
Ð-ñ 
ô 
ð 
ð 
ð 
rA   