+
    "Ý³j  ã                   ó*  € ^ RI t ^ RIHtHtHt ^ RIt^ RIHt ^ RIHtH	t	H
t
HtHtHtH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	IHt ^ R
IH t H!t!H"t"H#t# ^ RI$H%t% ^RI&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0 ^RI1H2t2H3t3H4t4 ^RI5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtBHCtCHDtDHEtEHFtF ]]]]3 F
  tGR]GnH        K  	  ]]>](3,          tI] P”                  RH8  d   R]InH        ]]?]K]>,          ]K](,          3,          tL] P”                  RH8  d   R]LnH        . RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNtM ! RG R#]>4      tNR# )Ié    N)ÚCallableÚOptionalÚUnion©ÚTensor)ÚGranularityÚPerAxisÚPerBlockÚPerGroupÚPerRowÚ	PerTensorÚPerToken)Ú
CUSTOM_KEYÚFROM_NODE_KEYÚNUMERIC_DEBUG_HANDLE_KEYÚcompare_resultsÚextract_results_from_loggersÚgenerate_numeric_debug_handleÚ"prepare_for_propagation_comparison)ÚWrapperModule)Ú _allow_exported_model_train_eval)Ú_move_exported_model_to_eval)Ú_move_exported_model_to_train)Úbfs_trace_with_node_processÚfind_sequential_partitionsÚget_equivalent_typesÚupdate_equivalent_types_dict)Úget_block_size)
ÚFakeQuantizeÚFakeQuantizeBaseÚFixedQParamsFakeQuantizeÚFusedMovingAvgObsFakeQuantizeÚdefault_dynamic_fake_quantÚdefault_fake_quantÚdisable_fake_quantÚdisable_observerÚenable_fake_quantÚenable_observer)ÚLearnableFakeQuantizeÚdisable_range_learningÚenable_range_learning)ÚAffineQuantizedObserverBaseÚFixedQParamsObserverÚHistogramObserverÚMappingTypeÚMinMaxObserverÚMovingAverageMinMaxObserverÚ%MovingAveragePerChannelMinMaxObserverÚNoopObserverÚObserverBaseÚPartialWrapperÚPerChannelMinMaxObserverÚPlaceholderObserverÚRecordingObserverÚReuseInputObserverÚTorchAODTypeÚUniformQuantizationObserverBaseÚZeroPointDomainztorchao.quantization.pt2er   r    r!   r-   r"   r.   r)   r0   r1   r2   r3   r4   ÚObserverOrFakeQuantizer6   r7   r8   r9   r;   Ú!ObserverOrFakeQuantizeConstructorÚDerivedObserverOrFakeQuantizer'   r(   r%   r&   r+   r*   Úmove_exported_model_to_evalÚmove_exported_model_to_trainÚallow_exported_model_train_evalr   r   r   r   r   r   r   r   r   r   r   r   r,   r   r/   r	   r
   r   r   r   r   r:   r<   r   r$   r#   c                   ó^   a a€ ] tR t^«t oRtRV3R lV 3R llltV3R lR ltR tRtVt	V ;t
