ó
    ±“,j¶!  ã                   óT  • S SK r S SKrS SKrS SKrS SKJr  S SK Jr  S SKJrJ	r	J
r
  S SKrS SKJs  Jr  S SKJr  S SKJr  SSKJr  SS	KJr  \	" S
\S\4   S9r " S S5      rS rS rS rS rSS jrS rS rS r \
S\S\4S j5       r!\
SSSS\S\S\\/\4   4S jj5       r!SS jr!g) é    N)ÚCallable)Úpartial)ÚAnyÚTypeVarÚoverload)ÚCallOperationError)Ú	lru_cacheé   )Úregistry)ÚTensorÚ_F.)Úboundc                   ó   • \ rS rSrS rSrg)Ú	TensorArgé   c                 ó   • Xl         g ©N©Úvalue)Úselfr   s     Ú¤C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\einx/_src/frontend/api.pyÚ__init__ÚTensorArg.__init__   s   € Ø�
ó    r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__© r   r   r   r      s   † õr   r   c                 óf  ^^• / mU4S jm U R                   " U0 UD6nUR                  R                  5       nUR                  5         UR                  R                  5       n/ n0 nU R
                  R                  5        GH  u  pšX•;   d  M  XY   nU
R                  [        L d  U
R                  S:X  a  SnOSnU(       aF  U
R                  [        R                  R                  :X  a  [        U4S jU 5       5      nOT" U5      nU
R                  [        R                  R                  :X  a  UR                  U5        MÁ  U
R                  [        R                  R                  :X  a2  [!        U[        ["        -  5      (       d   eUR%                  U5        GM  U
R                  [        R                  R&                  :X  a  X¸U	'   GMJ  U
R                  [        R                  R(                  :X  a+  [!        U[*        5      (       d   eUR-                  U5        GM�  U
R                  [        R                  R.                  :X  a,  X’;   a  X¸U	'   GMÑ  X”;  a  X¸U	'   GMÝ  UR                  U5        GMñ  [1        SU
R                   35      e   XxT4$ ! [         a  n[	        SU SU  35      UeS nAff = f)	Nc                 ó<   >• TR                  U 5        [        U 5      $ r   )Úappendr   )r   Útensor_argss    €r   Úreplace_with_tensorargÚ._split_tensors.<locals>.replace_with_tensorarg   s   ø€ Ø×Ñ˜5Ô!Ü˜ÓÐr   z1The einx operation received incorrect arguments. z
The function's signature is: r   TFc              3   ó4   >#   • U  H  nT" U5      v •  M     g 7fr   r    )Ú.0Úvr%   s     €r   Ú	<genexpr>Ú!_split_tensors.<locals>.<genexpr>;   s   øé € ÐGÂ3¸aÑ 6°q× 9Ð 9Â3ùs   ƒzUnknown parameter kind: )ÚbindÚ	argumentsÚcopyÚapply_defaultsÚ	TypeErrorÚ
parametersÚitemsÚ
annotationr   ÚkindÚinspectÚ	ParameterÚVAR_POSITIONALÚtupleÚPOSITIONAL_ONLYr#   Ú
isinstanceÚlistÚextendÚKEYWORD_ONLYÚVAR_KEYWORDÚdictÚupdateÚPOSITIONAL_OR_KEYWORDÚAssertionError)Ú	signatureÚargsÚkwargsr   Ú bound_arguments_without_defaultsÚbound_arguments_with_defaultsÚeÚnew_argsÚ
new_kwargsÚnameÚparamÚvalÚ	is_tensorr%   r$   s                @@r   Ú_split_tensorsrO      sE  ù€ Ø€Kõ ðBØ—’ Ð/¨Ñ/ˆØ+0¯?©?×+?Ñ+?Ó+AÐ(Ø×ÑÔØ(-¯©×(<Ñ(<Ó(>Ð%ð €HØ€Jà ×+Ñ+×1Ñ1×3‰ˆØÕ0Ø/Ñ5ˆCð ×Ñ¤6Ò)¨U×-=Ñ-=ÀÓ-Ià ‘	ð "�	æà—:‘:¤×!2Ñ!2×!AÑ!AÓAÜÔGÁ3ÓGÓG‘Cá0°Ó5�Cà�z‰zœW×.Ñ.×>Ñ>Ó>Ø—‘ Ö$Ø—‘œw×0Ñ0×?Ñ?Ó?Ü! #¤u¬t¡|×4Ñ4Ð4Ð4Ø—‘ ×$Ø—‘œw×0Ñ0×=Ñ=Ó=Ø#&˜4Ô Ø—‘œw×0Ñ0×<Ñ<Ó<Ü! #¤t×,Ñ,Ð,Ð,Ø×!Ñ! #×&Ø—‘œw×0Ñ0×FÑFÓFà“>à'*˜tÔ$ØÓAà'*˜tÔ$ð —O‘O C×(ä$Ð'?ÀÇ
Á
¸|Ð%LÓMÐMñS 4ðV  Ð,Ð,øôc ó BÜÐKÈAÈ3ÐNmÐnwÐmxÐyÓzð  ABð  	BûðBús   ŒAJ Ê
J0ÊJ+Ê+J0c                 ó¤   • [        U [        [        -  [        -  [        R
                  -  [        R                  -  [        R                  -  5      $ r   )r:   ÚintÚfloatÚboolÚnpÚintegerÚfloatingÚbool_©Úxs    r   Ú
_is_scalarrZ   Z   s3   € Ü�aœœu™¤tÑ+¬b¯j©jÑ8¼2¿;¹;ÑFÌÏÉÑQÓRÐRr   c                 óš   •  [         R                  " U 5      n0 UR                  E$ ! [         a    [         R                  " S 5      n N1f = f)Nc                 ó   • g r   r    ©Úshapes    r   Ú<lambda>Ú _get_signature.<locals>.<lambda>b   s   € °Dr   )r5   rC   Ú
ValueErrorr1   )ÚfuncrC   s     r   Ú_get_signaturerc   ^   sL   € ð:Ü×%Ò% dÓ+ˆ	ð $ˆi×"Ñ"Ð#Ð#øô ó :Ü×%Ò%Ñ&8Ó9Š	ð:ús   ‚& ¦!A
Á	A
c           
      ó:  • [        U [        5      (       Ga  UR                  U R                  5      (       aA  [        R
                  R                  R                  S UR                  U R                  5      S9$ [        U R                  [        R                  5      (       ar  [        R
                  R                  R                  S [        S U R                  R                   5       5      [        R                  " [!        U R                  5      S9S9$ [#        U R                  5      (       aN  [        R
                  R                  R                  S S[        R                  " [!        U R                  5      S9S9$ [%        U R                  5      (       ab  [        R
                  R                  R                  S S [        R                  " [!        U R                  5      ['        U R                  5      S9S9$ [)        SU S[!        U R                  5       35      eU $ )	Nr]   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   )rQ   )r(   rY   s     r   r*   Ú_to_tracer.<locals>.<genexpr>l   s   é € Ð!@²-¨Q¤# a§& &²-ùs   ‚)Útype)r^   Úconcreter    )rg   r1   zThe z+ to the einx function has an invalid type: )r:   r   Úis_supported_tensorr   ÚtracerrC   Ú	classicalr   Ú	get_shaperT   ÚndarrayÚConvertibleTensorr8   r^   ÚtypesÚSimpleNamespacerg   rZ   Úcallablerc   ra   )rY   ÚbackendrK   s      r   Ú
_to_tracerrs   f   s³  € Ü�!”Y×ÒØ×&Ñ& q§w¡w×/Ñ/Ü×#Ñ#×-Ñ-×4Ñ4°TÀ×ARÑARÐST×SZÑSZÓA[Ð4Ð\Ð\Ü˜Ÿ™¤§¡×,Ñ,Ü×#Ñ#×-Ñ-×?Ñ?ØœEÑ!@°!·'±'·-²-Ó!@Ó@Ì5×K`ÒK`ÔfjÐkl×krÑkrÓfsÑKtð @ð ð ô ˜Ÿ™× Ñ Ü×#Ñ#×-Ñ-×?Ñ?ÀÈBÔY^×YnÒYnÔtxÐyz÷  zAñ  zAó  uBñ  ZCÐ?ð  Dð  DÜ�a—g‘g×ÑÜ×#Ñ#×-Ñ-×?Ñ?Ø˜D¬5×+@Ò+@ÄdÈ1Ï7É7ÃmÔ`nÐop×ovÑovÓ`wÑ+xð @ð ð ô ˜t D 6Ð)TÔUYÐZ[×ZaÑZaÓUbÐTcÐdÓeÐeàˆr   c                 óØ  • Uc  US   n[        U 5      [        UR                  5       5      -    Vs/ s H&  n[        U[        R                  5      (       d  M$  UPM(     nn[        R
                  " U6    U" U 0 UD6nS S S 5        [        R                  " UWSS9n[        R                  " XsR                  S9nUR                  R                  USS9u  p‰X‰4$ s  snf ! , (       d  f       Nf= f)Nrr   Úop)ÚinputsÚoutputrK   )ÚoptimizationsT)Úreturn_code)r;   Úvaluesr:   rj   ÚTracerÚ	depend_onÚGraphÚoptimizerx   ÚcompilerÚcompile)
rD   rE   rb   rr   rY   Úinput_tracersÚoutput_tracerÚgraphÚfunctionÚcodes
             r   Ú_construct_graphr†   z   s×   € Ø�Ø˜Ñ#ˆô !% T£
¬T°&·-±-³/Ó-BÒ BÓcÒ B˜1ÄjÐQRÔTZ×TaÑTa×Fb—QÑ B€MÐcÜ	×	Ò	Ø	ò
ñ ˜dÐ- fÑ-ˆ÷
ô �LŠL °mÈ$ÑO€Eô �OŠO˜E×1FÑ1FÑG€Eð ×%Ñ%×-Ñ-¨eÀÐ-ÐF�N€Hàˆ>Ðùò/ d÷
õ 
ús   °#CÁCÁ2	CÃ
C)c                 ó<   • U S:X  a  gU S:X  a  gU S:X  a  gU S-    S3$ )Nr   Ú1str
   Ú2ndé   Ú3rdÚthr    rX   s    r   Ú
to_ord_strr�   ™   s0   € ØˆAƒvØØ	
ˆa‹ØØ	
ˆa‹Øà�a‘%�˜ˆ|Ðr   c                 ó´   ^^• Tc  [         R                  " U 5      m[        [        [        U S95      m[
        R                  " U 5      S SS.UU4S jj5       nU$ )N©rb   F)rr   rƒ   c                 óÞ  >• [        TX#5      u  p#nUS	 [        R                  " X5      n U R                  5         [	        U5       VVs/ s H  u  pV[        X`[        U5       S3S9PM     nnnUR                  5        VVs0 s H  u  pxU[        X€SU S3S9_M     nnnT" X#SU 0-  S9u  pšU(       a  U
$  U	" U6 $ s  snnf s  snnf ! [         a  n[        R                  " Xº5      UeS nAff = f)Nrr   ú positional argument©rK   úkeyword argument 'Ú'©rD   rE   )rO   r   ÚgetÚraise_on_import_failureÚ	enumeraters   r�   r2   Ú	Exceptionr   Úcreate)rr   rƒ   rD   rE   r$   ÚirY   Úkr)   r„   r…   rH   Úconstruct_graph_with_cacherC   s               €€r   ÚinnerÚ"_api_withoutbackend.<locals>.innerª   s
  ø€ ô %3°9¸dÓ$KÑ!ˆ�kØ�9Ðô —,’,˜wÓ4ˆØ×'Ñ'Ô)ô ajÐjnÔ`oÔpÒ`oÑX\ÐXY”
˜1¬z¸!«}¨oÐ=QÐ,RÔSÑ`oˆÑpØX^×XdÑXdÔXfÔgÒXfÑPTÐPQ�!”Z Ð3EÀaÀSÈÐ1JÑKÒKÑXfˆÑgñ 4¸ÐPYÐ[bÐOcÑFcÑd‰ˆÞØˆKð	<Ù˜[Ð)Ð)ùó qùÛgøô ó 	<Ü$×+Ò+¨AÓ4¸!Ð;ûð	<ús$   Á"B:Â C Â5C Ã
C,ÃC'Ã'C,©r5   rC   r	   r   r†   Ú	functoolsÚwraps)rb   rC   rž   r�   s    ` @r   Ú_api_withoutbackendr£   ¤   sX   ù€ ØÑÜ×%Ò% dÓ+ˆ	ä!*¬7Ô3CÈ$Ñ+OÓ!PÐä‡_‚_�TÓØ!¨÷ <ð <ó ð<ð0 €Lr   c                 ó¸   ^^^• Tc  [         R                  " U 5      m[        [        [        U TS95      m[
        R                  " U 5      SS.UUU4S jj5       nU$ )N)rb   rr   F)rƒ   c                 ó†  >• [        TX5      u  pn[        U5       VVs/ s H  u  pE[        UT[        U5       S3S9PM     nnnUR	                  5        VVs0 s H  u  pgU[        UTSU S3S9_M     nnnT" XS9u  p‰U (       a  U	$  U" U6 $ s  snnf s  snnf ! [
         a  n
[        R                  " X©5      U
eS n
A
ff = f)Nr‘   r’   r“   r”   r•   )rO   r˜   rs   r�   r2   r™   r   rš   )rƒ   rD   rE   r$   r›   rY   rœ   r)   r„   r…   rH   rr   r�   rC   s              €€€r   rž   Ú_api_withbackend.<locals>.innerÌ   sÞ   ø€ ô %3°9¸dÓ$KÑ!ˆ�kô ajÐjnÔ`oÔpÒ`oÑX\ÐXY”
˜1˜g¬z¸!«}¨oÐ=QÐ,RÔSÑ`oˆÑpØX^×XdÑXdÔXfÔgÒXfÑPTÐPQ�!”Z  7Ð3EÀaÀSÈÐ1JÑKÒKÑXfˆÑgñ 4¸ÑM‰ˆÞØˆKð	<Ù˜[Ð)Ð)ùó qùÛgøô ó 	<Ü$×+Ò+¨AÓ4¸!Ð;ûð	<ús#   Ÿ#BÁBÂ	B Â
C Â$B;Â;C r    )rb   rr   rC   rž   r�   s    `` @r   Ú_api_withbackendr§   Æ   sY   ú€ ØÑÜ×%Ò% dÓ+ˆ	ä!*¬7Ô3CÈ$ÐX_Ñ+`Ó!aÐä‡_‚_�TÓØ ÷ <ñ <ó ð<ð& €Lr   rb   Úreturnc                 ó   • g r   r    r�   s    r   Úapirª   ã   s   € Ør   rr   rC   c                 ó   • g r   r    ©rb   rr   rC   s      r   rª   rª   å   s   € Ø^ar   c                 óP   • U c  [        [        XS9$ Uc	  [        XS9$ [        XUS9$ )N)rr   rC   )rC   )r   rª   r£   r§   r¬   s      r   rª   rª   ç   s1   € Ø�|Ü”s GÑAÐAØ�Ü" 4Ñ=Ð=ä ¸ÑCÐCr   r   )NNN)"r¡   r5   Ú	tracebackro   Úcollections.abcr   r   Útypingr   r   r   ÚnumpyrT   Úeinx._src.tracerÚ_srcrj   Úeinx._src.frontend.errorsr   Úeinx._src.util.lru_cacher	   rr   r   r   r   r   rO   rZ   rc   rs   r†   r�   r£   r§   rª   r    r   r   Ú<module>r¶      sÍ   ðÛ Û Û Û Ý $Ý ß )Ñ )ã ç !Ð !Ý 8Ý .å Ý áˆT˜ # s (Ñ+Ñ,€÷ñ ò
=-ò@Sò$òô(ò>òòDð: 
Ø ˆbÐ �RÓ ó 
Ø Ø	Ù aˆdÐ a CÐ a¸3Ð aÈ(ÐTVÐSWÐY[ÐS[ÑJ\Ô aó 
Ø aõDr   