
    h                     d    S SK r 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)    N   )QuantizedValueQuantizedValueTypeattribute_to_kwarg   )QuantOperatorBase)QDQOperatorBasec                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )QSplit   c                 $   > [         TU ]  X5        g )N)super__init__)selfonnx_quantizer	onnx_node	__class__s      b/var/www/fran/franai/venv/lib/python3.13/site-packages/onnxruntime/quantization/operators/split.pyr   QSplit.__init__	   s    3    c                   > U R                   nU R                  R                  US/5      u  nnnnUc  [        TU ]  5       $ SnUR
                  (       a  UR
                  S-   n0 nUR                   H  nUR                  [        U5      5        M     / n	UR                   HT  n
U
S-   nU	R                  U5        [        U
UUS   US   [        R                  5      nXR                  R                  U
'   MV     [        UR                   5      S:  a  UR#                  UR                   SS  5        [$        R&                  R(                  " UR*                  X)U40 UD6nUR                  U5        U R                  =R,                  U-  sl        g )Nr    _quant	quantizedr   )node	quantizerquantize_activationr   quantizename	attributeupdater   outputappendr   r   Inputquantized_value_mapleninputextendonnxhelper	make_nodeop_type	new_nodes)r   r   quantized_input_nameszero_point_namesscale_namesnodesquantized_node_namekwargsr    quantized_output_namesoutput_namequantized_output_nameq_outputquantized_noder   s                 r   r   QSplit.quantize   sm   yy NN..taS9	
! (7#%% 99"&))h"6IMM,Y78 ( "$;;K$/+$=!"))*?@%%A #"((H ?GNN..{; ' tzz?Q!((AB8..LL/I\
`f
 	^$  E) r    )__name__
__module____qualname____firstlineno__r   r   __static_attributes____classcell__)r   s   @r   r   r      s    4'* '*r   r   c                       \ rS rSrS rSrg)QDQSplit6   c                    U R                   nUR                  S:X  d   eU R                  R                  UR                  S   5      (       d(  U R                  R                  UR                  S   5        U R                  (       dG  UR                   H6  nU R                  R                  X!R                  S   UR                  5        M8     g g )NSplitr   )
r   r,   r   is_tensor_quantizedr'   quantize_activation_tensordisable_qdq_for_node_outputr"   quantize_output_same_as_inputr   )r   r   r"   s      r   r   QDQSplit.quantize7   s    yy||w&&&~~11$**Q-@@NN55djjmD//++<<VZZPQ]TXT]T]^ & 0r   r:   N)r;   r<   r=   r>   r   r?   r:   r   r   rB   rB   6   s    _r   rB   )r)   quant_utilsr   r   r   base_operatorr   qdq_base_operatorr	   r   rB   r:   r   r   <module>rN      s0     P P , .+* +*\	_ 	_r   