§
    ž²Åj(  ã                   ó˜  — d dl Z d dlZd dlmZmZ d dlZd dlZd dlmZ	 ddl
mZm
Z
 ddlmZ  e	j        ¦   «          e	j        e	j        e	j        cZZZ G d„ de¦  «        Z G d	„ d
e¦  «        ZddlmZ e                     ej        d¦  «        ZdZesddlmZ  G d„ d¦  «        Zeej        fZ G d„ de	j        e¦  «        Z G d„ dee	j        ¦  «        Zd„ Zer<e	j         Z d„ Z! e	j"        e	j#        ¦  «        Z$e	j%        Z% e	j"        e	j&        ¦  «        Z&n$ej         ej!        cZ Z!ej$        Z$ej%        Z%ej&        Z& e	j"        e	j'        ¦  «        Z(e$e_#        e(e_'        e&ej        _&        e&e_&         e	j"        e	j)        ¦  «        ej        _)         e	j"        e	j*        ¦  «        ej        _*         eeeej        ej+        ¦  «         e`,er e	j"        e	j-        ¦  «        e_-        nej.        e_-         e!d¦  «          e!d¦  «          e!d¦  «          e!d¦  «          e!d¦  «          e!d¦  «          e!d¦  «          e!d¦  «          e!d¦  «          e!d¦  «          e!d ¦  «          e!d!¦  «          e!d"d#¬$¦  «          e!d%d#¬$¦  «          e!d&d¬'¦  «          e!d(d¬'¦  «          e!d)d¬'¦  «          e!d*d¬'¦  «          e!d+d¬'¦  «          e!d,d¬'¦  «          e!d-d¬'¦  «          e!d.d¬'¦  «          e!d/d0¬1¦  «          e!d2d0¬1¦  «          e!d3d¬'¦  «          e!d4dd0¬5¦  «          e!d6dd0¬7¦  «          e!d8dd0¬7¦  «          e!d9dd0¬7¦  «          e!d:dd0¬7¦  «          e!d;dd0¬7¦  «          e!d<dd0¬7¦  «          e!d=dd0¬7¦  «          e!d>ddd0¬?¦  «          e!d@dd0¬7¦  «          e ej/        j0        j1        dd0¬7¦  «        Z1dS )Aé    N)ÚSequenceÚUnion)Údimé   )Útree_flattenÚtree_map)Ú	wrap_typec                   ó   — e Zd ZdS )ÚDimensionMismatchErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úGC:\Projects\Historical\venv\Lib\site-packages\functorch/dim/__init__.pyr   r      ó   € € € € € Ø€Dr   r   c                   ó   — e Zd ZdS )ÚDimensionBindErrorNr   r   r   r   r   r      r   r   r   )Úop_propertiesT)Ú	referencec                   óÆ   — e Zd Zed„ ¦   «         Zd„ Zer& eej	        ¦  «        Z	 ej
        ej        ¦  «        Znej	        Z	ej        Z ej
        ej        ¦  «        Zd„ ZdS )Ú_Tensorc                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S ©N)Ú
isinstanceÚDim)Ú.0Úds     r   ú	<genexpr>z_Tensor.dims.<locals>.<genexpr>*   s1   è è € ÐCÐC˜1µ
¸1½cÑ0BÔ0BÐC�QÐCÐCÐCÐCÐCÐCr   )ÚtupleÚ_levels©Úselfs    r   Údimsz_Tensor.dims(   s!   € åÐCÐC ¤ÐCÑCÔCÑCÔCÐCr   c                 ó   — | j         S r   )Úndimr$   s    r   r   z_Tensor.dim,   s
   € ØŒyÐr   c                 ó´   ‡— | j         | j        | j        c}}Š|› dt          ˆfd„|D ¦   «         ¦  «        › dt          |                     ¦   «         ¦  «        › �S )Nz
