Ë
    7^(h°1  ã                  ó¢  — d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
 ddlmZ ddlmZ i dd	„ d
fg“dd„ dfg“dd„ dfg“dd„ dfg“dd„ dfg“dd„ dfg“dd„ dfg“dd„ dfg“d d!„ d"fg“d#d$„ d%fg“d&d'„ d(fg“d)d*„ d+fg“d,d-„ d.fg“d/d0„ d1fg“d2d3„ d4fg“d5d6„ d7fg“d8d9„ d:fg“i d;d<„ d=fg“d>d?„ d@fg“dAdB„ dCfg“dDdE„ dFfg“dGdH„ dIfg“dJdK„ dLfg“dMdN„ dOfg“dPdQ„ dRfg“dSdT„ dUfg“dVdW„ dXfg“dYdZ„ d[fg“d\d]„ d\fg“d^d_„ d^fg“d`da„ dbfg“dcdd„ dbfg“dedf„ dgfg“dhdi„ djfg“¥i dkdl„ dmfg“dndo„ dpfg“dqdr„ dmfg“dsdt„ dufg“dvdw„ dxfg“dydz„ d{fg“d|d}„ d~fg“dd€„ d�fg“d‚dƒ„ d�fg“d„d…„ d†fg“d‡dˆ„ d‰fg“dŠd‹„ dŒfg“d�dŽ„ d�fg“d�d‘„ d’fg“d“d”„ d•fg“d–d—„ d˜fg“d™dš„ d›fg“¥i dœd�„ džfg“dŸd „ d¡fg“d¢d£„ d¤fg“d¥d¦„ d§fg“d¨d©„ dªfg“d«d¬„ d­fg“d®d¯„ d°fg“d±d²„ d³fg“d´dµ„ d¶fg“d·d¸„ d¶fg“d¹dº„ d»fg“d¼d½„ d¾fg“d¿dÀ„ dÁfg“dÂdÃ„ dÄfg“dÅdÆ„ dÇfg“dÈdÉ„ dÊfg“dËdÌ„ dÊfg“¥i dÍdÎ„ dÏfg“dÐdÑ„ dÒfg“dÓdÔ„ dÕfg“dÖd×„ dØfg“dÙdÚ„ dÛfg“dÜdÝ„ dÞfg“dßdà„ dÞfg“dádâ„ dãfg“dädå„ dæfg“dçdè„ défg“dêdë„ dìfg“dídî„ dïfg“dðdñ„ dòfg“dódô„ dõfg“död÷„ døfg“dùdú„ dûfg“düdý„ dþfg“¥i dÿ�d „ �dfg“�d�d„ �dfg“�d�d„ �dfg“�d�d	„ �d
fg“�d�d„ �dfg“�d�d„ �dfg“�d�d„ �dfg“�d�d„ �dfg“�d�d„ �dfg“�d�d„ �dfg“�d�d„ �dfg“�d �d!„ �d"fg“�d#�d$„ �d%fg“�d&�d'„ �d(fg“�d)�d*„ �d)fg“�d+�d,„ �d-fg“�d.�d/„ �d.fg“¥�d0�d1„ �d2fgi¥Z G �d3„ �d4e«      Z�d5„ Z�y6(7  z
Mathematica code printer
é    )Úannotations)ÚAny)ÚBasicÚExprÚFloat)Údefault_sort_key)ÚCodePrinter)Ú
precedenceÚexpc                 ó   — y©NT© ©Úxs    úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/mathematica.pyú<lambda>r      ó   � ó    ÚExpÚlogc                 ó   — yr   r   r   s    r   r   r      r   r   ÚLogÚsinc                 ó   — yr   r   r   s    r   r   r      r   r   ÚSinÚcosc                 ó   — yr   r   r   s    r   r   r      r   r   ÚCosÚtanc                 ó   — yr   r   r   s    r   r   r      r   r   ÚTanÚcotc                 ó   — yr   r   r   s    r   r   r      r   r   ÚCotÚsecc                 ó   — yr   r   r   s    r   r   r      r   r   ÚSecÚcscc                 ó   — yr   r   r   s    r   r   r      r   r   ÚCscÚasinc                 ó   — yr   r   r   s    r   r   r      r   r   ÚArcSinÚacosc                 ó   — yr   r   r   s    r   r   r      r   r   ÚArcCosÚatanc                 ó   — yr   r   r   s    r   r   r      r   r   ÚArcTanÚacotc                 ó   — yr   r   r   s    r   r   r      r   r   ÚArcCotÚasecc                 ó   — yr   r   r   s    r   r   r      r   r   ÚArcSecÚacscc                 ó   — yr   r   r   s    r   r   r      r   r   ÚArcCscÚsinhc                 ó   — yr   r   r   s    r   r   r      r   r   ÚSinhÚcoshc                 ó   — yr   r   r   s    r   r   r      r   r   ÚCoshÚtanhc                 ó   — yr   r   r   s    r   r   r       r   r   ÚTanhÚcothc                 ó   — yr   r   r   s    r   r   r   !   r   r   ÚCothÚsechc                 ó   — yr   r   r   s    r   r   r   "   r   r   ÚSechÚcschc                 ó   — yr   r   r   s    r   r   r   #   r   r   ÚCschÚasinhc                 ó   — yr   r   r   s    r   r   r   $   r   r   ÚArcSinhÚacoshc                 ó   — yr   r   r   s    r   r   r   %   r   r   ÚArcCoshÚatanhc                 ó   — yr   r   r   s    r   r   r   &   r   r   ÚArcTanhÚacothc                 ó   — yr   r   r   s    r   r   r   '   r   r   ÚArcCothÚasechc                 ó   — yr   r   r   s    r   r   r   (   r   r   ÚArcSechÚacschc                 ó   — yr   r   r   s    r   r   r   )   r   r   ÚArcCschÚsincc                 ó   — yr   r   r   s    r   r   r   *   r   r   ÚSincÚ	conjugatec                 ó   — yr   r   r   s    r   r   r   +   r   r   Ú	ConjugateÚMaxc                  ó   — yr   r   r   s    r   r   r   ,   r   r   ÚMinc                  ó   — yr   r   r   s    r   r   r   -   r   r   Úerfc                 ó   — yr   r   r   s    r   r   r   .   r   r   ÚErfÚerf2c                  ó   — yr   r   r   s    r   r   r   /   r   r   Úerfcc                 ó   — yr   r   r   s    r   r   r   0   r   r   ÚErfcÚerfic                 ó   — yr   r   r   s    r   r   r   1   r   r   ÚErfiÚerfinvc                 ó   — yr   r   r   s    r   r   r   2   r   r   Ú
InverseErfÚerfcinvc                 ó   — yr   r   r   s    r   r   r   3   r   r   ÚInverseErfcÚerf2invc                  ó   — yr   r   r   s    r   r   r   4   r   r   Úexpintc                  ó   — yr   r   r   s    r   r   r   5   r   r   ÚExpIntegralEÚEic                 ó   — yr   r   r   s    r   r   r   6   r   r   ÚExpIntegralEiÚfresnelcc                 ó   — yr   r   r   s    r   r   r   7   r   r   ÚFresnelCÚfresnelsc                 ó   — yr   r   r   s    r   r   r   8   r   r   ÚFresnelSÚgammac                 ó   — yr   r   r   s    r   r   r   9   r   r   ÚGammaÚ
uppergammac                  ó   — yr   r   r   s    r   r   r   :   r   r   Ú	polygammac                  ó   — yr   r   r   s    r   r   r   ;   r   r   Ú	PolyGammaÚloggammac                 ó   — yr   r   r   s    r   r   r   <   r   r   ÚLogGammaÚbetac                  ó   — yr   r   r   s    r   r   r   =   r   r   ÚBetaÚCic                 ó   — yr   r   r   s    r   r   r   >   r   r   ÚCosIntegralÚSic                 ó   — yr   r   r   s    r   r   r   ?   r   r   ÚSinIntegralÚChic                 ó   — yr   r   r   s    r   r   r   @   r   r   ÚCoshIntegralÚShic                 ó   — yr   r   r   s    r   r   r   A   r   r   ÚSinhIntegralÚlic                 ó   — yr   r   r   s    r   r   r   B   r   r   ÚLogIntegralÚ	factorialc                 ó   — yr   r   r   s    r   r   r   C   r   r   Ú	FactorialÚ
factorial2c                 ó   — yr   r   r   s    r   r   r   D   r   r   Ú
Factorial2Úsubfactorialc                 ó   — yr   r   r   s    r   r   r   E   r   r   ÚSubfactorialÚcatalanc                 ó   — yr   r   r   s    r   r   r   F   r   r   ÚCatalanNumberÚharmonicc                  ó   — yr   r   r   s    r   r   r   G   r   r   ÚHarmonicNumberÚlucasc                 ó   — yr   r   r   s    r   r   r   H   r   r   ÚLucasLÚRisingFactorialc                  ó   — yr   r   r   s    r   r   r   I   r   r   Ú
PochhammerÚFallingFactorialc                  ó   — yr   r   r   s    r   r   r   J   r   r   ÚFactorialPowerÚlaguerrec                  ó   — yr   r   r   s    r   r   r   K   r   r   Ú	LaguerreLÚassoc_laguerrec                  ó   — yr   r   r   s    r   r   r   L   r   r   Úhermitec                  ó   — yr   r   r   s    r   r   r   M   r   r   ÚHermiteHÚjacobic                  ó   — yr   r   r   s    r   r   r   N   r   r   ÚJacobiPÚ
gegenbauerc                  ó   — yr   r   r   s    r   r   r   O   r   r   ÚGegenbauerCÚ
chebyshevtc                  ó   — yr   r   r   s    r   r   r   P   r   r   Ú
ChebyshevTÚ
chebyshevuc                  ó   — yr   r   r   s    r   r   r   Q   r   r   Ú
ChebyshevUÚlegendrec                  ó   — yr   r   r   s    r   r   r   R   r   r   Ú	LegendrePÚassoc_legendrec                  ó   — yr   r   r   s    r   r   r   S   r   r   Úmathieucc                  ó   — yr   r   r   s    r   r   r   T   r   r   ÚMathieuCÚmathieusc                  ó   — yr   r   r   s    r   r   r   U   r   r   ÚMathieuSÚmathieucprimec                  ó   — yr   r   r   s    r   r   r   V   r   r   ÚMathieuCPrimeÚmathieusprimec                  ó   — yr   r   r   s    r   r   r   W   r   r   ÚMathieuSPrimeÚ	stieltjesc                 ó   — yr   r   r   s    r   r   r   X   r   r   ÚStieltjesGammaÚ
elliptic_ec                  ó   — yr   r   r   s    r   r   r   Y   r   r   Ú	EllipticEÚ
elliptic_fc                  ó   — yr   r   r   s    r   r   r   Z   r   r   Ú
elliptic_kc                 ó   — yr   r   r   s    r   r   r   [   r   r   Ú	EllipticKÚelliptic_pic                  ó   — yr   r   r   s    r   r   r   \   r   r   Ú
EllipticPiÚzetac                  ó   — yr   r   r   s    r   r   r   ]   r   r   ÚZetaÚdirichlet_etac                 ó   — yr   r   r   s    r   r   r   ^   r   r   ÚDirichletEtaÚ
riemann_xic                 ó   — yr   r   r   s    r   r   r   _   r   r   Ú	RiemannXiÚbesselic                  ó   — yr   r   r   s    r   r   r   `   r   r   ÚBesselIÚbesseljc                  ó   — yr   r   r   s    r   r   r   a   r   r   ÚBesselJÚbesselkc                  ó   — yr   r   r   s    r   r   r   b   r   r   ÚBesselKÚbesselyc                  ó   — yr   r   r   s    r   r   r   c   r   r   ÚBesselYÚhankel1c                  ó   — yr   r   r   s    r   r   r   d   r   r   ÚHankelH1Úhankel2c                  ó   — yr   r   r   s    r   r   r   e   r   r   ÚHankelH2Úairyaic                 ó   — yr   r   r   s    r   r   r   f   r   r   ÚAiryAiÚairybic                 ó   — yr   r   r   s    r   r   r   g   r   r   ÚAiryBiÚairyaiprimec                 ó   — yr   r   r   s    r   r   r   h   r   r   ÚAiryAiPrimeÚairybiprimec                 ó   — yr   r   r   s    r   r   r   i   r   r   ÚAiryBiPrimeÚpolylogc                  ó   — yr   r   r   s    r   r   r   j   r   r   ÚPolyLogÚlerchphic                  ó   — yr   r   r   s    r   r   r   k   r   r   ÚLerchPhiÚgcdc                  ó   — yr   r   r   s    r   r   r   l   r   r   ÚGCDÚlcmc                  ó   — yr   r   r   s    r   r   r   m   r   r   ÚLCMÚjnc                  ó   — yr   r   r   s    r   r   r   n   r   r   ÚSphericalBesselJÚync                  ó   — yr   r   r   s    r   r   r   o   r   r   ÚSphericalBesselYÚhyperc                  ó   — yr   r   r   s    r   r   r   p   r   r   ÚHypergeometricPFQÚmeijergc                  ó   — yr   r   r   s    r   r   r   q   r   r   ÚMeijerGÚappellf1c                  ó   — yr   r   r   s    r   r   r   r   r   r   ÚAppellF1Ú
DiracDeltac                 ó   — yr   r   r   s    r   r   r   s   r   r   Ú	Heavisidec                 ó   — yr   r   r   s    r   r   r   t   r   r   ÚHeavisideThetaÚKroneckerDeltac                  ó   — yr   r   r   s    r   r   r   u   r   r   Úsqrtc                 ó   — yr   r   r   s    r   r   r   v   r   r   ÚSqrtc                  ó\  ‡ — e Zd ZU dZdZdZ eej                  fi di dœ¤ŽZde	d<    e
«       Zde	d	<    e
«       Zd
e	d<   i fd„Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d „ Z!e!Z"e!Z#d!„ Z$d"„ Z%d#„ Z&d$„ Z'd%„ Z(e(Z)d&„ Z*d'„ Z+d(„ Z,d)„ Z-d*„ Z.d+„ Z/ˆ xZ0S ),ÚMCodePrinterz]A printer to convert Python expressions to
    strings of the Wolfram's Mathematica code
    Ú_mcodezWolfram Languageé   )Ú	precisionÚuser_functionszdict[str, Any]Ú_default_settingszset[tuple[Expr, Float]]Ú_number_symbolsz
set[Basic]Ú_not_supportedc                ó2  — t        j                  | |«       t        t        «      | _        |j	                  di «      j                  «       }|j                  «       D ]  \  }}t        |t        «      rŒd„ |fg||<   Œ! | j                  j                  |«       y)z+Register function mappings supplied by userrC  c                  ó   — yr   r   r   s    r   r   z'MCodePrinter.__init__.<locals>.<lambda>�   r   r   N)
r	   Ú__init__ÚdictÚknown_functionsÚgetÚcopyÚitemsÚ
isinstanceÚlistÚupdate)ÚselfÚsettingsÚ	userfuncsÚkÚvs        r   rI  zMCodePrinter.__init__‰   s„   € ä×Ñ˜T 8Ô,Ü#¤OÓ4ˆÔØ—L‘LÐ!1°2Ó6×;Ñ;Ó=ˆ	Ø—O‘OÓ%ò 	6‰DˆAˆqÜ˜a¤Õ&Ù!0°!Ð 4Ð5�	˜!’ð	6ð 	×Ñ×#Ñ# IÕ.r   c                ó   — |S ©Nr   )rR  Úliness     r   Ú_format_codezMCodePrinter._format_code“   s   € Øˆr   c                óŽ   — t        |«      }| j                  |j                  |«      ›d| j                  |j                  |«      ›�S )Nú^)r
   ÚparenthesizeÚbaser   )rR  ÚexprÚPRECs      r   Ú
_print_PowzMCodePrinter._print_Pow–   s>   € Ü˜$ÓˆØ×+Ñ+¨D¯I©I°tÕ<Ø×+Ñ+¨D¯H©H°dÔ;ð=ð 	=r   c                óÊ   •‡ ‡— t        |«      Š|j                  «       \  }}t        ‰‰ �   |j                  |Ž «      }|r#|dz  }|dj                  ˆˆ fd„|D «       «      z  }|S )NÚ*z**c              3  óB   •K  — | ]  }‰j                  |‰«      –— Œ y ­wrX  )r]  )Ú.0Úar`  rR  s     €€r   ú	<genexpr>z*MCodePrinter._print_Mul.<locals>.<genexpr>¡   s   øè ø€ ÒD¸A˜T×.Ñ.¨q°$×7ÑDùs   ƒ)r
   Úargs_cncÚsuperÚ
