
    h                     \    S SK JrJrJr  SSKJr  SSKJr   " S S\5      r " S S\5      r	g	)
   )TENSOR_NAME_QUANT_SUFFIXQuantizedValueQuantizedValueType   )QuantOperatorBase)QDQOperatorBasec                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )Direct8BitOp   c                 $   > [         TU ]  X5        g Nsuper__init__selfonnx_quantizer	onnx_node	__class__s      f/var/www/fran/franai/venv/lib/python3.13/site-packages/onnxruntime/quantization/operators/direct_q8.pyr   Direct8BitOp.__init__	       3    c                   > U R                   nU R                  R                  (       Gd  U R                  R                  UR                  S   5      nUc!  U R                  =R
                  U/-  sl        g [        UR                  S   UR                  S   [        -   UR                  UR                  UR                  5      nX0R                  R                  UR                  S   '   UR                  UR                  S'   UR                  UR                  S'   U R                  =R
                  U/-  sl        g U R                  R                  UR                  S   5      (       d  [        TU ]A  5         g U R                  R#                  US/5      u  nnnnUc  [        TU ]A  5       $ [        UR                  S   UR                  S   [        -   US   US   [$        R&                  5      nX0R                  R                  UR                  S   '   US   UR                  S'   UR                  UR                  S'   UR)                  U5        U R                  =R
                  U-  sl        g N    )node	quantizerforce_quantize_no_input_checkfind_quantized_valueinput	new_nodesr   outputr   
scale_namezp_name
value_typequantized_value_mapq_nameis_valid_quantize_weightr   quantizequantize_activationr   Inputappend)	r   r   quantized_input_valuequantized_output_valuequantized_input_nameszero_point_namesscale_namesnodesr   s	           r   r*   Direct8BitOp.quantize   s   yy~~;;; %)NN$G$G

ST$V!$,((TF2(%3AA!99%00%--%00&" BXNN..t{{1~>188DJJqM3::DKKNNN$$.$ >>::4::a=II " 224!=% $,w')) &4AA!99A #"((&" BXNN..t{{1~>1!4DJJqM3::DKKNLLNN$$-$r    __name__
__module____qualname____firstlineno__r   r*   __static_attributes____classcell__r   s   @r   r
   r
      s    45. 5.r   r
   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )QDQDirect8BitOpD   c                 $   > [         TU ]  X5        g r   r   r   s      r   r   QDQDirect8BitOp.__init__E   r   r   c                    U R                   R                  (       a  U R                   R                  U R                  R                  S   5        U R
                  (       d`  U R                   R                  U R                  R                  S   U R                  R                  S   U R                  R                  5        g g U R                   R                  U R                  R                  S   5      (       ar  U R
                  (       d`  U R                   R                  U R                  R                  S   U R                  R                  S   U R                  R                  5        g g g r   )
r   r   quantize_activation_tensorr   r!   disable_qdq_for_node_outputquantize_output_same_as_inputr#   nameis_tensor_quantized)r   s    r   r*   QDQDirect8BitOp.quantizeH   s    >>77NN55diiooa6HI33<<TYY=M=Ma=PRVR[R[RaRabcRdfjfofoftftu 4^^//		0BCCDLlLlNN889I9I!9Ldiioo^_N`bfbkbkbpbpq MmCr   r5   r6   r=   s   @r   r?   r?   D   s    4r rr   r?   N)
quant_utilsr   r   r   base_operatorr   qdq_base_operatorr   r
   r?   r5   r   r   <module>rM      s-    V V , .
9.$ 9.x
ro 
rr   