§
    M�’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 dS ),z&
Functions for manipulating IntTuples
é    )Úreduce)Úchain)Ú	TypeAlias)ÚTypeIsé   )ÚInteger)ÚIntTuple.r	   ÚxÚreturnc                 ó,   — t          | t          ¦  «        S ©N)Ú
isinstancer   ©r
   s    úQC:\Projects\DSCons\.venv\Lib\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„yð ØˆtˆØ€Hr   ÚaÚbc                 ó  — t          | ¦  «        rt          |¦  «        rdS t          | ¦  «        rVt          |¦  «        rGt          | ¦  «        t          |¦  «        k    o&t          d„ t	          | |¦  «        D ¦   «         ¦  «        S dS )NTc              3   ó<   K  — | ]\  }}t          ||¦  «        V — Œd S r   )Úmatch_structure©Ú.0r
   Úys      r   ú	<genexpr>z"match_structure.<locals>.<genexpr>C   s0   è è € Ð'TÐ'TÁ$À!ÀQ­¸¸1Ñ(=Ô(=Ð'TÐ'TÐ'TÐ'TÐ'TÐ'Tr   F)r   r   ÚlenÚallÚzip©r   r   s     r   r   r   ?   s€   € Ýˆa�y„yð •V˜A‘Y”Yð ØˆtÝ��{„{ð U•x ‘{”{ð UÝ�1‰vŒv�˜Q™œÒÐT¥CÐ'TÐ'TÍ#ÈaÐQRÉ)Ì)Ð'TÑ'TÔ'TÑ$TÔ$TÐTØˆ5r   Útc                 ó‚   — t          | ¦  «        r.t          | ¦  «        dk    rdS t          d„ | D ¦   «         ¦  «        S | fS )Nr   © c              3   ó>   K  — | ]}t          |¦  «        D ]}|V — ŒŒd S r   )Úflatten)r   r   Úis      r   r    zflatten.<locals>.<genexpr>L   s5   è è € Ð:Ð:˜q­w°q©z¬zÐ:Ð:¨!˜Ð:Ð:Ð:Ð:Ð:Ð:Ð:r   )r   r!   r   )r%   s    r   r)   r)   G   sH   € Ý��{„{ð Ýˆq‰6Œ6�QŠ;ˆ;Ø�2åÐ:Ð: AÐ:Ñ:Ô:Ñ:Ô:Ð:àˆtˆr   c                 óP   — t          | dk    ¦  «        t          | dk     ¦  «        z
  S )Nr   )Úbool©r   s    r   Úsignumr.   Q   s!   € Ý��A’‰;Œ;�˜a !še™œÑ$Ð$r   c                 óH   — 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¬mÑ(;€ r   r   )r   r   r-   s    r   r1   r1   U   s+   € Ý��{„{ð ÝÐ;Ð;¸QÀÑBÔBÐBàˆr   c                 ó.  — t          | ¦  «        r]t          |¦  «        rNt          | ¦  «        t          |¦  «        k    rt          ‚t          d„ t	          | |¦  «        D ¦   «         ¦  «        S t          | ¦  «        st          |¦  «        rt          ‚| |z  S )Nc              3   ó<   K  — | ]\  }}t          ||¦  «        V — Œd S r   )Úinner_productr   s      r   r    z inner_product.<locals>.<genexpr>`   s0   è è € Ð=Ð=©4¨1¨a•=  AÑ&Ô&Ð=Ð=Ð=Ð=Ð=Ð=r   )r   r!   ÚAssertionErrorÚsumr#   r$   s     r   r7   r7   \   s‰   € Ý��{„{ð •x ‘{”{ð Ýˆq‰6Œ6•S˜‘V”VÒÐÝ Ð ÝÐ=Ð=µ3°q¸!±9´9Ð=Ñ=Ô=Ñ=Ô=Ð=å�A‰;Œ;ð 	!�( 1™+œ+ð 	!Ý Ð Ø�1‰uˆr   c                 óV   — t          | ¦  «        rt          d„ | D ¦   «         ¦  «        S | S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )Ú	tuple_max)r   r
   s     r   r    ztuple_max.<locals>.<genexpr>i   s(   è è € Ð+Ð+ A•9˜Q‘<”<Ð+Ð+Ð+Ð+Ð+Ð+r   )r   Úmaxr-   s    r   r<   r<   g   s2   € Ý��{„{ð ÝÐ+Ð+¨Ð+Ñ+Ô+Ñ+Ô+Ð+àˆr   c                 óZ  — t          | ¦  «        rlt          |¦  «        rNt          | ¦  «        t          |¦  «        k    rt          ‚t          d„ t	          | |¦  «        D ¦   «         ¦  «        S t          d¦  «        ‚t          |¦  «        rt          | t          |¦  «        ¦  «        S | |z  S )Nc              3   ó<   K  — | ]\  }}t          ||¦  «        V — Œd S r   )Ú
elem_scaler   s      r   r    zelem_scale.<locals>.<genexpr>s   s0   è è € Ð@Ð@©d¨a°� A qÑ)Ô)Ð@Ð@Ð@Ð@Ð@Ð@r   z#Invalid combination: tuple with int)r   r!   r8   r   r#   r@   r1   r$   s     r   r@   r@   n   s�   € Ý��{„{ð Ý�A‰;Œ;ð 	HÝ�1‰vŒv�˜Q™œÒÐÝ$Ð$ÝÐ@Ð@µc¸!¸Q±i´iÐ@Ñ@Ô@Ñ@Ô@Ð@å Ð!FÑGÔGÐGå�A‰;Œ;ð 	Ý˜a¥¨¡¤Ñ,Ô,Ð,à�q‘5ˆLr   c                 ó&  — t          | ¦  «        r³t          |¦  «        rNt          | ¦  «        t          |¦  «        k    rt          ‚t          d„ t	          | |¦  «        D ¦   «         ¦  «        S g }| D ]B}|                     t          ||¦  «        ¦  «         t          |t          |¦  «        ¦  «        }ŒCt          |¦  «        S t          |¦  «        rt          | t          |¦  «        ¦  «        S | |z  dk    s|| z  dk    st          ‚| |z   dz
  |z  S )Nc              3   ó<   K  — | ]\  }}t          ||¦  «        V — Œd S r   )Ú	shape_divr   s      r   r    zshape_div.<locals>.<genexpr>ƒ   s.   è è € Ð?Ð?©T¨Q°� 1 a™œÐ?Ð?Ð?Ð?Ð?Ð?r   r   r   )r   r!   r8   r   r#   ÚappendrC   r1   )r   r   ÚrÚvs       r   rC   rC   ~   s  € Ý��{„{ð $Ý�A‰;Œ;ð 
	Ý�1‰vŒv�˜Q™œÒÐÝ$Ð$ÝÐ?Ð?µS¸¸A±Y´YÐ?Ñ?Ô?Ñ?Ô?Ð?ð ˆAØð -ð -�Ø—’� 1 a™œÑ)Ô)Ð)Ý˜a¥¨¡¤Ñ,Ô,��Ý˜‘8”8ˆOå�A‰;Œ;ð 	$Ý˜Q¥¨¡
¤
Ñ+Ô+Ð+à˜‘E˜Q’J�J ! a¡%¨1¢* *Ý$Ð$Ø˜‘E˜A‘I !Ñ#Ð#r   Úinitc                 ó.  — t          | ¦  «        rçt          |¦  «        rNt          | ¦  «        t          |¦  «        k    rt          ‚t          d„ t	          | |¦  «        D ¦   «         ¦  «        S g }t          t          | ¦  «        dz
  dd¦  «        D ]C}|                     t          | |         |¦  «        ¦  «         |t          | |         ¦  «        z  }ŒD| 	                    ¦   «          t          |¦  «        S t          |¦  «        rt          d¦  «        ‚|S )Nc              3   ó<   K  — | ]\  }}t          ||¦  «        V — Œd S r   )Úsuffix_product)r   r
   r*   s      r   r    z!suffix_product.<locals>.<genexpr>›   s0   è è € ÐGÐG±$°!°Q�¨¨1Ñ-Ô-ÐGÐGÐGÐGÐGÐGr   r   éÿÿÿÿz(Invalid combination: int with tuple init)
r   r!   r8   r   r#   ÚrangerD   rJ   r1   Úreverse)r   rG   rE   r*   s       r   rJ   rJ   •   s   € å��{„{ð Ý�D‰>Œ>ð 	Ý�1‰vŒv�˜T™œÒ"Ð"Ý$Ð$ÝÐGÐG½#¸aÀ¹,¼,ÐGÑGÔGÑGÔGÐGð
 ˆAõ �3˜q™6œ6 A™: r¨2Ñ.Ô.ð ,ð ,�Ø—’�¨¨!¬¨dÑ3Ô3Ñ4Ô4Ð4Ø�g a¨¤d™mœmÑ+��ð �IŠI‰KŒKˆKÝ˜‘8”8ˆOå�D‰>Œ>ð 	Ý Ð!KÑLÔLÐLàˆKr   NÚidxÚshapeÚstridec                 ó²  ‡ — |€t          |¦  «        }t          ‰ ¦  «        rœt          |¦  «        r~t          |¦  «        rot          ‰ ¦  «        t          |¦  «        k    r t          |¦  «        t          |¦  «        k    st          ‚t	          d„ t          ‰ ||¦  «        D ¦   «         ¦  «        S t          d¦  «        ‚t          |¦  «        r_t          |¦  «        rPt          |¦  «        t          |¦  «        k    rt          ‚t	          ˆ fd„t          ||¦  «        D ¦   «         ¦  «        S t          |¦  «        st          |¦  «        rt          ‚‰ |z  |z  S )Nc              3   ó@   K  — | ]\  }}}t          |||¦  «        V — Œd S r   ©Úidx2crd)r   r*   ÚsÚds       r   r    zidx2crd.<locals>.<genexpr>¹   s4   è è € ÐQÐQ©g¨a°°A�  A qÑ)Ô)ÐQÐQÐQÐQÐQÐQr   z*Invalid combination: tuple with int stridec              3   ó@   •K  — | ]\  }}t          ‰||¦  «        V — Œd S r   rS   )r   rU   rV   rN   s      €r   r    zidx2crd.<locals>.<genexpr>À   s3   øè è € ÐKÐK±°°1�  a¨Ñ+Ô+ÐKÐKÐKÐKÐKÐKr   )rJ   r   r!   r8   r   r#   )rN   rO   rP   s   `  r   rT   rT   ±   sF  ø€ Ø€~Ý Ñ&Ô&ˆå��}„}ð +Ý�E‰?Œ?ð 	O�x¨Ñ/Ô/ð 	OÝ˜‘H”H¥ E¡
