Ë
    ÝÍ:jP
  ã                   óR   — d dl Z d dlZ ddlmZmZmZmZmZ ddlm	Z	  G d„ de	«      Z
y)é    Né   )ÚTENSOR_NAME_QUANT_SUFFIXÚQuantizedValueÚQuantizedValueTypeÚattribute_to_kwargÚ	ms_domainé   )ÚQuantOperatorBasec                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚQLinearSoftmaxc                 óð  •— | j                   }| j                  j                  t        j                  j
                  j                  k(  rd}d}nd}d}| j                  j                  |j                  d   ||«      \  }}}}}| j                  j                  |dg«      \  }}	}
}|r|€t        ‰| �-  «       S |j                  d   t        z   }t        |j                  d   |||t        j                  «      }|| j                  j                   |j                  d   <   i }|j"                  D ]  }|j%                  t'        |«      «       Œ t(        |d<   | j                  j*                  |d<   |j,                  r|j,                  dz   nd}t        j.                  j0                  d|j2                  z   |d   |
d   |	d   ||g|g|fi |¤Ž}|j5                  |«       | j                  xj6                  |z  c_        y )	Ng      p?r   i€ÿÿÿÚdomainÚopsetÚ_quantÚ ÚQLinear)ÚnodeÚ	quantizerÚactivation_qTypeÚonnxÚonnx_pbÚTensorProtoÚUINT8Ú_get_quantization_paramsÚoutputÚquantize_activationÚsuperÚquantizer   r   r   ÚInputÚquantized_value_mapÚ	attributeÚupdater   r   Úopset_versionÚnameÚhelperÚ	make_nodeÚop_typeÚappendÚ	new_nodes)Úselfr   Ú	out_scaleÚout_zero_pointÚ
data_foundÚoutput_scale_nameÚoutput_zp_nameÚ_Úquantized_input_namesÚinput_zero_point_namesÚinput_scale_namesÚnodesÚqlinear_output_nameÚquantized_output_valueÚkwargsr!   Úqlinear_node_nameÚqnodeÚ	__class__s                     €ú/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/onnxruntime/quantization/operators/softmax.pyr   zQLinearSoftmax.quantize	   só  ø€ Ø�y‰yˆà�>‰>×*Ñ*¬d¯l©l×.FÑ.F×.LÑ.LÒLØ!ˆIØ‰Nà!ˆIØ!ˆNð �N‰N×3Ñ3°D·K±KÀ±NÀIÈ~Ó^ñ	
ØØØØØð �N‰N×.Ñ.¨t°a°SÓ9ñ	
Ø!Ø"ØØñ Ð2Ð:Ü‘7Ñ#Ó%Ð%ð #Ÿk™k¨!™nÔ/GÑGÐÜ!/Ø�K‰K˜‰NØØØÜ×$Ñ$ó"
Ðð >Tˆ�‰×*Ñ*¨4¯;©;°q©>Ñ:ð ˆØŸ™ò 	9ˆIØ�M‰MÔ,¨YÓ7Õ8ð	9ä$ˆˆxÑàŸ.™.×6Ñ6ˆˆw‰Ø48·I²I˜DŸI™I¨Ò0À2ÐÜ—‘×%Ñ%Ø˜Ÿ™Ñ$à% aÑ(Ø! !Ñ$Ø& qÑ)Ø!Øðð !Ð!Øñ
ð ñ
ˆð 	�‰�UÔØ�‰× Ò  EÑ)Õ Øó    )Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__)r:   s   @r;   r   r      s   ø„ ÷Að Ar<   r   )r   Úonnx.helperÚquant_utilsr   r   r   r   r   Úbase_operatorr
   r   © r<   r;   ú<module>rE      s#   ðÛ Û ç uÕ uÝ ,ôBÐ&õ Br<   