§
    kŠtj¨	  ã                   ó^   — d dl Z d dl mZ ddlmZmZmZmZmZ ddl	m
Z
  G d„ de
¦  «        ZdS )	é    N)Úonnx_pbé   )ÚTENSOR_NAME_QUANT_SUFFIXÚQuantizedValueÚQuantizedValueTypeÚattribute_to_kwargÚ	ms_domainé   )ÚQuantOperatorBasec                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚQLinearBinaryOpc                 óL   •— t          ¦   «                              ||¦  «         d S )N)ÚsuperÚ__init__)ÚselfÚonnx_quantizerÚ	onnx_nodeÚ	__class__s      €új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/onnxruntime/quantization/operators/binary_op.pyr   zQLinearBinaryOp.__init__	   s#   ø€ Ý‰Œ×Ò˜¨Ñ3Ô3Ð3Ð3Ð3ó    c                 ór  •— | j         }| j                             |j        d         ¦  «        \  }}}}}| j                             |ddg¦  «        \  }}}}	|r|€ t          ¦   «                              ¦   «         S |j        d         t          z   }
|j        r
|j        dz   nd}i }|j	        D ]$}| 
                    t          |¦  «        ¦  «         Œ%t          |d<   g }|                     |d         ¦  «         |                     |d         ¦  «         |                     |d         ¦  «         |                     |d         ¦  «         |                     |d         ¦  «         |                     |d         ¦  «         |                     |¦  «         |                     |¦  «         t          j        j        d|j        z   ||
g|fi |¤Ž}|	                     |¦  «         t%          |j        d         |
||t&          j        ¦  «        }|| j        j        |j        d         <   | j        xj        |	z  c_        d S )Nr   r
   Ú_quantÚ ÚdomainÚQLinear)ÚnodeÚ	quantizerÚ_get_quantization_paramsÚoutputÚquantize_activationr   Úquantizer   ÚnameÚ	attributeÚupdater   r	   ÚappendÚonnxÚhelperÚ	make_nodeÚop_typer   r   ÚInputÚquantized_value_mapÚ	new_nodes)r   r   Ú
data_foundÚoutput_scale_nameÚoutput_zp_nameÚ_Úquantized_input_namesÚzero_point_namesÚscale_namesÚnodesÚqlinear_binary_math_outputÚqlinear_binary_math_nameÚkwargsr#   Úqlinear_binary_math_inputsÚqlinear_binary_math_nodeÚq_outputr   s                    €r   r!   zQLinearBinaryOp.quantize   sg  ø€ ØŒyˆð ŒN×3Ò3°D´KÀ´NÑCÔCñ	
ØØØØØð ŒN×.Ò.¨t°a¸°VÑ<Ô<ñ	
Ø!ØØØàð 	&Ð2Ð:Ý‘7”7×#Ò#Ñ%Ô%Ð%à%)¤[°¤^Õ6NÑ%NÐ"Ø;?¼9Ð#L 4¤9¨xÑ#7Ð#7È"Ð àˆØœð 	9ð 	9ˆIØ�MŠMÕ,¨YÑ7Ô7Ñ8Ô8Ð8Ð8Ý$ˆˆxÑà%'Ð"à"×)Ò)Ð*?ÀÔ*BÑCÔCÐCØ"×)Ò)¨+°a¬.Ñ9Ô9Ð9Ø"×)Ò)Ð*:¸1Ô*=Ñ>Ô>Ð>à"×)Ò)Ð*?ÀÔ*BÑCÔCÐCØ"×)Ò)¨+°a¬.Ñ9Ô9Ð9Ø"×)Ò)Ð*:¸1Ô*=Ñ>Ô>Ð>ð 	#×)Ò)Ð*;Ñ<Ô<Ð<Ø"×)Ò)¨.Ñ9Ô9Ð9å#'¤;Ô#8Ø˜œÑ$Ø&Ø'Ð(Ø$ð	$
ð $
ð
 ð$
ð $
Ð ð 	�ŠÐ-Ñ.Ô.Ð.õ "ØŒK˜ŒNØ&ØØÝÔ$ñ
ô 
ˆð >FˆŒÔ*¨4¬;°q¬>Ñ:àŒÐ Ô  EÑ)Ð Ô Ð Ð r   )Ú__name__Ú
__module__Ú__qualname__r   r!   Ú__classcell__)r   s   @r   r   r      sQ   ø€ € € € € ð4ð 4ð 4ð 4ð 4ð<*ð <*ð <*ð <*ð <*ð <*ð <*ð <*ð <*r   r   )r&   r   Ú
onnx_protoÚquant_utilsr   r   r   r   r	   Úbase_operatorr   r   © r   r   ú<module>rC      s›   ðØ €€€Ø &Ð &Ð &Ð &Ð &Ð &à uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uØ ,Ð ,Ð ,Ð ,Ð ,Ð ,ð@*ð @*ð @*ð @*ð @*Ð'ñ @*ô @*ð @*ð @*ð @*r   