+
    –°³jm  ã                   óh  € ^ RI t ^ RIHtHt ^ RIHt ^ RIt^ RIt^RIH	t	H
t
 ]]],          ,          R,          t ! R R]4      t]]P                  P                   ,          ],          ]	,          ]P"                  ,          tR R lt] P(                  ! R4      R	 R
 l4       tR R lt ! R R4      tR# )é    N)ÚCallableÚSequence)ÚProtocol)ÚOpsValueÚVc                   ó<   a € ] tR t^t o ]V 3R lR l4       tRtV tR# )ÚShapeVarc                ó    <€ V ^8„  d   QhRS[ /# )é   Úreturn©ÚBlockShapeType)ÚformatÚ__classdict__s   "€Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_inductor/shape_propagation.pyÚ__annotate__ÚShapeVar.__annotate__   s   ø€ ×*Ñ*‘~Ñ*ó    c                ó   € R # ©N© )Úselfs   &r   ÚshapeÚShapeVar.shape   s   € Ù'*r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úpropertyr   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r	   r	      s   ø‡ € Øß*ó Þ*r   r	   c                ó<   € V ^8„  d   QhR\         R\         R\         /# ©r   ÚaÚbr   r   )r   s   "r   r   r      s!   € ÷ 6ñ 6œ^ð 6´ð 6Ä>ñ 6r   c                 óò   € \        V \        4      '       g   \        R \        V 4       24      h\        V\        4      '       g   \        R\        V4       24      h\	        \        V 4      \        V4      4      # )z!expected a to be a Sequence, got z!expected b to be a Sequence, got )Ú
