+
    ‹°³j|)  ã                   ó¤   € ^ RI HtHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ R	It]
! R
4      t ! R R]]4      tRR ltR	# )é    )ÚAbstractPythonCodePrinterÚArrayPrinter)Ú
MatrixExpr)ÚMul)Ú
PRECEDENCE)Úimport_module)ÚSqrt)ÚS)ÚIntegerNÚtorchc                   ó8  a a€ ] tR t^t oRt/ ]P                  Rb]P                  Rb]P                  Rb]P                  Rb]P                  Rb]P                  Rb]Rb]P                  R	b]P                  R
b]P                  Rb]P                   Rb]P"                  Rb]P$                  Rb]P&                  Rb]P(                  Rb]P*                  Rb]P,                  Rb/ ]P.                  Rb]P0                  Rb]P2                  Rb]P4                  Rb]P6                  Rb]P8                  Rb]P:                  Rb]P<                  Rb]P>                  Rb]P@                  Rb]PB                  Rb]PD                  Rb]PF                  Rb]PH                  R b]PJ                  R!b]PL                  R"b]PN                  R#bC]PP                  R$]PR                  R%]PT                  R&]PV                  R']PX                  R(]PZ                  R)]P\                  R*/Ct/]0! ]1Pd                  R+R,R-R.7      t2RKV 3R/ llt3V 3R0 lt4]4t5]4t6]4t7]4t8]4t9]4t:]4t;]4t<]4t=]4t>R1 t?R2 t@R3 tAR4 tBR5 tCR6 tDR7 tER8 tFR9 tGR: tHR; tIR< tJR= tKR> tLR? tMR@ tNRA tORB tPRC tQRDtRREtSRFtTRGtURHtVRItWRJtXVtYV ;tZ# )LÚTorchPrinterÚ
_torchcodez	torch.absz
torch.signz
torch.ceilztorch.floorz	torch.logz	torch.expú
torch.sqrtz	torch.cosz
torch.acosz	torch.sinz
torch.asinz	torch.tanz
torch.atanztorch.atan2z
torch.coshztorch.acoshz
torch.sinhztorch.asinhz
torch.tanhztorch.atanhú	torch.powz
torch.realz
torch.imagztorch.anglez	torch.erfztorch.lgammaztorch.eqztorch.neztorch.gtztorch.ltztorch.leztorch.geztorch.logical_andztorch.logical_orztorch.logical_notz	torch.maxz	torch.minz	torch.addz	torch.mulztorch.tracez	torch.detNFútorch.float64)Útorch_versionÚrequires_gradÚdtypec                óø   <€ \         SV `  V4       V P                  R ,          pV P                  R,          V n        V P                  R,          V n        Vf   \
        '       d   \
        P                  pW n        R# )r   r   r   N)ÚsuperÚ__init__Ú	_settingsr   r   r   Ú__version__r   )ÚselfÚsettingsÚversionÚ	__class__s   && €ÚW/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/printing/pytorch.pyr   ÚTorchPrinter.__init__S   sY   ø€ Ü‰Ñ˜Ô"à—.‘. Õ1ˆØ!Ÿ^™^¨OÕ<ˆÔØ—^‘^ GÕ,ˆŒ
ØŠ?Ÿu›uÜ×'Ñ'ˆGØ$Öó    c                óR  <€ V P                   P                  \        V4      R 4      pVf   \        SV `  V4      # VP
                   Uu. uF  q0P                  V4      NK  	  pp\        V4      ^8X  d!   V P                  V4      : RV^ ,          : R2# V P                  W$4      # u upi )NÚ(Ú))
