Ë
    ÄÓ^j@(  ã            	       ó  — U d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 e
ed   z  Zeed	<   d
edee
   fd„Zd
edee   fd„Zd
edeedf   fd„Zdededefd„Zdedee
df   fd„Zde
de
fd„Zdede
fd„Zdedede
fd„Zdede
fd„Zdededefd„Zdededefd„Zd*dededefd„Zd+deded edz  defd!„Z	 d+d"edz  ded edz  de
fd#„Z	 d+d"ed$ed%edz  defd&„Zd"ee
z  dz  d'ee
z  dee
z  fd(„Zdee
z  dz  defd)„Z y),z&
Functions for manipulating IntTuples
é    )Úreduce)Úchain)Ú	TypeAlias)ÚTypeIsé   )ÚInteger)ÚIntTuple.r	   ÚxÚreturnc                 ó"   — t        | t        «      S ©N)Ú
isinstancer   ©r
   s    ún/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/distributed/_pycute/int_tuple.pyÚis_intr   1   s   € Ü�aœÓ!Ð!ó    c                 ó"   — t        | t        «      S r   )r   Útupler   s    r   Úis_tupler   5   s   € Ü�aœÓÐr   .c                 ó"   — t        | «      r| fS | S r   )r   r   s    r   Úas_tupler   9   s   € Üˆa„yØˆtˆØ€Hr   ÚaÚbc                 óÈ   — t        | «      rt        |«      ryt        | «      r@t        |«      r5t        | «      t        |«      k(  xr t        d„ t	        | |«      D «       «      S y)NTc              3   ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wr   )Úmatch_structure©Ú.0r
   Úys      r   ú	<genexpr>z"match_structure.<locals>.<genexpr>C   s   è ø€ Ò'TÁ$À!ÀQ¬¸¸1×(=Ñ'Tùó   ‚F)r   r   ÚlenÚallÚzip©r   r   s     r   r   r   ?   sL   € Üˆa„y”V˜A”YØÜ�„{”x ”{Ü�1‹vœ˜Q›ÑÒT¤CÑ'TÌ#ÈaÐQRË)Ô'TÓ$TÐTØr   Útc                 ó`   — t        | «      r!t        | «      dk(  ryt        d„ | D «       «      S | fS )Nr   © c              3   ó@   K  — | ]  }t        |«      D ]  }|–— Œ Œ y ­wr   )Úflatten)r   r   Úis      r   r    zflatten.<locals>.<genexpr>L   s    è ø€ Ò:˜q¬w°q«zÒ:¨!œÐ:˜Ñ:ùs   ‚)r   r"   r   )r&   s    r   r*   r*   G   s/   € Ü�„{Üˆq‹6�QŠ;ØäÑ: AÔ:Ó:Ð:àˆtˆr   c                 ó<   — t        | dkD  «      t        | dk  «      z
  S )Nr   )Úbool©r   s    r   Úsignumr/   Q   s   € Ü��A‘‹;œ˜a !™e›Ñ$Ð$r   c                 ó8   — t        | «      rt        d„ | d«      S | S )Nc                 ó   — | t        |«      z  S r   )Úproduct)ÚvalÚelems     r   ú<lambda>zproduct.<locals>.<lambda>W   s   € ¨¬g°d«mÑ(;€ r   r   )r   r   r.   s    r   r2   r2   U   s   € Ü�„{ÜÑ;¸QÀÓBÐBàˆr   c                 óâ   — t        | «      rDt        |«      r9t        | «      t        |«      k7  rt        ‚t        d„ t	        | |«      D «       «      S t        | «      st        |«      rt        ‚| |z  S )Nc              3   ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wr   )Úinner_productr   s      r   r    z inner_product.<locals>.<genexpr>`   s   è ø€ Ò=©4¨1¨a”=  A×&Ñ=ùr!   )r   r"   ÚAssertionErrorÚsumr$   r%   s     r   r8   r8   \   sX   € Ü�„{”x ”{Üˆq‹6”S˜“VÒÜ Ð ÜÑ=´3°q¸!³9Ô=Ó=Ð=ä�AŒ;œ( 1œ+Ü Ð Ø�1‰uˆr   c                 ó@   — t        | «      rt        d„ | D «       «      S | S )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Ú	tuple_max)r   r
   s     r   r    ztuple_max.<locals>.<genexpr>i   s   è ø€ Ò+ A”9˜Q—<Ñ+ùó   ‚)r   Úmaxr.   s    r   r=   r=   g   s   € Ü�„{ÜÑ+¨Ô+Ó+Ð+àˆr   c                 ó   — t        | «      rOt        |«      r9t        | «      t        |«      k7  rt        ‚t        d„ t	        | |«      D «       «      S t        d«      ‚t        |«      rt        | t        |«      «      S | |z  S )Nc              3   ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wr   )Ú
elem_scaler   s      r   r    zelem_scale.<locals>.<genexpr>s   s   è ø€ Ò@©d¨a°œ A q×)Ñ@ùr!   z#Invalid combination: tuple with int)r   r"   r9   r   r$   rB   r2   r%   s     r   rB   rB   n   sj   € Ü�„{Ü�AŒ;Ü�1‹vœ˜Q›ÒÜ$Ð$ÜÑ@´c¸!¸Q³iÔ@Ó@Ð@ä Ð!FÓGÐGä�AŒ;Ü˜a¤¨£Ó,Ð,à�q‘5ˆLr   c                 óª  — t        | «      rˆt        |«      r9t        | «      t        |«      k7  rt        ‚t        d„ t	        | |«      D «       «      S g }| D ]2  }|j                  t        ||«      «       t        |t        |«      «      }Œ4 t        |«      S t        |«      rt        | t        |«      «      S | |z  dk(  s|| z  dk(  st        ‚| |z   dz
  |z  S )Nc              3   ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wr   )Ú	shape_divr   s      r   r    zshape_div.<locals>.<genexpr>ƒ   s   è ø€ Ò?©T¨Q°œ 1 aŸÑ?ùr!   r   r   )r   r"   r9   r   r$   ÚappendrE   r2   )r   r   ÚrÚvs       r   rE   rE   ~   sÆ   € Ü�„{Ü�AŒ;Ü�1‹vœ˜Q›ÒÜ$Ð$ÜÑ?´S¸¸A³YÔ?Ó?Ð?ð ˆAØò -�Ø—‘œ 1 a›Ô)Ü˜a¤¨£Ó,‘ð-ô ˜“8ˆOä�AŒ;Ü˜Q¤¨£
Ó+Ð+à˜‘E˜Q’J ! a¡%¨1¢*Ü$Ð$Ø˜‘E˜A‘I !Ñ#Ð#r   Úinitc                 ó¤  — t        | «      r®t        |«      r9t        | «      t        |«      k7  rt        ‚t        d„ t	        | |«      D «       «      S g }t        t        | «      dz
  dd«      D ]1  }|j                  t        | |   |«      «       |t        | |   «      z  }Œ3 |j                  «        t        |«      S t        |«      rt        d«      ‚|S )Nc              3   ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wr   )Úsuffix_product)r   r
   r+   s      r   r    z!suffix_product.<locals>.<genexpr>›   s   è ø€ ÒG±$°!°Qœ¨¨1×-ÑGùr!   r   éÿÿÿÿz(Invalid combination: int with tuple init)
r   r"   r9   r   r$   ÚrangerF   rL   r2   Úreverse)r   rI   rG   r+   s       r   rL   rL   •   s»   € ä�„{Ü�DŒ>Ü�1‹vœ˜T›Ò"Ü$Ð$ÜÑG¼#¸aÀ»,ÔGÓGÐGð
 ˆAô œ3˜q›6 A™: r¨2Ó.ò ,�Ø—‘œ¨¨!©¨dÓ3Ô4Øœg a¨¡d›mÑ+‘ð,ð
 �I‰IŒKÜ˜“8ˆOä�DŒ>Ü Ð!KÓLÐLàˆKr   NÚidxÚshapeÚstridec                 ó  ‡ — |€t        |«      }t        ‰ «      rrt        |«      r\t        |«      rQt        ‰ «      t        |«      k(  rt        |«      t        |«      k(  st        ‚t	        d„ t        ‰ ||«      D «       «      S t        d«      ‚t        |«      rFt        |«      r;t        |«      t        |«      k7  rt        ‚t	        ˆ fd„t        ||«      D «       «      S t        |«      st        |«      rt        ‚‰ |z  |z  S )Nc              3   ó>   K  — | ]  \  }}}t        |||«      –— Œ y ­wr   ©Úidx2crd)r   r+   ÚsÚds       r   r    zidx2crd.<locals>.<genexpr>¹   s   è ø€ ÒQ©g¨a°°Aœ  A q×)ÑQùó   ‚z*Invalid combination: tuple with int stridec              3   ó>   •K  — | ]  \  }}t        ‰||«      –— Œ y ­wr   rU   )r   rW   rX   rP   s      €r   r    zidx2crd.<locals>.<genexpr>À   s   øè ø€ ÒK±°°1œ  a¨×+ÑKùs   ƒ)rL   r   r"   r9   r   r$   )rP   rQ   rR   s   `  r   rV   rV   ±   sÑ   ø€ Ø€~Ü Ó&ˆä�„}Ü�EŒ?œx¨Ô/Ü˜“H¤ E£