¤
Ò*Ð*­s°6©{¬{½cÀ%¹j¼jÒ/HÐ/HÝ$Ð$ÝÐQÐQ½¸SÀ%ÈÑ9PÔ9PÐQÑQÔQÑQÔQÐQå Ð!MÑNÔNÐNå�E‰?Œ?ð 	+�x¨Ñ/Ô/ð 	+Ý�5‰zŒz�S ™[œ[Ò(Ð(Ý$Ð$ÝÐKÐKÐKÐK½¸EÀ6Ñ8JÔ8JÐKÑKÔKÑKÔKÐKå˜‰Œð %¥(¨6Ñ"2Ô"2ð %Ý$Ð$Ø˜6‘M UÑ*Ð*r   Úcrdc           	      ó¾  — |€t          |¦  «        }t          | ¦  «        r¢t          |¦  «        r~t          |¦  «        rot          | ¦  «        t          |¦  «        k    r t          |¦  «        t          |¦  «        k    st          ‚t	          d„ t          | ||¦  «        D ¦   «         ¦  «        S t          d| › d|› �¦  «        ‚| €d} t          |¦  «        rßt          |¦  «        rÐt          |¦  «        t          |¦  «        k    rt          ‚d}t          t          |¦  «        dz
  dd¦  «        D ]P}|t          | t          ||         ¦  «        z  ||         ||         ¦  «        z  }| t          ||         ¦  «        z  } ŒQt          |¦  «        dk    r |t          | |d         |d         ¦  «        z  }|S t          |¦  «        st          |¦  «        rt          ‚| |z  S )Nc              3   ó@   K  — | ]\  }}}t          |||¦  «        V — Œd S r   )Úcrd2idx)r   ÚcrU   rV   s       r   r    zcrd2idx.<locals>.<genexpr>Ñ   s4   è è € ÐOÐO©G¨A¨q°!•w˜q ! QÑ'Ô'ÐOÐOÐOÐOÐOÐOr   zInvalid combination: crd=z, shape=r   r   rK   )	rJ   r   r!   r8   r9   r#   rL   r[   r1   )rX   rO   rP   Úresultr*   s        r   r[   r[   Ç   sÒ  € ð €~Ý Ñ&Ô&ˆå��}„}ð  Ý�E‰?Œ?ð 	S�x¨Ñ/Ô/ð 	SÝ˜‘H”H¥ E¡
