+
    9i                         ^ RI t ^ RIt^ RIt^RIHtHtHtHtH	t	H
t
Ht ^RIHt ^RIHt ^RIHt R tR tR t ! R	 R
]4      t ! R R]4      tR# )    N)TENSOR_NAME_QUANT_SUFFIXQuantizedValueQuantizedValueTypeattribute_to_kwargfind_by_nameget_mul_node	ms_domain)QuantOperatorBase)	QOpMatMul)QDQOperatorBasec                     V P                    Uu. uF  qP                  R 8X  g   K  VNK  	  ppV'       d*   \        P                  P	                  V^ ,          4      ^ 8  # R# u upi )transBF	attributenameonnxhelperget_attribute_value)	gemm_nodeattrtransB_attributes   &  e/var/www/html/photoedit/myenv/lib/python3.14/site-packages/onnxruntime/quantization/operators/gemm.pyis_B_transposedr      sV    )2)<)<V)<		X@U)<V{{../?/BCaGG	 Ws
   A!A!c                     V P                    Uu. uF  qP                  R 8X  g   K  VNK  	  ppV'       d'   \        P                  P	                  V^ ,          4      # R# u upi betag      ?r   r   r   beta_attributes   &  r   get_betar      sO    '0':':R':tii6>Qdd':NR{{..~a/@AA	 Ss
   AAc                     V P                    Uu. uF  qP                  R 8X  g   K  VNK  	  ppV'       d   RV^ ,          n        R# u upi r   )r   r   fr   s   &  r   set_default_betar"   $   sB    '0':':R':tii6>Qdd':NR!q	 Ss
   AAc                   >   a a ] tR t^,t oV 3R ltV 3R ltRtVtV ;t# )QLinearGemmc                &   < \         SV `  W4       R # Nsuper__init__selfonnx_quantizer	onnx_node	__class__s   &&&r   r)   QLinearGemm.__init__-       3    c           
     "	  < V P                   pVP                  R 8X  g   Q hV P                  P                  VP                  ^ ,          4      w  pppppV P                  P                  VP                  ^,          4      '       d   V P                  P                  4       '       d   V P                  P                  V^ .4      w  pppp	V P                  P                  VP                  ^,          V P                  P                  \        V4      '       d   ^ M^4      p
VP                  V
^ ,          4       VP                  V
^,          4       VP                  V
^,          4       MV P                  P                  V^ .4      w  pppp	V P                  P                  V^.V P                  P                  R7      w  ppppVP                  V4       VP                  V4       VP                  V4       V	P                  V4       V'       d   Vf   \         SV `E  4       # Rp\%        VP                  4      ^8X  d   V P                  P                  VP                  ^,          4      '       g   \         SV `E  4       # V P                  P'                  VP                  ^,          VP                  ^ ,          VP                  ^,          \)        V P                   4      4      pVP                  ^ ,          \*        ,           pVP,                  '       d   VP,                  R,           MRp/ pVP.                   F0  pVP,                  R8w  g   K  VP1                  \3        V4      4       K2  	  \4        VR&   . p\7        ^4       F,  pVP                  VV,          VV,          VV,          .4       K.  	  VP                  WV.4       \8        P:                  P<                  ! RVV.V3/ VB pV	P                  V4       \?        VP                  ^ ,          VVV\@        PB                  VP                  V P                  P                  R7      pVV P                  PD                  VP                  ^ ,          &   V P                  ;PF                  V	,          un#        R# )	Gemm)reduce_rangeN _quantr   domainQGemm)	node_type
node_qtype)$nodeop_type	quantizer_get_quantization_paramsoutputis_input_a_initializerinputis_per_channelquantize_activationquantize_weight_per_channelweight_qTyper   appendquantize_weightr4   extendr(   quantizelenquantize_bias_staticr   r   r   r   updater   r	   ranger   r   	make_noder   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quant_weight_tuplequantized_input_names_weightzero_point_names_weightscale_names_weightnodes_weightquantized_bias_nameqgemm_output
qgemm_namekwargsr   qgemm_inputsi
qgemm_nodeq_outputr.   s   &                       r   rI   QLinearGemm.quantize0   s   yy||v%%% NN33DKKNC	
 >>00A??DNNDaDaDcDc 224!=% !%!K!K

1++$T**"
 "(();A)>?##$6q$9:1!45 224!=%  ..taSt~~GbGb.c,'"!(()EF##$;<12LL&2:7#%% tzz?a>>88AGGw')) #'.."E"E

1tzz!}djjmXdii=P# {{1~(@@-1YYYTYY)B
I~~'0;< ( %x qA!6q!9;q>K[\]K^ _`  	0^TU[[**7L<.R\g`fg
Z  "KKN$$ll~~22
 >F**4;;q>:  E) r1    	__name__
__module____qualname____firstlineno__r)   rI   __static_attributes____classdictcell____classcell__r.   __classdict__s   @@r   r$   r$   ,   s     4\* \*r1   r$   c                   8   a a ] tR t^t oV 3R ltR tRtVtV ;t# )QDQGemmc                &   < \         SV `  W4       R # r&   r'   r*   s   &&&r   r)   QDQGemm.__init__   r0   r1   c           	     f   V P                   pVP                  R 8X  g   Q hV P                  P                  VP                  ^ ,          4       V P
                  '       g-   V P                  P                  VP                  ^ ,          4       V P                  P                  VP                  ^,          \        V4      '       d   ^ M^R7      w  r#V'       d/   V P                  P                  VP                  ^,          V4       M,V P                  P                  VP                  ^,          4       \        VP                  4      ^8X  d   V P                  P                  VP                  ^,          4      '       d   V P                  P                  VP                  VP                  ^,          VP                  ^ ,          VP                  ^,          \        V P                   4      4       \!        V P                   4       R# \"        P$                  ! RV P                   P                   R24       R# R# )r3   )default_axiszBias of Gemm node 'zC' is not constant. Please exclude this node for better performance.N)r;   r<   r=   quantize_activation_tensorrA   disable_qdq_for_node_outputr?   is_tensor_per_channelr   "quantize_weight_tensor_per_channelquantize_weight_tensorrJ   r@   quantize_bias_tensorr   r   r"   loggingwarning)r+   r;   is_weight_per_channelweight_axiss   &   r   rI   QDQGemm.quantize   sv   yy||v%%%11$**Q-@///NN55dkk!nE-1^^-Q-QJJqM_T-B-B .R .
* !NN==djjm[YNN11$**Q-@tzz?a~~44TZZ]CC33IItzz!}djjmTZZ]HUYU^U^L_ !+)$))..)99|}  r1   rh   ri   rq   s   @@r   rt   rt      s     4 r1   rt   )r   numpynpr   quant_utilsr   r   r   r   r   r   r	   base_operatorr
   matmulr   qdq_base_operatorr   r   r   r"   r$   rt   rh   r1   r   <module>r      sR         -  .`*) `*Fo r1   