Ë
    ÄÓ^j]  ã                   óh  — d dl Z d dlmZmZ d dlmZ d dlZd dlZddlm	Z	m
Z
 eeez     dz  Z G d„ de«      Zeej                  j                   z  ez  e	z  ej"                  z  Zded	ed
efd„Z e j(                  d«      deeez  df   d	eeez  df   d
efd„«       Zdee   d
efd„Z G d„ d«      Zy)é    N)ÚCallableÚSequence)ÚProtocolé   )ÚOpsValueÚVc                   ó"   — e Zd Zedefd„«       Zy)ÚShapeVarÚreturnc                  ó   — y ©N© )Úselfs    úl/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_inductor/shape_propagation.pyÚshapezShapeVar.shape   s   € Ø'*ó    N)Ú__name__Ú
__module__Ú__qualname__ÚpropertyÚBlockShapeTyper   r   r   r   r
   r
      s   „ ØØ*�~Ò*ó Ù*r   r
   ÚaÚbr   c                 ó†   — t        | t        «      sJ ‚t        |t        «      sJ ‚t        t        | «      t        |«      «      S r   )Ú
isinstancer   Ú_get_broadcasted_shapeÚtuple)r   r   s     r   Úget_broadcasted_shaper      s7   € Ü�aœÔ"Ð"Ð"Ü�aœÔ"Ð"Ð"Ü!¤%¨£(¬E°!«HÓ5Ð5r   .c           	      ó¢  ‡— t        | «      t        |«      kD  r*t        | g dgt        | «      t        |«      z
  z  ¢|¢­«      S t        | «      t        |«      k  r.| |} }t        | g dgt        | «      t        |«      z
  z  ¢|¢­«      S dt        t        z  dt        t        z  dt        t        z  fd„Št	        ˆfd„t        | |«      D «       «      S )Nr   Úd1Úd2r   c                 óx   — t        | «      dk(  r|S t        |«      dk(  r| S t        | «      t        |«      k(  sJ ‚| S )NÚ1)Ústr)r    r!   s     r   Ú_get_broadcasted_dimz4_get_broadcasted_shape.<locals>._get_broadcasted_dim+   s=   € Ü�2‹w˜#Š~Ø�	Ü�R“˜C’Ø�	Ü�r“7œc "›gÒ%Ð%Ð%ØˆIr   c              3   ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wr   r   )Ú.0r    r!   r%   s      €r   ú	<genexpr>z)_get_broadcasted_shape.<locals>.<genexpr>3   s   øè ø€ ÒJ±f°b¸"Ñ)¨"¨b×1ÑJùs   ƒ)Úlenr   Úintr$   r   Úzip)r   r   r%   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ð	¤S¬3¡Yð 	´C¼#±Ið 	Ä#ÌÁ)ó 	ô ÓJÄÀAÀqÃ	ÔJÓJÐJr   Úargsc                 ól  — d }| D ]¬  }t        |d«      r4|j                  }|€ y |€t        |«      }Œ-t        |t        |«      «      }ŒCt	        |t
        t        f«      r|�Œ\d}Œ_t	        |t        j                  «      rŒzddl	m
}m} t	        |||t        f«      r y t        dt        |«      › �«      ‚ |S )Nr   r   r   )ÚLoopBodyÚLoopBodyBlockzUnknown type: )Úhasattrr   r   r   r   r*   ÚfloatÚtorchÚdtypeÚtorch._inductor.loop_bodyr.   r/   r   Ú	TypeErrorÚtype)r,   Úresult_shapeÚargr   r.   r/   s         r   Úbroadcast_shapes_for_argsr9   6   s¯   € Ø#'€Làò :ˆÜ�3˜Ô Ø—I‘IˆEØˆ}ÙØÐ%Ü$ U›|‘ä4°\Ä5ÈÃ<ÓP‘Ü˜œc¤5˜\Ô*ØÑ#Ø!‘Ü˜œUŸ[™[Ô)ØçIä˜# ¨x¼ÐBÔCáÜ˜n¬T°#«Y¨KÐ8Ó9Ð9ð):ð, Ðr   c                   óð  — e Zd ZdZedej                  j                  dej                  de	fd„«       Z
ededededdfd	„«       Zedej                  d
ej                  dedeeedf   z  de	ee	df   z  f
d„«       Zed#dededededz  ddf
d„«       Ze	 	 d$dedej                  d
ej                  dz  dede	f
d„«       Zedej,                  dej,                  de	fd„«       Zedej,                  dej                  de	fd„«       Zedej,                  dej                  de	fd„«       Zededede	fd„«       Ze	 	 d%dedej,                  ez  dededdf
d„«       Zdedede	f   fd„Zed ed!eddfd"„«       Zy)&ÚShapePropagationOpsHandlerz-
    Propagate shape from args to output
    Úvaluer3   r   c                 óž   — ddl m} t        t        j                  |«      r-t        j                  j                  «       }t        dg|z  «      S y)Nr   ©ÚTritonKernelr   r   )Útorch._inductor.codegen.tritonr?   r   r   ÚkernelÚtriton_tensor_ndimr   )r<   r3   r?   Úndims       r   Úconstantz#ShapePropagationOpsHandler.constantW   s<   € õ 	@ä”a—h‘h Ô-Ü—8‘8×.Ñ.Ó0ˆDÜ˜!˜˜t™Ó$Ð$àr   ÚnameÚindexNc                  ó   — y r   r   )rE   rF   r<   s      r   Ústore_reductionz*ShapePropagationOpsHandler.store_reductionb   ó   € àr   Ú	src_dtypeÚreduction_type.c                 ó   — t         ‚r   )ÚNotImplementedError)r3   rJ   rK   r<   s       r   Ú	reductionz$ShapePropagationOpsHandler.reductionf   s
   € ô "Ð!r   Úmodec                  ó   — y r   r   )rE   rF   r<   rO   s       r   Ústorez ShapePropagationOpsHandler.storeo   rI   r   Úuse_compute_typesc                 ó   — | j                   S r   )r   )r<   r3   rJ   rR   s       r   Úto_dtypez#ShapePropagationOpsHandler.to_dtypes   s   € ð �{‰{Ðr   r   r   c                 óR   — ddl m} t        t        j                  |«      sJ d«       ‚y)Nr   r>   zdot supports Triton only)ÚYBLOCKÚXBLOCK)r@   r?   r   r   rA   )r   r   r?   s      r   ÚdotzShapePropagationOpsHandler.dot|   s"   € å?äœ!Ÿ(™( LÔ1ÐMÐ3MÓMÐ1Ø#r   Úexprc                  ó   — y r   r   ©rY   r3   s     r   Ú
index_exprz%ShapePropagationOpsHandler.index_exprƒ   ó   € ð r   c                  ó   — y r   r   r[   s     r   Ú
value_exprz%ShapePropagationOpsHandler.value_exprˆ   r]   r   Úoffsetc                  ó   — y)Nr   r   )rE   r`   s     r   Ú	load_seedz$ShapePropagationOpsHandler.load_seed�   s   € àr   ÚvarÚsizeÚcheckÚwrap_negc                  ó   — y r   r   )rc   rd   re   rf   s       r   Úindirect_indexingz,ShapePropagationOpsHandler.indirect_indexing‘   s   € ð r   c                 ó   — d„ S )Nc                  ó   — t        | «      S r   )r9   )r,   Úkwargss     r   ú<lambda>z8ShapePropagationOpsHandler.__getattr__.<locals>.<lambda>›   s   € Ô'@ÀÓ'F€ r   r   )r   rE   s     r   Ú__getattr__z&ShapePropagationOpsHandler.__getattr__š   s   € ÙFÐFr   ÚcondÚmsgc                  ó   — y r   r   )rn   ro   s     r   Údevice_assert_asyncz.ShapePropagationOpsHandler.device_assert_async�   rI   r   r   )NT)TT)r   r   r   Ú__doc__Ústaticmethodr2   ÚtypesÚNumberr3   r   rD   r$   r*   ÚShapeArgrH   r   rN   rQ   r
   ÚboolrT   ÚsympyÚExprrX   r\   r_   rb   rh   r   rm   rq   r   r   r   r;   r;   R   sÀ  „ ñð ð˜Ÿ™×*Ñ*ð °5·;±;ð À>ò ó ðð ð˜cð ¨#ð °hð À4ò ó ðð ð"Ø�{‰{ð"à—;‘;ð"ð ð"ð ˜% ¨# Ñ.Ñ.ð	"ð
 
˜% °Ð 3Ñ4Ñ	4ò"ó ð"ð ñ�Cð  ð ¨Hð ¸CÀ$¹Jð ÐRVò ó ðð ð )-Ø"&ñ	Øðà�{‰{ðð —;‘; Ñ%ðð  ð	ð
 
òó ðð ð$ˆu�z‰zð $˜eŸj™jð $¨^ò $ó ð$ð ð˜Ÿ™ð ¨E¯K©Kð ¸Nò ó ðð ð˜Ÿ™ð ¨E¯K©Kð ¸Nò ó ðð ð˜ð  Sð ¨^ò ó ðð ð Øñ	Øðà�j‰j˜3Ñðð ðð ð	ð
 
òó ððG ð G¨°°nÐ1DÑ(Eó Gð ð (ð °ð ¸ò ó ñr   r;   )Ú	functoolsÚcollections.abcr   r   Útypingr   rx   r2   Úvirtualizedr   r   r*   r$   r   r
   rt   ru   r3   rv   r   Ú	lru_cacher   r   r9   r;   r   r   r   ú<module>r      s÷   ðÛ ß .Ý ã ã ç $ð ˜# ™)Ñ$ tÑ+€ô+ˆxô +ð
 �e—k‘k×(Ñ(Ñ(¨3Ñ.°Ñ9¸E¿K¹KÑG€ð6˜^ð 6°ð 6À>ó 6ð €×Ñ�TÓðKØˆS�3‰Y˜ˆ^ÑðKØ!& s¨S¡y°# ~Ñ!6ðKàòKó ðKð* H¨XÑ$6ð ¸>ó ÷8Mò Mr   