_print_MulÚfuncÚjoin)rR  r_  ÚcÚncÚresr`  Ú	__class__s   `    @€r   rj  zMCodePrinter._print_Mul›   s_   ú€ Ü˜$ÓˆØ—‘“‰ˆˆ2Ü‰gÑ   §¡¨A Ó/ˆÙØ�3‰JˆCØ�4—9‘9ÔDÀÔDÓDÑDˆCØˆ
r   c                ó¬   — | j                  |j                  «      }| j                  |j                  «      }|j                  }dj	                  |||«      S )Nz{} {} {})Ú_printÚlhsÚrhsÚrel_opÚformat)rR  r_  Úlhs_codeÚrhs_codeÚops        r   Ú_print_RelationalzMCodePrinter._print_Relational¤   sD   € Ø—;‘;˜tŸx™xÓ(ˆØ—;‘;˜tŸx™xÓ(ˆØ�[‰[ˆØ× Ñ  ¨2¨xÓ8Ð8r   c                 ó   — y)NÚ0r   ©rR  r_  s     r   Ú_print_ZerozMCodePrinter._print_Zero«   ó   € Ør   c                 ó   — y)NÚ1r   r}  s     r   Ú
_print_OnezMCodePrinter._print_One®   r  r   c                 ó   — y)Nz-1r   r}  s     r   Ú_print_NegativeOnezMCodePrinter._print_NegativeOne±   ó   € Ør   c                 ó   — y)Nz1/2r   r}  s     r   Ú_print_HalfzMCodePrinter._print_Half´   s   € Ør   c                 ó   — y)NÚIr   r}  s     r   Ú_print_ImaginaryUnitz!MCodePrinter._print_ImaginaryUnit·   r  r   c                 ó   — y)NÚInfinityr   r}  s     r   Ú_print_InfinityzMCodePrinter._print_Infinity¼   s   € Ør   c                 ó   — y)Nz	-Infinityr   r}  s     r   Ú_print_NegativeInfinityz$MCodePrinter._print_NegativeInfinity¿   s   € Ør   c                 ó   — y)NÚComplexInfinityr   r}  s     r   Ú_print_ComplexInfinityz#MCodePrinter._print_ComplexInfinityÂ   s   € Ø r   c                 ó   — y)NÚIndeterminater   r}  s     r   Ú
_print_NaNzMCodePrinter._print_NaNÅ   s   € Ør   c                 ó   — y)NÚEr   r}  s     r   Ú_print_Exp1zMCodePrinter._print_Exp1Ê   r  r   c                 ó   — y)NÚPir   r}  s     r   Ú	_print_PizMCodePrinter._print_PiÍ   r…  r   c                 ó   — y)NÚGoldenRatior   r}  s     r   Ú_print_GoldenRatiozMCodePrinter._print_GoldenRatioÐ   s   € Ør   c                ó`   — |j                  d¬«      }t        |«      }| j                  ||«      S )NT)rk  )Úexpandr
   r]  )rR  r_  Úexpandedr`  s       r   Ú_print_TribonacciConstantz&MCodePrinter._print_TribonacciConstantÓ   s/   € Ø—;‘; D�;Ó)ˆÜ˜$ÓˆØ× Ñ  ¨4Ó0Ð0r   c                 ó   — y)NÚ