Ò*¬s°6«{¼cÀ%»jÒ/HÜ$Ð$ÜÑQ¼¸SÀ%ÈÓ9PÔQÓQÐQä Ð!MÓNÐNä�EŒ?œx¨Ô/Ü�5‹zœS ›[Ò(Ü$Ð$ÜÓK¼¸EÀ6Ó8JÔKÓKÐKä˜Œ¤(¨6Ô"2Ü$Ð$Ø˜6‘M UÑ*Ð*r   Úcrdc           	      óÊ  — |€t        |«      }t        | «      rxt        |«      r\t        |«      rQt        | «      t        |«      k(  rt        |«      t        |«      k(  st        ‚t	        d„ t        | ||«      D «       «      S t        d| › d|› �«      ‚| €d} t        |«      r¤t        |«      r™t        |«      t        |«      k7  rt        ‚d}t        t        |«      dz
  dd«      D ]8  }|t        | t        ||   «      z  ||   ||   «      z  }| t        ||   «      z  } Œ: t        |«      dkD  r|t        | |d   |d   «      z  }|S t        |«      st        |«      rt        ‚| |z  S )Nc              3   ó>   K  — | ]  \  }}}t        |||«      –— Œ y ­wr   )Úcrd2idx)r   ÚcrW   rX   s       r   r    zcrd2idx.<locals>.<genexpr>Ñ   s   è ø€ ÒO©G¨A¨q°!”w˜q ! Q×'ÑOùrY   zInvalid combination: crd=z, shape=r   r   rM   )	rL   r   r"   r9   r:   r$   rN   r^   r2   )r[   rQ   rR   Úresultr+   s        r   r^   r^   Ç   sZ  € ð €~Ü Ó&ˆä�„}Ü�EŒ?œx¨Ô/Ü˜“H¤ E£