ÚmappingÚgetÚtyper   Ú_print_BasicÚargsÚ_printÚlenÚ_module_formatÚ_expand_fold_binary_op)r   ÚexprÚopÚargÚchildrenr   s   &&   €r   Ú_print_FunctionÚTorchPrinter._print_Function]   s–   ø€ à�\‰\×Ñœd 4›j¨$Ó/ˆØŠ:Ü‘7Ñ'¨Ó-Ð-Ø04·	²	Ó:±	¨—K‘K Ö$±	ˆÐ:Üˆx‹=˜AÔà×#Ñ# BÖ'Ø˜—�ðð ð
 ×.Ñ.¨rÓ<Ð<ùò ;s   ÁB$c                ó„   € R P                  V P                  R4      V P                  VP                  ^ ,          4      4      # )ú{}({})ztorch.linalg.inv)Úformatr,   r*   r)   ©r   r.   s   &&r   Ú_print_InverseÚTorchPrinter._print_Inversew   s5   € Ø�‰˜t×2Ñ2Ð3EÓFØ#Ÿ{™{¨4¯9©9°Q­<Ó8ó:ð 	:r!   c                ó  € VP                   P                  '       di   VP                   P                  ^ ,          VP                   P                  ^,          8X  d,   RP                  RV P	                  VP                   4      4      # RP                  V P	                  VP                   4      RP                  \        \        VP                   P                  4      4       Uu. uF  p\        V4      NK  	  up4      RRR1,          4      # u upi )r   z
{}({}).t()ztorch.transposez{}.permute({})ú, Néÿÿÿÿ)	r0   Ú	is_MatrixÚshaper6   r*   ÚjoinÚranger+   Ústr)r   r.   Úis   && r   Ú_print_TransposeÚTorchPrinter._print_Transpose{   s¸   € Ø�8‰8××Ð $§(¡(§.¡.°Õ"3°t·x±x·~±~ÀaÕ7HÔ"Hà×&Ñ&Ð'8¸$¿+¹+ÀdÇhÁhÓ:OÓPÐPð $×*Ñ*Ø—‘˜DŸH™HÓ%Ø—	‘	¬5´°T·X±X·^±^Ó1DÔ+EÓFÑ+E aœ3˜qž6Ñ+EÑFÓGÉÈ"ÈÕMóð ùâFs   ÃDc                óœ   € V P                  VP                  4      : R RP                  R VP                  P                   4       4      : R2# )z	.permute(r;   c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5i©N)rA   )Ú.0rB   s   & r   Ú	<genexpr>Ú2TorchPrinter._print_PermuteDims.<locals>.<genexpr>Š   s   é € ÐBÑ&A ”c˜!—f�fÓ&Aùó   ‚r$   )r*   r.   r?   ÚpermutationÚ
array_formr7   s   &&r   Ú_print_PermuteDimsÚTorchPrinter._print_PermuteDims‡   s:   € à�K‰K˜Ÿ	™	Ö"Ø�I‰IÑB d×&6Ñ&6×&AÒ&AÓBÖBð
ð 	
r!   c                ó0  € VP                   pVP                  p\        V4      ^8”  gK   \        V4      ^8X  dö   \        V^ ,          \        4      '       gÙ   VP                  V^ ,          4      ^8”  d¼   V P                  V4      p/ pV FU  p\        V\        4      '       d"   Vw  rxVP                  V^ 4      V,           WW&   K:  VP                  V^ 4      ^,           WV&   KW  	  VP                  4        F7  w  rh\        V4       F#  p	RP                  W@P                  V4      4      pK%  	  K9  	  V# \        V4      ^8X  dÊ   V^ ,          p
\        V
\        4      '       d{   \        V
4      ^8X  dk   V
w  rx\        V\        4      '       g   \        R4      hV P                  V4      p\        V4       F#  p	RP                  W@P                  V4      4      pK%  	  V# RP                  V P                  V4      V P                  V
4      4      # V P                  V4      # )é   z1torch.autograd.grad({}, {}, create_graph=True)[0]z!Only integer orders are supportedztorch.autograd.grad({}, {})[0])Ú	variablesr.   r+   Ú
isinstanceÚtupleÚcountr*   r&   Úitemsr@   r6   r   ÚNotImplementedError)r   r.   rR   Úexpr_argÚresultÚ
var_groupsÚvarÚbase_varÚorderÚ_Úvariables   &&         r   Ú_print_DerivativeÚTorchPrinter._print_Derivative�   sÆ  € à—N‘Nˆ	Ø—9‘9ˆô ˆy‹>˜AÔÜ�	‹N˜aÔ¬
°9¸Qµ<Ä×(GÒ(GÈIÏOÉOÐ\eÐfgÕ\hÓLiÐlmÔLmØ—[‘[ Ó*ˆFØˆJó !�Ü˜c¤5×)Ò)Ø&)‘O�HØ+5¯>©>¸(ÀAÓ+FÈÕ+N�JÓ(à&0§n¡n°S¸!Ó&<¸qÕ&@�J“Oñ !ð )×.Ñ.Ö0‘
�Ü˜už�AØP×WÑWÐX^×`kÑ`kÐloÓ`pÓq’Fó &ñ 1ð ˆMô ˆy‹>˜QÔØ  •|ˆHÜ˜(¤E×*Ò*¬s°8«}ÀÔ/AØ"*‘�Ü! %¬×1Ò1Ô9LÐMpÓ9qÐ3qØŸ™ XÓ.�Ü˜už�AØP×WÑWÐX^×`kÑ`kÐltÓ`uÓv’Fñ &à�Ø3×:Ñ:¸4¿;¹;ÀxÓ;PÐRV×R]ÑR]Ð^fÓRgÓhÐhà�{‰{˜8Ó$Ð$r!   c                óÌ  € ^ RI Hp VP                  ^ ,          P                  w  r4\        VP                  4      ^8X  dB   RP	                  V P                  R4      V P                  V4      V P                  V4      ^ 4      # RP	                  V P                  R4      V P                  V4      V P                  V4      V P                  V! VP                  R,          !  4      4      # )r   )Ú	Piecewisez{}({}, {}, {})ztorch.where:rQ   NN)Úsympyrc   r)   r+   r6   r,   r*   )r   r.   rc   ÚeÚconds   &&   r   Ú_print_PiecewiseÚTorchPrinter._print_Piecewise´   s¸   € Ý#Ø—)‘)˜A•,×#Ñ#‰ˆÜˆt�y‰y‹>˜QÔØ#×*Ñ*Ø×#Ñ# MÓ2Ø—‘˜DÓ!Ø—‘˜A“Øó	ð ð  ×&Ñ&Ø×Ñ Ó.Ø�K‰K˜ÓØ�K‰K˜‹NØ�K‰K™	 4§9¡9¨R¥=Ñ1Ó2ó	4ð 	4r!   c                ó<  € VP                   w  r#VP                  \        P                  8X  d1   R P	                  V P                  R4      V P                  V4      4      # RP	                  V P                  R4      V P                  V4      V P                  V4      4      # )r5   r   ú
{}({}, {})r   )r)   Úexpr
   ÚHalfr6   r,   r*   )r   r.   Úbaserk   s   &&  r   Ú
_print_PowÚTorchPrinter._print_PowÄ   sƒ   € ð —I‘I‰	ˆØ�8‰8”q—v‘vÔØ—?‘?Ø×#Ñ# LÓ1°4·;±;¸tÓ3DóFð Fà×"Ñ"Ø×Ñ Ó,Ø�K‰K˜Ó˜tŸ{™{¨3Ó/ó1ð 	1r!   c                ó†  € VP                    Uu. uF  p\        V\        4      '       g   K  VNK  	  ppVP                    Uu. uF  q"V9  g   K  VNK  	  ppV'       dI   V P                  \        P
                  ! V4      \        R ,          4      : RV P                  RV4      : 2# V P                  RV4      # u upi u upi )r   Ú*ztorch.matmul)r)   rS   r   Úparenthesizer   Úfromiterr   r-   )r   r.   r0   Úmat_argsr)   s   &&   r   Ú_print_MatMulÚTorchPrinter._print_MatMulÏ   s�   € à#'§9¢9ÓL¡9˜C´
¸3Ä
×0K—C�C¡9ˆÐLØ#ŸyšyÓ@™y˜°xÑ,?—�™yˆÐ@çà×!Ñ!¤#§,¢,¨tÓ"4´jÀÕ6GÖHØ×+Ñ+¨N¸HÕEðð ð
 ×.Ñ.¨~¸xÓHÐHùò MùÚ@s   �B9¬B9ÁB>ÁB>c                ó^   € V P                  R VP                  .VP                  ,          4      # )ztorch.mm)r-   rm   rk   r7   s   &&r   Ú_print_MatPowÚTorchPrinter._print_MatPowÜ   s$   € Ø×*Ñ*¨:¸¿	¹	°{À4Ç8Á8Õ7KÓLÐLr!   c                ó  € R RP                  VP                  4        UUu. uF@  pR RP                  V Uu. uF  q0P                  V4      NK  	  up4      ,           R,           NKB  	  upp4      ,           R,           p\        V4      .pVP	                  RV P
                   24       V P                  '       d   VP	                  R4       RP                  V P                  R4      RP                  V4      4      # u upi u uppi )Ú[r;   Ú]zdtype=zrequires_grad=Truer5   ztorch.tensor)	r?   Útolistr*   rA   Úappendr   r   r6   r,   )r   r.   rB   ÚjÚdataÚparamss   &&    r   Ú_print_MatrixBaseÚTorchPrinter._print_MatrixBaseß   sÑ   € Ø�T—Y‘YÐ\`×\gÑ\gÔ\iÔjÑ\iÐWX  d§i¡iÉÓ0KÉÀA·±¸Q¶ÉÑ0KÓ&LÕ LÈs× RÐ RÑ\iÒjÓkÕkÐnqÕqˆÜ�d“)�ˆØ�‰˜˜tŸz™z˜lÐ+Ô,Ø××ÐØ�M‰MÐ.Ô/à�‰Ø×Ñ Ó/Ø�I‰I�fÓó
ð 	
ùò 1LùÓjs    C=µC8ÁC=Ã8C=c                óN   € R V P                  VP                  ^ ,          4       R2# )ztorch.isnan(r$   ©r*   r)   r7   s   &&r   Ú_print_isnanÚTorchPrinter._print_isnanë   ó#   € Ø˜dŸk™k¨$¯)©)°A­,Ó7Ð8¸Ð:Ð:r!   c                óN   € R V P                  VP                  ^ ,          4       R2# )ztorch.isinf(r$   r…   r7   s   &&r   Ú_print_isinfÚTorchPrinter._print_isinfî   rˆ   r!   c                óä  € \         ;QJ d&    R  VP                   4       F  '       d   K   RM	  RM! R  VP                   4       4      '       dB   RP                  V P                  R4      V P	                  VP                  ^ ,          4      4      # RP                  V P                  R4      V P	                  VP                  ^ ,          4      V P	                  VP                  ^,          4      4      # )c              3   ó8   "  € T F  qP                   x € K  	  R # 5irG   )Ú
is_Integer)rH   Údims   & r   rI   Ú/TorchPrinter._print_Identity.<locals>.<genexpr>ò   s   é € Ð4© #�~Ž~«ùrK   FTr5   z	torch.eyerj   )Úallr>   r6   r,   r*   r7   s   &&r   Ú_print_IdentityÚTorchPrinter._print_Identityñ   s©   € ß‹3Ñ4¨¯ªÓ4�3�3Š3Ñ4¨¯ªÓ4×4Ò4Ø—?‘?Ø×#Ñ# KÓ0Ø—‘˜DŸJ™J q�MÓ*óð ð  ×&Ñ&Ø×#Ñ# KÓ0Ø—‘˜DŸJ™J q�MÓ*Ø—‘˜DŸJ™J q�MÓ*óð r!   c                óv   € R P                  V P                  R4      V P                  VP                  4      4      # )r5   ztorch.zeros©r6   r,   r*   r>   r7   s   &&r   Ú_print_ZeroMatrixÚTorchPrinter._print_ZeroMatrixÿ   s1   € Ø�‰Ø×Ñ Ó.Ø�K‰K˜Ÿ
™
Ó#ó
ð 	
r!   c                óv   € R P                  V P                  R4      V P                  VP                  4      4      # )r5   z
torch.onesr•   r7   s   &&r   Ú_print_OneMatrixÚTorchPrinter._print_OneMatrix  s1   € Ø�‰Ø×Ñ Ó-Ø�K‰K˜Ÿ
™
Ó#ó
ð 	
r!   c                óp   € V P                  R 4       RV P                  VP                  ^ ,          4       R2# )z
torch.conjr#   r$   ©r,   r*   r)   r7   s   &&r   Ú_print_conjugateÚTorchPrinter._print_conjugate  s4   € Ø×%Ñ% lÓ3Ð4°A°d·k±kÀ$Ç)Á)ÈAÅ,Ó6OÐ5PÐPQÐRÐRr!   c                ó   € R # )Ú1j© r7   s   &&r   Ú_print_ImaginaryUnitÚ!TorchPrinter._print_ImaginaryUnit  s   € Ùr!   c                ó  € V P                  VP                  ^ ,          4      R.p\        VP                  4      ^8”  d&   V P                  VP                  ^,          4      V^&   V P                  R4       RV^ ,           RV^,           R2# )r   z0.5ztorch.heavisider#   r;   r$   )r*   r)   r+   r,   )r   r.   r)   s   && r   Ú_print_HeavisideÚTorchPrinter._print_Heaviside  su   € Ø—‘˜DŸI™I a�LÓ)¨5Ð1ˆÜˆt�y‰y‹>˜AÔØ—k‘k $§)¡)¨A¥,Ó/ˆD�‰GØ×%Ñ%Ð&7Ó8Ð9¸¸4À½7¸)À2ÀdÈ1ÅgÀYÈaÐPÐPr!   c                óp   € V P                  R 4       RV P                  VP                  ^ ,          4       R2# )ztorch.special.gammar#   r$   rœ   r7   s   &&r   Ú_print_gammaÚTorchPrinter._print_gamma  s6   € Ø×%Ñ%Ð&;Ó<Ð=¸Q¸t¿{¹{È4Ï9É9ÐUVÍ<Ó?XÐ>YÐYZÐ[Ð[r!   c                óÒ   € VP                   ^ ,          \        P                  8X  d8   V P                  R4       RV P	                  VP                   ^,          4       R2# \        R4      h)r   ztorch.special.digammar#   r$   z3PyTorch only supports digamma (0th order polygamma))r)   r
   ÚZeror,   r*   rW   r7   s   &&r   Ú_print_polygammaÚTorchPrinter._print_polygamma  sZ   € Ø�9‰9�Q�<œ1Ÿ6™6Ô!Ø×)Ñ)Ð*AÓBÐCÀ1ÀTÇ[Á[ÐQU×QZÑQZÐ[\ÕQ]ÓE^ÐD_Ð_`ÐaÐaä%Ð&[Ó\Ð\r!   r   ÚeinsumÚaddÚtÚonesÚzeros)r   r   r   rG   )[Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úprintmethodrd   ÚAbsÚsignÚceilingÚfloorÚlogrk   r	   ÚcosÚacosÚsinÚasinÚtanÚatanÚatan2ÚcoshÚacoshÚsinhÚasinhÚtanhÚatanhÚPowÚreÚimr0   ÚerfÚloggammaÚEqÚNeÚStrictGreaterThanÚStrictLessThanÚLessThanÚGreaterThanÚAndÚOrÚNotÚMaxÚMinÚMatAddÚHadamardProductÚTraceÚDeterminantr%   Údictr   Ú_default_settingsr   r2   Ú_print_ExprÚ_print_ApplicationÚ_print_MatrixExprÚ_print_RelationalÚ
_print_NotÚ
_print_AndÚ	_print_OrÚ_print_HadamardProductÚ_print_TraceÚ_print_Determinantr8   rC   rN   r`   rg   rn   ru   rx   r‚   r†   rŠ   r’   r–   r™   r�   r¢   r¥   r¨   r¬   Ú_moduleÚ_einsumÚ_addÚ
_transposeÚ_onesÚ_zerosÚ__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r      s  ù‡ € à€Kð6Ø�	‰	�;ð6à�
‰
�Lð6ð
 	�‰�|ð6ð 	�‰�]ð6ð 	�	‰	�;ð6ð 	�	‰	�;ð6ð 	ˆlð6ð 	�	‰	�;ð6ð 	�
‰
�Lð6ð 	�	‰	�;ð6ð 	�
‰
�Lð6ð 	�	‰	�;ð6ð 	�
‰
�Lð6ð  	�‰�]ð!6ð$ 	�
‰
�Lð%6ð& 	�‰�]ð'6ð( 	�
‰
�Lñ)6ð* 	�‰�]ð+6ð, 	�
‰
�Lð-6ð. 	�‰�]ð/6ð0 	�	‰	�;ð16ð4 	�‰�,ð56ð6 	�‰�,ð76ð8 	�	‰	�=ð96ð> 	�	‰	�;ð?6ð@ 	�‰˜ðA6ðD 	�‰�*ðE6ðF 	�‰�*ðG6ðH 	×Ñ ðI6ðJ 	×Ñ˜jðK6ðL 	�‰˜
ðM6ðN 	×Ñ˜:ðO6ðR 	�	‰	Ð&ðS6ðT 	�‰Ð$ñU6ðV 	�	‰	Ð&Ø�	‰	�;Ø�	‰	�;ð 	�‰�kØ×Ñ˜{Ø�‰�]ð 	×Ñ˜;ñk6€Gñp Ø!×3Ñ3ØØØô	Ð÷%õ=ð "€KØ(ÐØ'ÐØ'ÐØ €JØ €JØ€IØ,ÐØ"€LØ(Ðò:ò
ò
ò%%òN4ò 	1òIòMò

ò;ò;òò
ò
òSòòQò\ò]ð €GØ€GØ€DØ€JØ€EØ‡F€Fr!   r   c                 óH   € \        R VRV/R7      pVP                  ! V 3/ VB # )r   r   )r   )r   Údoprint)r.   r   r   r   Úprinters   &&&, r   Ú
torch_coder÷   '  s)   € Ü _°mÀWÈeÐ$TÔU€GØ�?Š?˜4Ñ, 8Ñ,Ð,r!   )Fr   )Úsympy.printing.pycoder   r   Úsympy.matrices.expressionsr   Úsympy.core.mulr   Úsympy.printing.precedencer   Úsympy.externalr   Úsympy.codegen.cfunctionsr	   rd   r
   r   r   r   r÷   r¡   r!   r   Ú<module>rþ      sA   ðç IÝ 1Ý Ý 0Ý (Ý )Ý Ý ã á�gÓ€ôU�<Ð!:ô Uön-r!   