# )	r?   zmThis observer is used to describe an observer whose quantization parameters
are derived from other observers
c                óú   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[S[,          .S[S[S[3,          3,          RS[S[,          RS[S[,          RS[S[ P                  ,          RS[S[,          /# )é   ÚdtypeÚ
obs_or_fqsÚderive_qparams_fnÚ	quant_minÚ	quant_maxÚqschemeÚch_axis)
ÚtorchrF   Úlistr=   r   Útupler   r   ÚintrK   )ÚformatÚ__classdict__s   "€Úc/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/quantization/pt2e/__init__.pyÚ__annotate__Ú*DerivedObserverOrFakeQuantize.__annotate__°   s�   ø€ ÷ ñ á�{‰{ðñ Ñ/Õ0ðñ $ÙÑ(Õ)Ð*©E±&¹&°.Õ,AÐAõ
ð	ñ ™C•=ðñ ™C•=ðñ ™%Ÿ-™-Õ(ðñ ™#•ñó    c                óØ   <€ \         S	V `  V4       W n        W0n        W@n        WPn        W`n        Wpn        ^RIH	p V! V P                  4      '       d   V P                  f   Q R4       hR# R# )é   )Úis_per_channelNz6Must provide a valid ch_axis if qscheme is per channel)
ÚsuperÚ__init__rG   rH   rI   rJ   rK   rL   ÚutilsrY   )
ÚselfrF   rG   rH   rI   rJ   rK   rL   rY   Ú	__class__s
   &&&&&&&& €rS   r[   Ú&DerivedObserverOrFakeQuantize.__init__°   sb   ø€ ô 	‰Ñ˜ÔØ$ŒØ!2ÔØ"ŒØ"ŒØŒØŒå)á˜$Ÿ,™,×'Ò'Ø—<‘<Ò+ð ØHóÒ+ñ (rV   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )rE   ÚxÚreturnr   )rQ   rR   s   "€rS   rT   rU   Ë   s   ø€ ÷ ñ ™ð ¡Fñ rV   c                ó   € V# ©N© )r]   ra   s   &&rS   ÚforwardÚ%DerivedObserverOrFakeQuantize.forwardË   s   € ØˆrV   c                ó8   € V P                  V P                  4      # rd   )rH   rG   )r]   s   &rS   Úcalculate_qparamsÚ/DerivedObserverOrFakeQuantize.calculate_qparamsÎ   s   € Ø×%Ñ% d§o¡oÓ6Ð6rV   )rL   rH   rG   rK   rJ   rI   )NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r[   rf   ri   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r^   rR   s   @@rS   r?   r?   «   s(   ù‡ € ñ÷õ ÷6ð ÷7ò 7rV   )é   é   )OÚsysÚtypingr   r   r   rM   r   Útorchao.quantizationr   r	   r
   r   r   r   r   Ú+torchao.quantization.pt2e._numeric_debuggerr   r   r   r   r   r   r   Ú&torchao.quantization.pt2e.export_utilsr   r   rB   r   r@   r   rA   Ú%torchao.quantization.pt2e.graph_utilsr   r   r   r   Útorchao.quantization.utilsr   Úfake_quantizer   r    r!   r"   r#   r$   r%   r&   r'   r(   Úlearnable_fake_quantizer)   r*   r+   Úobserverr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Ú_frl   r=   Úversion_infoÚtyper>   Ú__all__r?   re   rV   rS   Ú<module>rƒ      s  ðó ß ,Ñ ,ã Ý ÷÷ ñ ÷÷ ñ õõõõ÷ó õ 6÷÷ ÷ ÷ñ ÷
÷ ÷ ÷ õ ð* Ø Ø!Ø&ó	€Bð 0€B†Mñð ˜|Ð-=Ð=Õ>Ð Ø×Ñ�gÔØ(CÐÔ%à$)Ø�D˜Õ&¨Ð-=Õ(>Ð>õ%Ð !ð ×Ñ�gÔØ3NÐ%Ô0ð?àð?ð ð?ð ð	?ð
 ð?ð $ð?ð ð?ð ð?ð ð?ð "ð?ð ,ð?ð ð?ð ð?ð ð?ð  ð!?ð" ð#?ð$ ð%?ð& ð'?ð( &ð)?ð* (ð+?ð, $ð-?ð0 ð1?ð2 ð3?ð4 ð5?ð6 ð7?ð8 ð9?ð: ð;?ð> "ð??ð@ #ðA?ðB &ðC?ðD ðE?ðH !ðI?ðJ ðK?ðL #ðM?ðN "ðO?ðR $ðS?ðT ðU?ðV ðW?ðX ðY?ðZ )ð[?ð\ #ð]?ð^ ð_?ðb "ðc?ðd ðe?ðf ðg?ðh ði?ðj ðk?ðl ðm?ðn ðo?ðp ðq?ðr ðs?ðt ðu?ðv ðw?ðx ðy?ðz ð{?ð| !ð}?€ôD$7 Lö $7rV   