
    i]                     x    S SK JrJr  S SKrS SKJr  S SKJr  SSKJ	r	  SSK
JrJrJr  \" 5       r " S S	\5      rg)
    )CallableSequenceN)GraphModule)	Quantizer   )annotate)get_quant_config	PrecisionQuantInfoManagerc                      ^  \ rS rSrU 4S jrS\SS4S jr SS\SS4S jjrS\S\4S	 jr	S
\SS4S jr
S\\   SS4S jrS
\SS4S jrS\R                   R                  SS4S jrSrU =r$ )EnnQuantizer   c                    > [         TU ]  5         [        R                  U l        [
        R                  U R                  5        SU l        SU l        / U l	        g )NTF)
super__init__r
   A8W8
_precisionglobal_quant_infoset_precision_is_per_channel_is_qatcustom_quant_annotations)self	__class__s    n/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/executorch/backends/samsung/quantizer/quantizer.pyr   EnnQuantizer.__init__   sB    #..''8#<>%    quant_dtypereturnNc                 x    U[         ;   d   SU S35       eXl        [        R                  U R                  5        g NzNo support for Precision .)r
   r   r   r   )r   r   s     r   setup_precisionEnnQuantizer.setup_precision   s7    i'S+D[MQR)SS'%''8r   c                 R    U[         ;   d   SU S35       eXl        X l        X0l        g r!   )r
   r   r   r   )r   r   is_per_channelis_qats       r   setup_quant_paramsEnnQuantizer.setup_quant_params$   s2     i'S+D[MQR)SS'%-r   modelc                 J    U R                  U5        U R                  U5        U$ N)	_annotate_annotate_custom_annotationr   r*   s     r   r   EnnQuantizer.annotate,   s!    u((/r   gmc                     [        U R                  U R                  U R                  5      n[	        UR
                  U5        g r,   )r	   r   r   r   r   graph)r   r1   quant_configs      r   r-   EnnQuantizer._annotate1   s1    'OOT114<<
 	<(r   r   c                     Xl         g r,   r   )r   r   s     r   add_custom_quant_annotations)EnnQuantizer.add_custom_quant_annotations7   s     )A%r   c                 :    U R                    H  nU" U5        M     g r,   r7   )r   r1   annotation_funcs      r   r.   (EnnQuantizer._annotate_custom_annotation<   s    #<<OB  =r   c                     g r,    r/   s     r   validateEnnQuantizer.validate@   s    r   )r   r   r   r   )TF)__name__
__module____qualname____firstlineno__r   r
   r#   r(   r   r   r-   r   r   r8   r.   torchfxr?   __static_attributes____classcell__)r   s   @r   r   r      s    ?99 9 9 CH$	k k 
)K )D )A(0(:A	A
 k  d  ehh22 t  r   r   )typingr   r   rE   torch.fxr   #torchao.quantization.pt2e.quantizerr   	annotatorr   qconfigr	   r
   r   r   r   r>   r   r   <module>rN      s3    &    9  B B %& -9 -r   