EulerGammar   r}  s     r   Ú_print_EulerGammazMCodePrinter._print_EulerGammaØ   s   € Ør   c                 ó   — y)NÚCatalanr   r}  s     r   Ú_print_CatalanzMCodePrinter._print_CatalanÛ   s   € Ør   c                óD   ‡ — ddj                  ˆ fd„|D «       «      z   dz   S )Nú{ú, c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrX  ©Údoprint©re  rf  rR  s     €r   rg  z+MCodePrinter._print_list.<locals>.<genexpr>à   s   øè ø€ Ò=°1˜tŸ|™|¨AŸÑ=ùó   ƒú}©rl  r}  s   ` r   Ú_print_listzMCodePrinter._print_listß   s"   ø€ Ø�T—Y‘YÓ=¸Ô=Ó=Ñ=ÀÑCÐCr   c                ó@   — | j                  |j                  «       «      S rX  ©r®  Útolistr}  s     r   Ú_print_ImmutableDenseMatrixz(MCodePrinter._print_ImmutableDenseMatrixä   ó   € Ø�|‰|˜DŸK™K›MÓ*Ð*r   c                ób   ‡ ‡‡— ˆ fd„Šˆˆfd„}ˆˆ fd„}dj                   |«        |«       «      S )Nc                ó€   •— dj                  ‰j                  | d   dz   | d   dz   f«      ‰j                  |«      «      S )Nú{} -> {}r   é   ©rv  r®  ©ÚposÚvalrR  s     €r   Ú
print_rulez=MCodePrinter._print_ImmutableSparseMatrix.<locals>.print_ruleé   sD   ø€ Ø×$Ñ$Ø�L‰L˜#˜a™& ™( C¨¡F¨1¡HÐ-Ó.°·±¸SÓ0AóCð Cr   c                 óž   •— t        ‰j                  «       j                  «       t        ¬«      } ddj	                  ˆfd„| D «       «      z   dz   S )N)Úkeyrª  r«  c              3  ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wrX  r   )re  rU  rV  rÁ  s      €r   rg  zPMCodePrinter._print_ImmutableSparseMatrix.<locals>.print_data.<locals>.<genexpr>ð   s   øè ø€ Ò=©t¨q°!™* Q¨×*Ñ=ùs   ƒr±  )ÚsortedÚtodokrN  r   rl  )rN  r_  rÁ  s    €€r   Ú
print_dataz=MCodePrinter._print_ImmutableSparseMatrix.<locals>.print_dataí   sF   ø€ Ü˜4Ÿ:™:›<×-Ñ-Ó/Ô5EÔFˆEØØ—	‘	Ó=°uÔ=Ó=ñ>àñð r   c                 ó:   •— ‰j                  ‰ j                  «      S rX  ©r®  Úshape©r_  rR  s   €€r   Ú
print_dimsz=MCodePrinter._print_ImmutableSparseMatrix.<locals>.print_dimsó   s   ø€ Ø—<‘< §
¡
Ó+Ð+r   úSparseArray[{}, {}]©rv  )rR  r_  rÇ  rÌ  rÁ  s   ``  @r   Ú_print_ImmutableSparseMatrixz)MCodePrinter._print_ImmutableSparseMatrixç   s,   ú€ ô	Cõ	õ	,ð %×+Ñ+©J«L¹*»,ÓGÐGr   c                ó@   — | j                  |j                  «       «      S rX  rµ  r}  s     r   Ú_print_ImmutableDenseNDimArrayz+MCodePrinter._print_ImmutableDenseNDimArrayø   r¸  r   c                óv   ‡ ‡‡‡‡— d„ Šd„ Šˆ fd„Šˆˆˆˆfd„}ˆˆ fd„}dj                   |«        |«       «      S )Nc                ó>   — ddj                  d„ | D «       «      z   dz   S )Nrª  r«  c              3  ó    K  — | ]  }|–— Œ y ­wrX  r   )re  rf  s     r   rg  zZMCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_string_list.<locals>.<genexpr>ý   s   è ø€ Ò":¨¤1Ñ":ùs   ‚r±  r²  )Ústring_lists    r   Úprint_string_listzGMCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_string_listü   s!   € Ø˜Ÿ™Ñ":¨kÔ":Ó:Ñ:¸SÑ@Ð@r   c                 ó&   — t        d„ | D «       «      S )z¾Helper function to change Python style indexing to
            Pathematica indexing.

            Python indexing (0, 1 ... n-1)
            -> Mathematica indexing (1, 2 ... n)
            c              3  ó&   K  — | ]	  }|d z   –— Œ y­w)r¼  Nr   )re  Úis     r   rg  z]MCodePrinter._print_ImmutableSparseNDimArray.<locals>.to_mathematica_index.<locals>.<genexpr>  s   è ø€ Ò- 1˜˜Q�Ñ-ùs   ‚)Útuple)Úargss    r   Úto_mathematica_indexzJMCodePrinter._print_ImmutableSparseNDimArray.<locals>.to_mathematica_indexÿ   s   € ô Ñ-¨Ô-Ó-Ð-r   c                ód   •— dj                  ‰j                  | «      ‰j                  |«      «      S )z.Helper function to print a rule of Mathematicar»  r½  r¾  s     €r   rÁ  z@MCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_rule  s(   ø€ à×$Ñ$ T§\¡\°#Ó%6¸¿¹ÀSÓ8IÓJÐJr   c                 óº   •—  ‰t        ‰j                  j                  «       «      D � �cg c]   \  } } ‰ ‰‰j                  | «      Ž |«      ‘Œ" c}} «      S c c}} w )a/  Helper function to print data part of Mathematica
            sparse array.

            It uses the fourth notation ``SparseArray[data,{d1,d2,...}]``
            from
            https://reference.wolfram.com/language/ref/SparseArray.html

            ``data`` must be formatted with rule.
            )rÅ  Ú_sparse_arrayrN  Ú_get_tuple_index)rÃ  Úvaluer_  rÁ  rÖ  rÜ  s     €€€€r   rÇ  z@MCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_data  sg   ø€ ñ %ô #)¨×);Ñ);×)AÑ)AÓ)CÓ"D÷Fñ �C˜ñ Ù(¨4×+@Ñ+@ÀÓ+EÐGØõó Fóð ùóFs   ª%A
c                 ó:   •— ‰j                  ‰ j                  «      S )a  Helper function to print dimensions part of Mathematica
            sparse array.

            It uses the fourth notation ``SparseArray[data,{d1,d2,...}]``
            from
            https://reference.wolfram.com/language/ref/SparseArray.html
            rÉ  rË  s   €€r   rÌ  z@MCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_dims  s   ø€ ð —<‘< §
¡
Ó+Ð+r   rÍ  rÎ  )rR  r_  rÇ  rÌ  rÁ  rÖ  rÜ  s   ``  @@@r   Ú_print_ImmutableSparseNDimArrayz,MCodePrinter._print_ImmutableSparseNDimArrayû   s7   ü€ ò	Aò	.ô	K÷	õ"	,ð %×+Ñ+©J«L¹*»,ÓGÐGr   c                ó�  ‡ — |j                   j                  ‰ j                  v ra‰ j                  |j                   j                     }|D ]8  \  }} ||j                  Ž sŒ|›d‰ j	                  |j                  d«      ›d�c S  n�|j                   j                  ‰ j
                  v rk‰ j
                  |j                   j                     \  }}‰ j                  |«      r4t        ˆ fd„|D «       «      r ‰ j                  |j                  |«      «      S |j                   j                  d‰ j	                  |j                  d«      z  z   S )Nú[r«  ú]c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrX  )Ú
_can_print)re  ÚfrR  s     €r   rg  z/MCodePrinter._print_Function.<locals>.<genexpr>2  s   øè ø€ Ò0YÈ°·±À×1CÑ0Yùr°  z[%s])
rk  Ú__name__rK  rÛ  Ú	stringifyÚ_rewriteable_functionsrè  Úallrr  Úrewrite)rR  r_  Ú
cond_mfuncÚcondÚmfuncÚtarget_fÚrequired_fss   `      r   Ú_print_FunctionzMCodePrinter._print_Function)  s  ø€ Ø�9‰9×Ñ ×!5Ñ!5Ñ5Ø×-Ñ-¨d¯i©i×.@Ñ.@ÑAˆJØ)ò O‘��eÙ˜Ÿ™Ò#Ú',¨d¯n©n¸T¿Y¹YÈÕ.MÐNÒNñOð �Y‰Y×Ñ 4×#>Ñ#>Ñ>à$(×$?Ñ$?ÀÇ	Á	×@RÑ@RÑ$SÑ!ˆH�kØ�‰˜xÔ(¬SÓ0YÈ[Ô0YÔ-YØ—{‘{ 4§<¡<°Ó#9Ó:Ð:Ø�y‰y×!Ñ! F¨T¯^©^¸D¿I¹IÀtÓ-LÑ$LÑLÐLr   c                ó   — t        |j                  «      dk(  r-dj                  | j                  |j                  d   «      «      S dj                  | j                  |j                  d   «      | j                  |j                  d   «      «      S )Nr¼  zProductLog[{}]r   zProductLog[{}, {}])ÚlenrÛ  rv  rr  r}  s     r   Ú_print_LambertWzMCodePrinter._print_LambertW8  sp   € Üˆt�y‰y‹>˜QÒØ#×*Ñ*¨4¯;©;°t·y±yÀ±|Ó+DÓEÐEØ#×*Ñ*Ø�K‰K˜Ÿ	™	 !™Ó% t§{¡{°4·9±9¸Q±<Ó'@óBð 	Br   c                ó–   — dj                  | j                  |j                  d   «      | j                  |j                  d   «      «      S )NzArcTan[{}, {}]r¼  r   )rv  rr  rÛ  r}  s     r   Ú_print_atan2zMCodePrinter._print_atan2>  s>   € Ø×&Ñ&Ø�K‰K˜Ÿ	™	 !™Ó% t§{¡{°4·9±9¸Q±<Ó'@óBð 	Br   c                óî   ‡ — t        |j                  «      dk(  r1|j                  d   dd  s|j                  d   |j                  d   g}n|j                  }ddj	                  ˆ fd„|D «       «      z   dz   S )Nr¼  r   zHold[Integrate[r«  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrX  r­  r¯  s     €r   rg  z/MCodePrinter._print_Integral.<locals>.<genexpr>G  s   øè ø€ Ò,KÀ¨T¯\©\¸!¯_Ñ,Kùr°  ú]])rö  Ú	variablesÚlimitsrÛ  rl  )rR  r_  rÛ  s   `  r   Ú_print_IntegralzMCodePrinter._print_IntegralB  sh   ø€ Üˆt�~‰~Ó !Ò#¨D¯K©K¸©N¸1¸2Ñ,>Ø—I‘I˜a‘L $§.¡.°Ñ"3Ð4‰Dà—9‘9ˆDØ  4§9¡9Ó,KÀdÔ,KÓ#KÑKÈdÑRÐRr   c                óX   ‡ — ddj                  ˆ fd„|j                  D «       «      z   dz   S )Nz	Hold[Sum[r«  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrX  r­  r¯  s     €r   rg  z*MCodePrinter._print_Sum.<locals>.<genexpr>J  s   øè ø€ Ò&J¸1 t§|¡|°A§Ñ&Jùr°  rü  )rl  rÛ  r}  s   ` r   Ú
_print_SumzMCodePrinter._print_SumI  s&   ø€ Ø˜TŸY™YÓ&JÀÇ	Á	Ô&JÓJÑJÈTÑQÐQr   c                óº   ‡ — |j                   }|j                  D �cg c]  }|d   dk(  r|d   n|‘Œ }}ddj                  ˆ fd„|g|z   D «       «      z   dz   S c c}w )Nr¼  r   zHold[D[r«  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrX  r­  r¯  s     €r   rg  z1MCodePrinter._print_Derivative.<locals>.<genexpr>O  s   øè ø€ Ò$N¸ T§\¡\°!§_Ñ$Nùr°  rü  )r_  Úvariable_countrl  )rR  r_  ÚdexprrÙ  Údvarss   `    r   Ú_print_DerivativezMCodePrinter._print_DerivativeL  sd   ø€ Ø—	‘	ˆØ37×3FÑ3FÖG¨a˜˜1™ š��1’¨Ñ)ÐGˆÐGØ˜4Ÿ9™9Ó$N¸u¸gÈ¹oÔ$NÓNÑNÐQUÑUÐUùò Hs   œAc                ó$   — dj                  |«      S )Nz(* {} *)rÎ  )rR  Útexts     r   Ú_get_commentzMCodePrinter._get_commentR  s   € Ø× Ñ  Ó&Ð&r   )1rê  Ú
__module__Ú__qualname__Ú__doc__ÚprintmethodÚlanguagerJ  r	   rD  Ú__annotations__ÚsetrE  rF  rI  rZ  ra  rj  rz  r~  r‚  r„  r‡  rŠ  r�  r�  r’  r•  r˜  r›  rž  r¢  r¥  r¨  r³  Ú_print_tupleÚ_print_Tupler·  rÏ  rÑ  rã  rô  Ú_print_MinMaxBaser÷  rù  rÿ  r  r  r  Ú__classcell__)rp  s   @r   r?  r?  z   s  ø… ñð €KØ!€Há(,¨[×-JÑ-Jñ )ØØñOñ )Ð�~ó ñ
 03«u€OÐ,Ó4Ù!$£€N�JÓ&à "ó /òò=ô
ò9òòòòòò
òò!òò
òòò1ò
òòDà€LØ€Lò+òHò"+ò,Hò\Mð (ÐòBòBòSòRòVö'r   r?  c                ó6   — t        |«      j                  | «      S )a  Converts an expr to a string of the Wolfram Mathematica code

    Examples
    ========

    >>> from sympy import mathematica_code as mcode, symbols, sin
    >>> x = symbols('x')
    >>> mcode(sin(x).series(x).removeO())
    '(1/120)*x^5 - 1/6*x^3 + x'
    )r?  r®  )r_  rS  s     r   Úmathematica_coder  V  s   € ô ˜Ó!×)Ñ)¨$Ó/Ð/r   N)r  Ú
__future__r   Útypingr   Ú
sympy.corer   r   r   Úsympy.core.sortingr   Úsympy.printing.codeprinterr	   Úsympy.printing.precedencer
   rK  r?  r  r   r   r   ú<module>r     sE	  ðñõ #Ý ç )Ñ )Ý /å 2Ý 0ðhØ	‰^˜UÐ#Ð$ðhà	‰^˜UÐ#Ð$ðhð 
‰^˜UÐ#Ð$ðhð 
‰^˜UÐ#Ð$ð	hð
 
‰^˜UÐ#Ð$ðhð 
‰^˜UÐ#Ð$ðhð 
‰^˜UÐ#Ð$ðhð 
‰^˜UÐ#Ð$ðhð ‰n˜hÐ'Ð(ðhð ‰n˜hÐ'Ð(ðhð ‰n˜hÐ'Ð(ðhð ‰n˜hÐ'Ð(ðhð ‰n˜hÐ'Ð(ðhð ‰n˜hÐ'Ð(ðhð ‰n˜fÐ%Ð&ðhð  ‰n˜fÐ%Ð&ð!hð" ‰n˜fÐ%Ð&ñ#hð$ ‰n˜fÐ%Ð&ð%hð& ‰n˜fÐ%Ð&ð'hð( ‰n˜fÐ%Ð&ð)hð* ‰~˜yÐ)Ð*ð+hð, ‰~˜yÐ)Ð*ð-hð. ‰~˜yÐ)Ð*ð/hð0 ‰~˜yÐ)Ð*ð1hð2 ‰~˜yÐ)Ð*ð3hð4 ‰~˜yÐ)Ð*ð5hð6 ‰n˜fÐ%Ð&ð7hð8 ‘> ;Ð/Ð0ð9hð: 
‰_˜eÐ$Ð%ð;hð< 
‰_˜eÐ$Ð%ð=hð> 
‰^˜UÐ#Ð$ð?hð@ ‰o˜uÐ%Ð&ðAhðB ‰n˜fÐ%Ð&ðChðD ‰n˜fÐ%Ð&òEhðF ‘ Ð-Ð.ðGhðH ‘ Ð/Ð0ðIhðJ ‘ ,Ð/Ð0ðKhðL ‘ Ð0Ð1ðMhðN 	‰N˜OÐ,Ð
-ðOhðP ‘. *Ð-Ð.ðQhðR ‘. *Ð-Ð.ðShðT ‰~˜wÐ'Ð(ðUhðV ‘O WÐ-Ð.ðWhðX ‘? KÐ0Ð1ðYhðZ ‘. *Ð-Ð.ð[hð\ ‰o˜vÐ&Ð'ð]hð^ 	‰N˜MÐ*Ð
+ð_hð` 	‰N˜MÐ*Ð
+ðahðb 
‰^˜^Ð,Ð-ðchðd 
‰^˜^Ð,Ð-ðehðf 	‰N˜MÐ*Ð
+òghðh ‘> ;Ð/Ð0ðihðj ‘N LÐ1Ð2ðkhðl ‘n nÐ5Ð6ðmhðn ‘ Ð1Ð2ðohðp ‘/Ð#3Ð4Ð5ðqhðr ‰~˜xÐ(Ð)ðshðt ™¨,Ð7Ð8ðuhðv ™/Ð+;Ð<Ð=ðwhðx ‘/ ;Ð/Ð0ðyhðz ™¨Ð5Ð6ð{hð| ‘ *Ð-Ð.ð}hð~ ‘ Ð+Ð,ðhð@ ‘O ]Ð3Ð4ðAhðB ‘O \Ð2Ð3ðChðD ‘O \Ð2Ð3ðEhðF ‘/ ;Ð/Ð0ðGhðH ™¨Ð5Ð6òIhðJ ‘/ :Ð.Ð/ðKhðL ‘/ :Ð.Ð/ðMhðN ‘¨Ð8Ð9ðOhðP ‘¨Ð8Ð9ðQhðR ‘>Ð#3Ð4Ð5ðShðT ‘O [Ð1Ð2ðUhðV ‘O [Ð1Ð2ðWhðX ‘N KÐ0Ð1ðYhðZ ‘_ lÐ3Ð4ð[hð\ ‰o˜vÐ&Ð'ð]hð^ ‘~ ~Ð6Ð7ð_hð` ‘N KÐ0Ð1ðahðb ‘ )Ð,Ð-ðchðd ‘ )Ð,Ð-ðehðf ‘ )Ð,Ð-ðghðh ‘ )Ð,Ð-ðihðj ‘ *Ð-Ð.òkhðl ’¡*Ð-Ð.ðmhñn ’¡Ð)Ð*ðohñp ’¡Ð)Ð*ðqhñr ’^¡]Ð3Ð4ðshñt ’^¡]Ð3Ð4ðuhñv ’¡)Ð,Ð-ðwhñx ’/¡:Ð.Ð/ðyhñz 
Š_™eÐ$Ð%ð{hñ| 
Š_™eÐ$Ð%ð}hñ~ 	ŠOÑ/Ð0Ð
1ðhñ@ 	ŠOÑ/Ð0Ð
1ðAhñB ŠÑ 3Ð4Ð5ðChñD ’¡)Ð,Ð-ðEhñF ’/¡:Ð.Ð/ðGhñH ’N¡LÐ1Ð2ðIhñJ ’>Ñ#3Ð4Ð5ðKhñL šÑ)9Ð:Ð;ñMhñN Šn™fÐ%Ð&ñOh€öVY'�;ô Y'õx0r   