¤
Ò*Ð*­s°6©{¬{½cÀ%¹j¼jÒ/HÐ/HÝ$Ð$ÝÐOÐOµs¸3ÀÀvÑ7NÔ7NÐOÑOÔOÑOÔOÐOå Ð!Q¸SÐ!QÐ!QÈ%Ð!QÐ!QÑRÔRÐRàˆ;ØˆCå�E‰?Œ?ð 	 �x¨Ñ/Ô/ð 	 Ý�5‰zŒz�S ™[œ[Ò(Ð(Ý$Ð$ØˆFå�3˜u™:œ:¨™>¨1¨bÑ1Ô1ð /ð /�Ø�' #­°°a´Ñ(9Ô(9Ñ"9¸5À¼8ÀVÈAÄYÑOÔOÑO�Ø�W U¨1¤XÑ.Ô.Ñ.��Ý�5‰zŒz˜AŠ~ˆ~Ø�' # u¨Q¤x°¸´Ñ;Ô;Ñ;�ØˆMå˜‰Œð %¥(¨6Ñ"2Ô"2ð %Ý$Ð$Ø˜‘<Ðr   Ú	dst_shapeÚ	src_shapec                 óh  — t          | ¦  «        rvt          |¦  «        rNt          | ¦  «        t          |¦  «        k    rt          ‚t          d„ t	          | |¦  «        D ¦   «         ¦  «        S |€t          ‚t          | |¦  «        S t          |¦  «        rt          | |¦  «        S | |k    rt          ‚| S )Nc              3   ó<   K  — | ]\  }}t          ||¦  «        V — Œd S r   )Úcrd2crdr   s      r   r    zcrd2crd.<locals>.<genexpr>ñ   s.   è è € ÐGÐG©4¨1¨a�  A™œÐGÐGÐGÐGÐGÐGr   )r   r!   r8   r   r#   r[   rT   )rX   r^   r_   s      r   rb   rb   ê   sº   € õ ��}„}ð Ý�IÑÔð 	+Ý�3‰xŒx�3˜y™>œ>Ò)Ð)Ý$Ð$ÝÐGÐGµ3°s¸IÑ3FÔ3FÐGÑGÔGÑGÔGÐGð Ð Ý$Ð$Ý˜3 	Ñ*Ô*Ð*å�IÑÔð 	Ý˜3 	Ñ*Ô*Ð*à�iÒÐÝ$Ð$ØˆJr   Útrgc                 ó2  — t          | ¦  «        r‚t          |¦  «        rdt          | ¦  «        t          |¦  «        k    rt          ‚t          t	          t          d„ d„ t          | |¦  «        D ¦   «         ¦  «        Ž ¦  «        S t          d¦  «        ‚| €|fS dS )Nc                 ó   — | dk    S )Nr'   r'   r   s    r   r4   zslice_.<locals>.<lambda>
  s
   €  ! r¢'€ r   c                 ó4   — g | ]\  }}t          ||¦  «        ‘ŒS r'   )Úslice_)r   r\   rU   s      r   ú
<listcomp>zslice_.<locals>.<listcomp>  s$   € Ð@Ð@Ð@©$¨!¨Q�  1™œÐ@Ð@Ð@r   z+Invalid combination: tuple crd with int trgr'   )r   r!   r8   r   r   Úfilterr#   )rX   rc   s     r   rg   rg     s¤   € Ý��}„}ð Ý�C‰=Œ=ð 	PÝ�3‰xŒx�3˜s™8œ8Ò#Ð#Ý$Ð$åÝÝØ)Ð)Ø@Ð@µ#°c¸3±-´-Ð@Ñ@Ô@ñô ðñô ð õ !Ð!NÑOÔOÐOØ	ˆàˆvˆàˆrr   c                 óZ   — t          | ¦  «        rt          d„ | D ¦   «         ¦  «        S | d u S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )Úhas_none)r   rF   s     r   r    zhas_none.<locals>.<genexpr>  s(   è è € Ð*Ð* 1•8˜A‘;”;Ð*Ð*Ð*Ð*Ð*Ð*r   )r   Úanyr-   s    r   rl   rl     s7   € Ý��{„{ð ÝÐ*Ð*¨Ð*Ñ*Ô*Ñ*Ô*Ð*à�DˆyÐr   )r   r   )!Ú__doc__Ú	functoolsr   Ú	itertoolsr   Útypingr   Útyping_extensionsr   r   Úintr   r	   Ú__annotations__Úobjectr   r   r   r,   r   r)   r.   r1   r7   r<   r@   rC   rJ   rT   r[   rb   rg   rl   r'   r   r   ú<module>rv      s›  ððBð ð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $à Ð Ð Ð Ð Ð ð ˜E /Ô2Ñ2€ˆ)Ð 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   