isinstancer   ÚAssertionErrorÚtypeÚ_get_broadcasted_shapeÚtuple)r%   r&   s   &&r   Úget_broadcasted_shaper-      s_   € Ü�aœ×"Ò"ÜÐ@ÄÀaÃÀ	ÐJÓKÐKÜ�aœ×"Ò"ÜÐ@ÄÀaÃÀ	ÐJÓKÐKÜ!¤%¨£(¬E°!«HÓ5Ð5r   c                óœ   € V ^8„  d   QhR\         \        \        ,          R3,          R\         \        \        ,          R3,          R\        /# )r   r%   .r&   r   )r,   ÚintÚstrr   )r   s   "r   r   r   #   sC   € ÷ Kñ KÜŒS”3�Y˜ˆ^ÕðKÜ!&¤s¬S¥y°# ~Õ!6ðKäñKr   c           	      óÈ  a€ \        V 4      \        V4      8”  d3   \        V . ^.\        V 4      \        V4      ,
          ,          OVO54      # \        V 4      \        V4      8  d5   Yr\        V . ^.\        V 4      \        V4      ,
          ,          OVO54      # R R lo\        ;QJ d     . V3R l\        W4       4       F  NK  	  5# ! V3R l\        W4       4       4      # )é   c                ó~   € V ^8„  d   QhR\         \        ,          R\         \        ,          R\         \        ,          /# )r   Úd1Úd2r   )r/   r0   )r   s   "r   r   Ú,_get_broadcasted_shape.<locals>.__annotate__-   s-   € ÷ 	ñ 	¤S¬3¥Yð 	´C¼#µIð 	Ä#ÌÅ)ñ 	r   c                 ó¢   € \        V 4      R 8X  d   V# \        V4      R 8X  d   V # \        V 4      \        V4      8w  d   \        RV  RV 24      hV # )Ú1z!expected str(d1) == str(d2), got z != )r0   r)   )r4   r5   s   &&r   Ú_get_broadcasted_dimÚ4_get_broadcasted_shape.<locals>._get_broadcasted_dim-   sR   € Ü�2‹w˜#Œ~Ø�	Ü�R“˜C”Ø�	Ü�2‹wœ#˜b›'Ô!Ü$Ð'HÈÈÈDÐQSÐPTÐ%UÓVÐVØˆIr   c              3   ó8   <"  € T F  w  rS! W4      x € K  	  R # 5ir   r   )Ú.0r4   r5   r9   s   &  €r   Ú	<genexpr>Ú)_get_broadcasted_shape.<locals>.<genexpr>6   s   øé € ÐJÁ	±f°bÑ)¨"×1Ð1Ã	ùs   ƒ)Úlenr+   r,   Úzip)r%   r&   r9   s   &&@r   r+   r+   "   s¯   ø€ ô ˆ1ƒv”�A“„Ü% aÐ)G¨A¨3´#°a³&¼3¸q»6µ/Õ+BÐ)GÀQÑ)GÓHÐHÜ	ˆQ‹”#�a“&ŒØˆ1Ü% aÐ)G¨A¨3´#°a³&¼3¸q»6µ/Õ+BÐ)GÀQÑ)GÓHÐHõ	÷ ŒuÔJÄÀAÄ	ÓJ�uÐJˆuÔJÄÀAÄ	ÓJÓJÐJr   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r   Úargsr   )r   ÚShapeArgr   )r   s   "r   r   r   9   s   € ÷ ñ ¤H¬XÕ$6ð ¼>ñ r   c                 ó¶  € R pV  FÐ  p\        VR4      '       d<   VP                  pVf    R # Vf   \        V4      pK9  \        V\        V4      4      pKP  \	        V\
        \        34      '       d   Vf   RpKt  Kv  \	        V\        P                  4      '       d   K˜  ^ RI	H
pHp \	        W%V\        34      '       d    R # \        R\        V4       24      h	  V# )Nr   )ÚLoopBodyÚLoopBodyBlockzUnknown type: r   )Úhasattrr   r,   r-   r(   r/   ÚfloatÚtorchÚdtypeÚtorch._inductor.loop_bodyrE   rF   r   Ú	TypeErrorr*   )rB   Úresult_shapeÚargr   rE   rF   s   &     r   Úbroadcast_shapes_for_argsrO   9   s¹   € Ø#'€LãˆÜ�3˜× Ò Ø—I‘IˆEØŠ}ÚØÒ%Ü$ U›|’ä4°\Ä5ÈÃ<ÓP’Ü˜œc¤5˜\×*Ò*ØÒ#Ø!’ñ $ä˜œUŸ[™[×)Ò)ÙçIä˜#¨x¼ÐB×CÒCâÜ˜n¬T°#«Y¨KÐ8Ó9Ð9ñ) ð, Ðr   c                   óv  a € ] tR t^Ut o Rt]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]RV 3R	 lR
 ll4       t	]RV 3R lR ll4       t
]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]RV 3R lR ll4       tV 3R lR lt]V 3R lR l4       tRtV tR# )ÚShapePropagationOpsHandlerz%
Propagate shape from args to output
c                óh   <€ V ^8„  d   QhRS[ P                  P                  RS[ P                  RS[/# )r   ÚvaluerJ   r   )rI   ÚtypesÚNumberrJ   r   )r   r   s   "€r   r   Ú'ShapePropagationOpsHandler.__annotate__[   s0   ø€ ÷ ñ ™Ÿ™×*Ñ*ð ±5·;±;ð Á>ñ r   c                ó´   € ^ RI Hp \        \        P                  V4      '       d2   \        P                  P                  4       p\        ^.V,          4      # R# )r   ©ÚTritonKernelr   )Útorch._inductor.codegen.tritonrY   r(   r   ÚkernelÚtriton_tensor_ndimr,   )rS   rJ   rY   Úndims   &&  r   ÚconstantÚ#ShapePropagationOpsHandler.constantZ   sA   € õ 	@ä”a—h‘h ×-Ò-Ü—8‘8×.Ñ.Ó0ˆDÜ˜!˜˜t�Ó$Ð$àˆIr   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r   ÚnameÚindexrS   r   N©r0   r/   rC   )r   r   s   "€r   r   rV   f   s)   ø€ ÷ ñ ™cð ©#ð ±hð À4ñ r   c                ó   € R # r   r   )ra   rb   rS   s   &&&r   Ústore_reductionÚ*ShapePropagationOpsHandler.store_reductione   ó   € ár   c                ó¨   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[RS[S[S[R3,          ,          RS[S[S[R3,          ,          /# )r   rJ   Ú	src_dtypeÚreduction_typerS   .r   )rI   rJ   r0   rC   r,   r   )r   r   s   "€r   r   rV   j   s`   ø€ ÷ "ñ "Ù�{‰{ð"á—;‘;ð"ñ ð"ñ ™%¡¨# Õ.Õ.ð	"ñ
 
™%¡°Ð 3Õ4Õ	4ñ"r   c                ó   € \         hr   )ÚNotImplementedError)rJ   ri   rj   rS   s   &&&&r   Ú	reductionÚ$ShapePropagationOpsHandler.reductioni   s
   € ô "Ð!r   Nc          
      óD   <€ V ^8„  d   QhRS[ RS[RS[RS[ R,          RR/# )r   ra   rb   rS   ÚmodeNr   rc   )r   r   s   "€r   r   rV   s   s5   ø€ ÷ ñ ‘Cð ¡ð ©Hð ¹CÀ$½Jð ÐRVñ r   c                ó   € R # r   r   )ra   rb   rS   rp   s   &&&&r   ÚstoreÚ ShapePropagationOpsHandler.storer   rg   r   c          
      ón   <€ V ^8„  d   QhRS[ RS[P                  RS[P                  R,          RS[RS[/# )r   rS   rJ   ri   NÚuse_compute_typesr   )r	   rI   rJ   Úboolr   )r   r   s   "€r   r   rV   w   sH   ø€ ÷ ñ Ùðá�{‰{ðñ —;‘; Õ%ðñ  ð	ñ
 
ñr   c                ó   € V P                   # r   )r   )rS   rJ   ri   ru   s   &&&&r   Úto_dtypeÚ#ShapePropagationOpsHandler.to_dtypev   s   € ð �{‰{Ðr   c                óT   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[/# r$   )ÚsympyÚExprr   )r   r   s   "€r   r   rV   €   s*   ø€ ÷ $ñ $‰u�z‰zð $™eŸj™jð $©^ñ $r   c                óh   € ^ RI Hp \        \        P                  V4      '       g   \        R4      hR# )r   rX   zdot supports Triton only)ÚYBLOCKÚXBLOCK)rZ   rY   r(   r   r[   r)   )r%   r&   rY   s   && r   ÚdotÚShapePropagationOpsHandler.dot   s(   € å?äœ!Ÿ(™( L×1Ò1Ü Ð!;Ó<Ð<Ø#Ð#r   c                óT   <€ V ^8„  d   QhRS[ P                  RS[P                  RS[/# ©r   ÚexprrJ   r   ©r{   r|   rI   rJ   r   )r   r   s   "€r   r   rV   ˆ   ó*   ø€ ÷ ñ ™Ÿ™ð ©E¯K©Kð ¹Nñ r   c                ó   € R # r   r   ©r„   rJ   s   &&r   Ú
index_exprÚ%ShapePropagationOpsHandler.index_expr‡   ó   € ñ r   c                óT   <€ V ^8„  d   QhRS[ P                  RS[P                  RS[/# rƒ   r…   )r   r   s   "€r   r   rV   �   r†   r   c                ó   € R # r   r   rˆ   s   &&r   Ú
value_exprÚ%ShapePropagationOpsHandler.value_exprŒ   r‹   r   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r   ra   Úoffsetr   )r0   r/   r   )r   r   s   "€r   r   rV   ’   s"   ø€ ÷ ñ ™ð ¡Sð ©^ñ r   c                ó   € R# )Nr   r   )ra   r‘   s   &&r   Ú	load_seedÚ$ShapePropagationOpsHandler.load_seed‘   s   € àˆ	r   c          
      óZ   <€ V ^8„  d   QhRS[ RS[P                  S[,          RS[RS[RR/# )r   ÚvarÚsizeÚcheckÚwrap_negr   N)rC   r{   r|   r/   rv   )r   r   s   "€r   r   rV   –   sD   ø€ ÷ ñ Ùðá�j‰j™3Õðñ ðñ ð	ð
 
ñr   c                ó   € R # r   r   )r–   r—   r˜   r™   s   &&&&r   Úindirect_indexingÚ,ShapePropagationOpsHandler.indirect_indexing•   s   € ñ r   c                ó:   <€ V ^8„  d   QhRS[ RS[RS[3,          /# )r   ra   r   .)r0   r   r   )r   r   s   "€r   r   rV   ž   s)   ø€ ÷ Gñ G¡ð G©°±nÐ1DÕ(Eñ Gr   c                ó   € R  # )c                  ó   € \        V 4      # r   )rO   )rB   Úkwargss   *,r   Ú<lambda>Ú8ShapePropagationOpsHandler.__getattr__.<locals>.<lambda>Ÿ   s
   € Ô'@ÀÔ'Fr   r   )r   ra   s   &&r   Ú__getattr__Ú&ShapePropagationOpsHandler.__getattr__ž   s   € ÙFÐFr   c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# )r   ÚcondÚmsgr   N)rC   r0   )r   r   s   "€r   r   rV   ¢   s"   ø€ ÷ ñ ¡(ð ±ð ¸ñ r   c                ó   € R # r   r   )r¦   r§   s   &&r   Údevice_assert_asyncÚ.ShapePropagationOpsHandler.device_assert_async¡   rg   r   r   r   )NT)TT)r   r   r   r   Ú__doc__Ústaticmethodr^   re   rm   rr   rx   r€   r‰   rŽ   r“   r›   r£   r©   r    r!   r"   s   @r   rQ   rQ   U   s  ø‡ € ñð ÷ó ðð ÷ó ðð ÷"ó ð"ð ÷ñ ó ðð ÷ñ ó ðð ÷$ó ð$ð ÷ó ðð ÷ó ðð ÷ó ðð ÷ñ ó ð÷Gð Gð ÷ó ör   rQ   )Ú	functoolsÚcollections.abcr   r   Útypingr   r{   rI   Úvirtualizedr   r   r/   r0   r   r	   rT   rU   rJ   rC   r-   Ú	lru_cacher+   rO   rQ   r   r   r   Ú<module>r²      s˜   ðÛ ß .Ý ã ã ç $ð ˜# �)Õ$ tÕ+€ô+ˆxô +ð
 �e—k‘k×(Ñ(Õ(¨3Õ.°Õ9¸E¿K¹KÕG€õ6ð ×Ò�TÓôKó ðKõ,÷8Nó Nr   