with dims=c              3   óP   •K  — | ] }t          |t          ¦  «        r|‰z   n|V — Œ!d S r   )r   Úint)r   Úlr(   s     €r   r!   z#_Tensor.__repr__.<locals>.<genexpr>:   s<   øè è € Ð+bÐ+bÐVW½
À1ÅcÑ8JÔ8JÐ,Q¨A°©H¨HÐPQÐ+bÐ+bÐ+bÐ+bÐ+bÐ+br   z sizes=)Ú_tensorr#   r(   r"   Úsize)r%   ÚtensorÚlevelsr(   s      @r   Ú__repr__z_Tensor.__repr__8   s~   ø€ Ø#œ|¨T¬\¸4¼9Ðˆ�˜Øð  Bð  B¥eÐ+bÐ+bÐ+bÐ+bÐ[aÐ+bÑ+bÔ+bÑ&bÔ&bð  Bð  BÕkpÐqw×q|Òq|Ñq~Ôq~ÑkÔkð  Bð  Bð  	Br   N)r   r   r   Úpropertyr&   r   Úuse_cÚclassmethodÚ_CÚ__torch_function__Ú_instancemethodÚexpandr   Úindexr1   r   r   r   r   r   $   s­   € € € € € ð ðDð Dñ „XðDðð ð ð ð "Ø(˜[¨Ô)>Ñ?Ô?ÐØ#�Ô# B¤IÑ.Ô.ˆˆà&Ô9ÐØÔ!ˆàˆBÔ˜rœxÑ(Ô(€EðBð Bð Bð Bð Br   r   c                   ó   — e Zd Zej        ZdS )r   N)r   r   r   ÚobjectÚ
__format__r   r   r   r   r   @   s   € € € € € ð Ô"€J€J€Jr   r   c                   ó|   — e Zd Zes eej        ¦  «        Z eej        ¦  «        Z	 ej
        ej        ¦  «        ZdS )ÚTensorN)r   r   r   r3   Ústaticmethodr5   ÚTensor_from_batchedÚfrom_batchedÚTensor_from_positionalÚfrom_positionalr7   Ú