Ò*¬s°6«{¼cÀ%»jÒ/HÜ$Ð$ÜÑO´s¸3ÀÀvÓ7NÔOÓOÐOä Ð#<¸S¸EÀÈ%ÈÐ!QÓRÐRàˆ;ØˆCä�EŒ?œx¨Ô/Ü�5‹zœS ›[Ò(Ü$Ð$ØˆFäœ3˜u›:¨™>¨1¨bÓ1ò /�Øœ' #¬°°a±Ó(9Ñ"9¸5À¹8ÀVÈAÁYÓOÑO�ØœW U¨1¡XÓ.Ñ.‘ð/ô �5‹z˜AŠ~Øœ' # u¨Q¡x°¸±Ó;Ñ;�ØˆMä˜Œ¤(¨6Ô"2Ü$Ð$Ø˜‘<Ðr   Ú	dst_shapeÚ	src_shapec                 ó  — t        | «      rXt        |«      r9t        | «      t        |«      k7  rt        ‚t        d„ t	        | |«      D «       «      S |€t        ‚t        | |«      S t        |«      rt        | |«      S | |k\  rt        ‚| S )Nc              3   ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wr   )Úcrd2crdr   s      r   r    zcrd2crd.<locals>.<genexpr>ñ   s   è ø€ ÒG©4¨1¨aœ  AŸÑGùr!   )r   r"   r9   r   r$   r^   rV   )r[   ra   rb   s      r   re   re   ê   s„   € ô �„}Ü�IÔÜ�3‹xœ3˜y›>Ò)Ü$Ð$ÜÑG´3°s¸IÓ3FÔGÓGÐGð Ð Ü$Ð$Ü˜3 	Ó*Ð*ä�IÔÜ˜3 	Ó*Ð*à�iÒÜ$Ð$ØˆJr   Útrgc                 ó  — t        | «      rvt        |«      r`t        | «      t        |«      k7  rt        ‚t        t	        t        d„ t        | |«      D ��cg c]  \  }}t        ||«      ‘Œ c}}«      Ž «      S t        d«      ‚| €|fS yc c}}w )Nc                 ó   — | dk7  S )Nr(   r(   r   s    r   r5   zslice_.<locals>.<lambda>
  s
   €  ! r¡'€ r   z+Invalid combination: tuple crd with int trgr(   )r   r"   r9   r   r   Úfilterr$   Úslice_)r[   rf   r_   rW   s       r   rj   rj     s‡   € Ü�„}Ü�CŒ=Ü�3‹xœ3˜s›8Ò#Ü$Ð$äÜÜÙ)Ü25°c¸3³-×@©$¨!¨Qœ  1�Ó@óðóð ô !Ð!NÓOÐOØ	ˆàˆvˆàùó As   ÁBc                 óD   — t        | «      rt        d„ | D «       «      S | d u S )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Úhas_none)r   rH   s     r   r    zhas_none.<locals>.<genexpr>  s   è ø€ Ò* 1”8˜A—;Ñ*ùr>   )r   Úanyr.   s    r   rm   rm     s$   € Ü�„{ÜÑ*¨Ô*Ó*Ð*à�DˆyÐr   )r   r   )!Ú__doc__Ú	functoolsr   Ú	itertoolsr   Útypingr   Útyping_extensionsr   r   Úintr   r	   Ú__annotations__Úobjectr   r   r   r-   r   r*   r/   r2   r8   r=   rB   rE   rL   rV   r^   re   rj   rm   r(   r   r   ú<module>rw      s#  ðòBõ Ý Ý Ý $å ð ˜E /Ñ2Ñ2€ˆ)Ó 2ð"ˆfð "˜ ™ó "ð �ð  ˜6 %™=ó  ð�ð ˜U 8¨S =Ñ1ó ð�xð  Hð °ó ðˆxð ˜E # s (™Oó ð%ˆcð %�có %ðˆxð ˜Có ð�Xð  (ð ¨só ð�ð ˜có ð�(ð ˜xð ¨Hó ð $�ð $˜hð $¨8ó $ñ.�hð  hð °xó ñ8+�ð + (ð +°H¸t±Oð +Èxó +ð. FJñ Ø	�D‰ð Ø!)ð Ø3;¸d±?ð àó ðH FJñØ	ðØ&ðØ3;¸d±?ðàóð.�˜‘˜dÑ"ð ¨°©ð ¸À¹ó ð0�˜‘˜dÑ"ð  tô r   