Tensor_sumÚsumr   r   r   r>   r>   F   sN   € € € € € Øð <Ø#�| BÔ$:Ñ;Ô;ˆØ"�l 2Ô#<Ñ=Ô=€OØ
ˆ"Ô
˜Rœ]Ñ
+Ô
+€C€C€Cr   r>   c                 ól   — t          ¦   «         }t          | ||¦  «                             ||g|¦  «        S r   )r&   Ústackr9   )Útensorsr   Únew_dimÚns       r   ÚcatrK   M   s1   € Ý‰Œ€AÝ�˜!˜SÑ!Ô!×'Ò'¨¨C¨°'Ñ:Ô:Ð:r   c                 ó¦   — t          t          j        | ¦  «        }t          t          | t          j        t          |g|¢R i |¤Ž¦  «        ¦  «         d S r   )ÚgetattrÚtorchr>   Úsetattrr   r5   r7   Ú_wrap)ÚnameÚargsÚkwargsÚorigs       r   Ú_defrU   U   sN   € Ý•u”| TÑ*Ô*ˆÝ•˜�rÔ1µ%¸Ð2N¸tÐ2NÐ2NÐ2NÀvÐ2NÐ2NÑOÔOÑPÔPÐPÐPÐPr   ÚmeanrE   ÚallÚamaxÚaminÚaminmaxÚanyÚcount_nonzeroÚ	logsumexpÚnanmeanÚnansumÚprodÚstdé   )Úkeepdim_offsetÚvarÚmax)Ú
single_dimÚminÚargmaxÚargminÚkthvalueÚmedianÚ	nanmedianÚmodeÚsortF)ÚreduceÚargsortÚunbindÚchunk)Ú
dim_offsetro   Úcummax)rf   ro   ÚcumminÚcumprodÚcumprod_ÚcumsumÚcumsum_ÚlogcumsumexpÚrenorm)rs   rf   ro   Úsoftmax)2ÚdisÚinspectÚtypingr   r   Úfunctorch._CÚ	functorchrN   r   r5   r   r   r	   Ú_patch_tensor_classr&   ÚDimListÚdimlistsÚ	Exceptionr   r   Ú r   ÚdictÚfromkeysÚ	pointwiser3   r   r   r>   Ú
TensorLiker   rK   rP   rU   r7   Ú__getitem__Út__getitem__rG   ÚsplitÚ__setitem__Út__setitem__r8   r9   r6   r(   ÚorderÚ
positionalÚnnÚ
functionalr|   r   r   r   ú<module>r”      sÞ  ðØ 
€
€
€
Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø  Ð  Ð  Ð  Ð  Ð  ð €Ô Ñ Ô Ð Øœ' 2¤:¨r¬{Ð €€gˆxð	ð 	ð 	ð 	ð 	˜Yñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð Ð Ð Ð Ð Ð ð �MŠM˜-Ô1°4Ñ8Ô8€	à€Øð ØÐÐÐÐÐðBð Bð Bð Bð Bñ Bô Bð Bð2 �u”|Ð$€
ð#ð #ð #ð #ð #ˆ"Œ&�'ñ #ô #ð #ð,ð ,ð ,ð ,ð ,ˆW�b”iñ ,ô ,ð ,ð;ð ;ð ;ð
 	ð ØŒH€EðQð Qð Qð &�2Ô% b¤nÑ5Ô5€LØŒH€EØˆBÔ˜rœxÑ(Ô(€E€Eà”/ 9¤>€K€Eˆ4ØÔ)€LØŒO€EØŒO€Eð "ˆrÔ! "¤.Ñ1Ô1€ð
 #€Ô à"€Ô à€„Ô Ø€„Ø(�bÔ(¨¬Ñ3Ô3€„Ô Ø'�RÔ'¨¬Ñ1Ô1€„Ô Ø 	€	ˆ%�˜%œ,¨Ô(BÑ CÔ CÐ CØ€Làð )Ø&�BÔ& r¤xÑ0Ô0€G„M€MàÔ(€G„Mà €€V�„€Ø €€U�„€Ø €€U�„€Ø €€V�„€Ø €€V�„€Ø €€Y�„€Ø €€U�„€Ø €€_Ñ Ô Ð Ø €€[Ñ Ô Ð Ø €€Y�„€Ø €€X�„€Ø €€V�„€Ø €€U˜1Ð Ñ Ô Ð Ø €€U˜1Ð Ñ Ô Ð Ø €€U�tÐ Ñ Ô Ð Ø €€U�tÐ Ñ Ô Ð Ø €€X˜$Ð Ñ Ô Ð Ø €€X˜$Ð Ñ Ô Ð Ø €€Z˜DÐ !Ñ !Ô !Ð !Ø €€X˜$Ð Ñ Ô Ð Ø €€[˜TÐ "Ñ "Ô "Ð "Ø €€V˜Ð Ñ Ô Ð Ø €€V�EÐ Ñ Ô Ð Ø €€Y�uÐ Ñ Ô Ð Ø €€X˜$Ð Ñ Ô Ð Ø €€W˜ 5Ð )Ñ )Ô )Ð )Ø €€X˜$ uÐ -Ñ -Ô -Ð -Ø €€X˜$ uÐ -Ñ -Ô -Ð -Ø €€Y˜4¨Ð .Ñ .Ô .Ð .Ø €€Z˜D¨Ð /Ñ /Ô /Ð /Ø €€X˜$ uÐ -Ñ -Ô -Ð -Ø €€Y˜4¨Ð .Ñ .Ô .Ð .Ø €€^ ¨UÐ 3Ñ 3Ô 3Ð 3Ø €€X˜!¨°UÐ ;Ñ ;Ô ;Ð ;Ø €€Y˜4¨Ð .Ñ .Ô .Ð .Ø
ˆ%�”Ô#Ô+¸ÀUÐ
KÑ
KÔ
K€€€r   