§
    OŠtj°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�d6S (7  z
Mathematica code printer
é    )Úannotations)ÚAny)ÚBasicÚExprÚFloat)Údefault_sort_key)ÚCodePrinter)Ú
precedenceÚexpc                ó   — dS ©NT© ©Úxs    úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/printing/mathematica.pyú<lambda>r      ó   € �t€ ó    ÚExpÚlogc                ó   — dS r   r   r   s    r   r   r      r   r   ÚLogÚsinc                ó   — dS r   r   r   s    r   r   r      r   r   ÚSinÚcosc                ó   — dS r   r   r   s    r   r   r      r   r   ÚCosÚtanc                ó   — dS r   r   r   s    r   r   r      r   r   ÚTanÚcotc                ó   — dS r   r   r   s    r   r   r      r   r   ÚCotÚsecc                ó   — dS r   r   r   s    r   r   r      r   r   ÚSecÚcscc                ó   — dS r   r   r   s    r   r   r      r   r   ÚCscÚasinc                ó   — dS r   r   r   s    r   r   r      ó   € ˜€ r   ÚArcSinÚacosc                ó   — dS r   r   r   s    r   r   r      r-   r   ÚArcCosÚatanc                ó   — dS r   r   r   s    r   r   r      r-   r   ÚArcTanÚacotc                ó   — dS r   r   r   s    r   r   r      r-   r   ÚArcCotÚasecc                ó   — dS r   r   r   s    r   r   r      r-   r   ÚArcSecÚacscc                ó   — dS r   r   r   s    r   r   r      r-   r   ÚArcCscÚsinhc                ó   — dS r   r   r   s    r   r   r      r-   r   ÚSinhÚcoshc                ó   — dS r   r   r   s    r   r   r      r-   r   ÚCoshÚtanhc                ó   — dS r   r   r   s    r   r   r       r-   r   ÚTanhÚcothc                ó   — dS r   r   r   s    r   r   r   !   r-   r   ÚCothÚsechc                ó   — dS r   r   r   s    r   r   r   "   r-   r   ÚSechÚcschc                ó   — dS r   r   r   s    r   r   r   #   r-   r   ÚCschÚasinhc                ó   — dS r   r   r   s    r   r   r   $   ó   € ˜€ r   ÚArcSinhÚacoshc                ó   — dS r   r   r   s    r   r   r   %   rR   r   ÚArcCoshÚatanhc                ó   — dS r   r   r   s    r   r   r   &   rR   r   ÚArcTanhÚacothc                ó   — dS r   r   r   s    r   r   r   '   rR   r   ÚArcCothÚasechc                ó   — dS r   r   r   s    r   r   r   (   rR   r   ÚArcSechÚacschc                ó   — dS r   r   r   s    r   r   r   )   rR   r   ÚArcCschÚsincc                ó   — dS r   r   r   s    r   r   r   *   r-   r   ÚSincÚ	conjugatec                ó   — dS r   r   r   s    r   r   r   +   ó   € ˜T€ r   Ú	ConjugateÚMaxc                 ó   — dS r   r   r   s    r   r   r   ,   r-   r   ÚMinc                 ó   — dS r   r   r   s    r   r   r   -   r-   r   Úerfc                ó   — dS r   r   r   s    r   r   r   .   r   r   ÚErfÚerf2c                 ó   — dS r   r   r   s    r   r   r   /   rR   r   Úerfcc                ó   — dS r   r   r   s    r   r   r   0   r-   r   ÚErfcÚerfic                ó   — dS r   r   r   s    r   r   r   1   r-   r   ÚErfiÚerfinvc                ó   — dS r   r   r   s    r   r   r   2   ó   € ˜$€ r   Ú
InverseErfÚerfcinvc                ó   — dS r   r   r   s    r   r   r   3   ó   € ˜4€ r   ÚInverseErfcÚerf2invc                 ó   — dS r   r   r   s    r   r   r   4   ó   € ˜D€ r   Úexpintc                 ó   — dS r   r   r   s    r   r   r   5   r   r   ÚExpIntegralEÚEic                ó   — dS r   r   r   s    r   r   r   6   ó   € �d€ r   ÚExpIntegralEiÚfresnelcc                ó   — dS r   r   r   s    r   r   r   7   rƒ   r   ÚFresnelCÚfresnelsc                ó   — dS r   r   r   s    r   r   r   8   rƒ   r   ÚFresnelSÚgammac                ó   — dS r   r   r   s    r   r   r   9   rR   r   ÚGammaÚ
uppergammac                 ó   — dS r   r   r   s    r   r   r   :   ó   € ˜t€ r   Ú	polygammac                 ó   — dS r   r   r   s    r   r   r   ;   ó   € ˜d€ r   Ú	PolyGammaÚloggammac                ó   — dS r   r   r   s    r   r   r   <   rƒ   r   ÚLogGammaÚbetac                 ó   — dS r   r   r   s    r   r   r   =   rR   r   ÚBetaÚCic                ó   — dS r   r   r   s    r   r   r   >   r‰   r   ÚCosIntegralÚSic                ó   — dS r   r   r   s    r   r   r   ?   r‰   r   ÚSinIntegralÚChic                ó   — dS r   r   r   s    r   r   r   @   r   r   ÚCoshIntegralÚShic                ó   — dS r   r   r   s    r   r   r   A   r   r   ÚSinhIntegralÚlic                ó   — dS r   r   r   s    r   r   r   B   r‰   r   ÚLogIntegralÚ	factorialc                ó   — dS r   r   r   s    r   r   r   C   rh   r   Ú	FactorialÚ
factorial2c                ó   — dS r   r   r   s    r   r   r   D   r™   r   Ú
Factorial2Úsubfactorialc                ó   — dS r   r   r   s    r   r   r   E   ó   €  € r   ÚSubfactorialÚcatalanc                ó   — dS r   r   r   s    r   r   r   F   r   r   ÚCatalanNumberÚharmonicc                 ó   — dS r   r   r   s    r   r   r   G   rh   r   ÚHarmonicNumberÚlucasc                ó   — dS r   r   r   s    r   r   r   H   rR   r   ÚLucasLÚRisingFactorialc                 ó   — dS r   r   r   s    r   r   r   I   s   €  D€ r   Ú
PochhammerÚFallingFactorialc                 ó   — dS r   r   r   s    r   r   r   J   s   €  T€ r   ÚFactorialPowerÚlaguerrec                 ó   — dS r   r   r   s    r   r   r   K   rh   r   Ú	LaguerreLÚassoc_laguerrec                 ó   — dS r   r   r   s    r   r   r   L   ó   €  4€ r   Úhermitec                 ó   — dS r   r   r   s    r   r   r   M   rƒ   r   ÚHermiteHÚjacobic                 ó   — dS r   r   r   s    r   r   r   N   r   r   ÚJacobiPÚ
gegenbauerc                 ó   — dS r   r   r   s    r   r   r   O   r–   r   ÚGegenbauerCÚ
chebyshevtc                 ó   — dS r   r   r   s    r   r   r   P   r–   r   Ú
ChebyshevTÚ
chebyshevuc                 ó   — dS r   r   r   s    r   r   r   Q   r–   r   Ú
ChebyshevUÚlegendrec                 ó   — dS r   r   r   s    r   r   r   R   rh   r   Ú	LegendrePÚassoc_legendrec                 ó   — dS r   r   r   s    r   r   r   S   rÎ   r   Úmathieucc                 ó   — dS r   r   r   s    r   r   r   T   rh   r   ÚMathieuCÚmathieusc                 ó   — dS r   r   r   s    r   r   r   U   rh   r   ÚMathieuSÚmathieucprimec                 ó   — dS r   r   r   s    r   r   r   V   ó   €  $€ r   ÚMathieuCPrimeÚmathieusprimec                 ó   — dS r   r   r   s    r   r   r   W   rë   r   ÚMathieuSPrimeÚ	stieltjesc                ó   — dS r   r   r   s    r   r   r   X   rh   r   ÚStieltjesGammaÚ
elliptic_ec                 ó   — dS r   r   r   s    r   r   r   Y   r–   r   Ú	EllipticEÚ
elliptic_fc                 ó   — dS r   r   r   s    r   r   r   Z   r–   r   Ú
elliptic_kc                ó   — dS r   r   r   s    r   r   r   [   r™   r   Ú	EllipticKÚelliptic_pic                 ó   — dS r   r   r   s    r   r   r   \   r¸   r   Ú
EllipticPiÚzetac                 ó   — dS r   r   r   s    r   r   r   ]   rR   r   ÚZetaÚdirichlet_etac                ó   — dS r   r   r   s    r   r   r   ^   s   €  € r   ÚDirichletEtaÚ
riemann_xic                ó   — dS r   r   r   s    r   r   r   _   r™   r   Ú	RiemannXiÚbesselic                 ó   — dS r   r   r   s    r   r   r   `   rƒ   r   ÚBesselIÚbesseljc                 ó   — dS r   r   r   s    r   r   r   a   rƒ   r   ÚBesselJÚbesselkc                 ó   — dS r   r   r   s    r   r   r   b   rƒ   r   ÚBesselKÚbesselyc                 ó   — dS r   r   r   s    r   r   r   c   rƒ   r   ÚBesselYÚhankel1c                 ó   — dS r   r   r   s    r   r   r   d   rƒ   r   ÚHankelH1Úhankel2c                 ó   — dS r   r   r   s    r   r   r   e   rƒ   r   ÚHankelH2Úairyaic                ó   — dS r   r   r   s    r   r   r   f   r{   r   ÚAiryAiÚairybic                ó   — dS r   r   r   s    r   r   r   g   r{   r   ÚAiryBiÚairyaiprimec                ó   — dS r   r   r   s    r   r   r   h   r–   r   ÚAiryAiPrimeÚairybiprimec                ó   — dS r   r   r   s    r   r   r   i   r–   r   ÚAiryBiPrimeÚpolylogc                 ó   — dS r   r   r   s    r   r   r   j   rƒ   r   ÚPolyLogÚlerchphic                 ó   — dS r   r   r   s    r   r   r   k   rh   r   ÚLerchPhiÚgcdc                 ó   — dS r   r   r   s    r   r   r   l   r-   r   ÚGCDÚlcmc                 ó   — dS r   r   r   s    r   r   r   m   r-   r   ÚLCMÚjnc                 ó   — dS r   r   r   s    r   r   r   n   r   r   ÚSphericalBesselJÚync                 ó   — dS r   r   r   s    r   r   r   o   r   r   ÚSphericalBesselYÚhyperc                 ó   — dS r   r   r   s    r   r   r   p   r{   r   ÚHypergeometricPFQÚmeijergc                 ó   — dS r   r   r   s    r   r   r   q   rƒ   r   ÚMeijerGÚappellf1c                 ó   — dS r   r   r   s    r   r   r   r   rh   r   ÚAppellF1Ú
DiracDeltac                ó   — dS r   r   r   s    r   r   r   s   r™   r   Ú	Heavisidec                ó   — dS r   r   r   s    r   r   r   t   rh   r   ÚHeavisideThetaÚKroneckerDeltac                 ó   — dS r   r   r   s    r   r   r   u   rÎ   r   Úsqrtc                ó   — dS 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                óV  — t          j        | |¦  «         t          t          ¦  «        | _        |                     di ¦  «                             ¦   «         }|                     ¦   «         D ]#\  }}t          |t          ¦  «        s	d„ |fg||<   Œ$| j         	                    |¦  «         dS )z+Register function mappings supplied by userrO  c                 ó   — dS r   r   r   s    r   r   z'MCodePrinter.__init__.<locals>.<lambda>�   s   € ¨D€ r   N)
r	   Ú__init__ÚdictÚknown_functionsÚgetÚcopyÚitemsÚ
isinstanceÚlistÚupdate)ÚselfÚsettingsÚ	userfuncsÚkÚvs        r   rU  zMCodePrinter.__init__‰   s¥   € åÔ˜T 8Ñ,Ô,Ð,Ý#¥OÑ4Ô4ˆÔØ—L’LÐ!1°2Ñ6Ô6×;Ò;Ñ=Ô=ˆ	Ø—O’OÑ%Ô%ð 	6ð 	6‰DˆAˆqÝ˜a¥Ñ&Ô&ð 6Ø!0 °!Ð 4Ð5�	˜!‘øØÔ×#Ò# IÑ.Ô.Ð.Ð.Ð.r   c                ó   — |S ©Nr   )r^  Úliness     r   Ú_format_codezMCodePrinter._format_code“   s   € Øˆr   c                ó’   — t          |¦  «        }|                      |j        |¦  «        ›d|                      |j        |¦  «        ›�S )Nú^)r
   ÚparenthesizeÚbaser   )r^  ÚexprÚPRECs      r   Ú
_print_PowzMCodePrinter._print_Pow–   sL   € Ý˜$ÑÔˆØ×+Ò+¨D¬I°tÑ<Ô<Ð<Ð<Ø×+Ò+¨D¬H°dÑ;Ô;Ð;ð=ð 	=r   c                ó  •‡ ‡— t          |¦  «        Š|                     ¦   «         \  }}t          ¦   «                               |j        |Ž ¦  «        }|r*|dz  }|d                     ˆˆ fd„|D ¦   «         ¦  «        z  }|S )NÚ*z**c              3  óD   •K  — | ]}‰                      |‰¦  «        V — Œd S rd  )ri  )Ú.0Úarl  r^  s     €€r   ú	<genexpr>z*MCodePrinter._print_Mul.<locals>.<genexpr>¡   s3   øè è € ÐDÐD¸A˜T×.Ò.¨q°$Ñ7Ô7ÐDÐDÐDÐDÐDÐDr   )r
   Úargs_cncÚsuperÚ
_print_MulÚfuncÚjoin)r^  rk  ÚcÚncÚresrl  Ú	__class__s   `    @€r   rv  zMCodePrinter._print_Mul›   s‡   øøø€ Ý˜$ÑÔˆØ—’‘”‰ˆˆ2Ý‰gŒg× Ò   ¤¨A Ñ/Ô/ˆØð 	EØ�3‰JˆCØ�4—9’9ÐDÐDÐDÐDÐDÀÐDÑDÔDÑDÔDÑDˆCØˆ
r   c                ó¦   — |                       |j        ¦  «        }|                       |j        ¦  «        }|j        }d                     |||¦  «        S )Nz{} {} {})Ú_printÚlhsÚrhsÚrel_opÚformat)r^  rk  Úlhs_codeÚrhs_codeÚops        r   Ú_print_RelationalzMCodePrinter._print_Relational¤   sG   € Ø—;’;˜tœxÑ(Ô(ˆØ—;’;˜tœxÑ(Ô(ˆØŒ[ˆØ× Ò  ¨2¨xÑ8Ô8Ð8r   c                ó   — dS )NÚ0r   ©r^  rk  s     r   Ú_print_ZerozMCodePrinter._print_Zero«   ó   € Øˆsr   c                ó   — dS )NÚ1r   r‰  s     r   Ú
_print_OnezMCodePrinter._print_One®   r‹  r   c                ó   — dS )Nz-1r   r‰  s     r   Ú_print_NegativeOnezMCodePrinter._print_NegativeOne±   ó   € Øˆtr   c                ó   — dS )Nz1/2r   r‰  s     r   Ú_print_HalfzMCodePrinter._print_Half´   s   € Øˆur   c                ó   — dS )NÚIr   r‰  s     r   Ú_print_ImaginaryUnitz!MCodePrinter._print_ImaginaryUnit·   r‹  r   c                ó   — dS )NÚInfinityr   r‰  s     r   Ú_print_InfinityzMCodePrinter._print_Infinity¼   s   € Øˆzr   c                ó   — dS )Nz	-Infinityr   r‰  s     r   Ú_print_NegativeInfinityz$MCodePrinter._print_NegativeInfinity¿   s   € Øˆ{r   c                ó   — dS )NÚComplexInfinityr   r‰  s     r   Ú_print_ComplexInfinityz#MCodePrinter._print_ComplexInfinityÂ   s   € Ø Ð r   c                ó   — dS )NÚIndeterminater   r‰  s     r   Ú
_print_NaNzMCodePrinter._print_NaNÅ   s   € Øˆr   c                ó   — dS )NÚEr   r‰  s     r   Ú_print_Exp1zMCodePrinter._print_Exp1Ê   r‹  r   c                ó   — dS )NÚPir   r‰  s     r   Ú	_print_PizMCodePrinter._print_PiÍ   r‘  r   c                ó   — dS )NÚGoldenRatior   r‰  s     r   Ú_print_GoldenRatiozMCodePrinter._print_GoldenRatioÐ   s   € Øˆ}r   c                óx   — |                      d¬¦  «        }t          |¦  «        }|                      ||¦  «        S )NT)rw  )Úexpandr
   ri  )r^  rk  Úexpandedrl  s       r   Ú_print_TribonacciConstantz&MCodePrinter._print_TribonacciConstantÓ   s8   € Ø—;’; D�;Ñ)Ô)ˆÝ˜$ÑÔˆØ× Ò  ¨4Ñ0Ô0Ð0r   c                ó   — dS )NÚ
EulerGammar   r‰  s     r   Ú_print_EulerGammazMCodePrinter._print_EulerGammaØ   s   € Øˆ|r   c                ó   — dS )NÚCatalanr   r‰  s     r   Ú_print_CatalanzMCodePrinter._print_CatalanÛ   s   € Øˆyr   c                óR   ‡ — dd                      ˆ fd„|D ¦   «         ¦  «        z   dz   S )NÚ{ú, c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S rd  ©Údoprint©rq  rr  r^  s     €r   rs  z+MCodePrinter._print_list.<locals>.<genexpr>à   s-   øè è € Ð=Ð=°1˜tŸ|š|¨A™œÐ=Ð=Ð=Ð=Ð=Ð=r   Ú}©rx  r‰  s   ` r   Ú_print_listzMCodePrinter._print_listß   s4   ø€ Ø�T—Y’YÐ=Ð=Ð=Ð=¸Ð=Ñ=Ô=Ñ=Ô=Ñ=ÀÑCÐCr   c                óP   — |                       |                     ¦   «         ¦  «        S rd  ©rº  Útolistr‰  s     r   Ú_print_ImmutableDenseMatrixz(MCodePrinter._print_ImmutableDenseMatrixä   ó   € Ø�|Š|˜DŸKšK™MœMÑ*Ô*Ð*r   c                óv   ‡ ‡‡— ˆ fd„Šˆˆfd„}ˆˆ fd„}d                       |¦   «          |¦   «         ¦  «        S )Nc                ó¤   •— d                      ‰                     | d         dz   | d         dz   f¦  «        ‰                     |¦  «        ¦  «        S )Nú{} -> {}r   é   ©r‚  rº  ©ÚposÚvalr^  s     €r   Ú
print_rulez=MCodePrinter._print_ImmutableSparseMatrix.<locals>.print_ruleé   sP   ø€ Ø×$Ò$Ø�LŠL˜#˜aœ& ™( C¨¤F¨1¡HÐ-Ñ.Ô.°·²¸SÑ0AÔ0AñCô Cð Cr   c                 óÆ   •— t          ‰                     ¦   «                              ¦   «         t          ¬¦  «        } dd                     ˆfd„| D ¦   «         ¦  «        z   dz   S )N)Úkeyr¶  r·  c              3  ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S rd  r   )rq  ra  rb  rÌ  s      €r   rs  zPMCodePrinter._print_ImmutableSparseMatrix.<locals>.print_data.<locals>.<genexpr>ð   s3   øè è € Ð=Ð=©t¨q°!˜*˜* Q¨Ñ*Ô*Ð=Ð=Ð=Ð=Ð=Ð=r   r¼  )ÚsortedÚtodokrZ  r   rx  )rZ  rk  rÌ  s    €€r   Ú
print_dataz=MCodePrinter._print_ImmutableSparseMatrix.<locals>.print_dataí   sc   ø€ Ý˜4Ÿ:š:™<œ<×-Ò-Ñ/Ô/Õ5EÐFÑFÔFˆEØØ—	’	Ð=Ð=Ð=Ð=°uÐ=Ñ=Ô=Ñ=Ô=ñ>àñð r   c                 ó8   •— ‰                      ‰ j        ¦  «        S rd  ©rº  Úshape©rk  r^  s   €€r   Ú
print_dimsz=MCodePrinter._print_ImmutableSparseMatrix.<locals>.print_dimsó   s   ø€ Ø—<’< ¤
Ñ+Ô+Ð+r   úSparseArray[{}, {}]©r‚  )r^  rk  rÒ  r×  rÌ  s   ``  @r   Ú_print_ImmutableSparseMatrixz)MCodePrinter._print_ImmutableSparseMatrixç   sƒ   øøø€ ð	Cð 	Cð 	Cð 	Cð 	Cð	ð 	ð 	ð 	ð 	ð 	ð	,ð 	,ð 	,ð 	,ð 	,ð 	,ð %×+Ò+¨J¨J©L¬L¸*¸*¹,¼,ÑGÔGÐGr   c                óP   — |                       |                     ¦   «         ¦  «        S rd  rÀ  r‰  s     r   Ú_print_ImmutableDenseNDimArrayz+MCodePrinter._print_ImmutableDenseNDimArrayø   rÃ  r   c                óŠ   ‡ ‡‡‡‡— d„ Šd„ Šˆ fd„Šˆˆˆˆfd„}ˆˆ fd„}d                       |¦   «          |¦   «         ¦  «        S )Nc                óL   — dd                      d„ | D ¦   «         ¦  «        z   dz   S )Nr¶  r·  c              3  ó   K  — | ]}|V — Œd S rd  r   )rq  rr  s     r   rs  zZMCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_string_list.<locals>.<genexpr>ý   s"   è è € Ð":Ð":¨ 1Ð":Ð":Ð":Ð":Ð":Ð":r   r¼  r½  )Ústring_lists    r   Úprint_string_listzGMCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_string_listü   s-   € Ø˜ŸšÐ":Ð":¨kÐ":Ñ":Ô":Ñ:Ô:Ñ:¸SÑ@Ð@r   c                 ó4   — 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   V — Œ
dS )rÇ  Nr   ©rq  Úis     r   rs  z]MCodePrinter._print_ImmutableSparseNDimArray.<locals>.to_mathematica_index.<locals>.<genexpr>  s&   è è € Ð-Ð- 1˜˜Q™Ð-Ð-Ð-Ð-Ð-Ð-r   )Útuple)Úargss    r   Úto_mathematica_indexzJMCodePrinter._print_ImmutableSparseNDimArray.<locals>.to_mathematica_indexÿ   s!   € õ Ð-Ð-¨Ð-Ñ-Ô-Ñ-Ô-Ð-r   c                ó|   •— d                      ‰                     | ¦  «        ‰                     |¦  «        ¦  «        S )z.Helper function to print a rule of MathematicarÆ  rÈ  rÉ  s     €r   rÌ  z@MCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_rule  s1   ø€ à×$Ò$ T§\¢\°#Ñ%6Ô%6¸¿ºÀSÑ8IÔ8IÑJÔJÐJr   c                 ó~   •—  ‰ˆ ˆˆfd„t          ‰ j                             ¦   «         ¦  «        D ¦   «         ¦  «        S )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.
            c           	     óZ   •— g | ]'\  }} ‰ ‰‰                      |¦  «        Ž |¦  «        ‘Œ(S r   )Ú_get_tuple_index)rq  rÎ  Úvaluerk  rÌ  rè  s      €€€r   ú
<listcomp>zTMCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_data.<locals>.<listcomp>  s]   ø€ ð Fð Fð Fñ �C˜ð �Ø(Ð(¨4×+@Ò+@ÀÑ+EÔ+EÐGØñô ð Fð Fð Fr   )rÐ  Ú_sparse_arrayrZ  )rk  rÌ  rá  rè  s   €€€€r   rÒ  z@MCodePrinter._print_ImmutableSparseNDimArray.<locals>.print_data  sl   ø€ ð %Ð$ðFð Fð Fð Fð Fð Fõ #)¨Ô);×)AÒ)AÑ)CÔ)CÑ"DÔ"DðFñ Fô Fñô ð r   c                 ó8   •— ‰                      ‰ 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Ù  )r^  rk  rÒ  r×  rÌ  rá  rè  s   ``  @@@r   Ú_print_ImmutableSparseNDimArrayz,MCodePrinter._print_ImmutableSparseNDimArrayû   s°   øøøøø€ ð	Að 	Að 	Að	.ð 	.ð 	.ð	Kð 	Kð 	Kð 	Kð 	Kð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð"	,ð 	,ð 	,ð 	,ð 	,ð 	,ð %×+Ò+¨J¨J©L¬L¸*¸*¹,¼,ÑGÔGÐGr   c                ó$  ‡ — |j         j        ‰ j        v rM‰ j        |j         j                 }|D ]2\  }} ||j        Ž r#|›d‰                      |j        d¦  «        ›d�c S Œ3n…|j         j        ‰ j        v rr‰ j        |j         j                 \  }}‰                      |¦  «        rCt          ˆ fd„|D ¦   «         ¦  «        r(‰                      | 	                    |¦  «        ¦  «        S |j         j        d‰                      |j        d¦  «        z  z   S )Nú[r·  ú]c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S rd  )Ú
_can_print)rq  Úfr^  s     €r   rs  z/MCodePrinter._print_Function.<locals>.<genexpr>2  s/   øè è € Ð0YÐ0YÈ°·²ÀÑ1CÔ1CÐ0YÐ0YÐ0YÐ0YÐ0YÐ0Yr   z[%s])
rw  Ú__name__rW  rç  Ú	stringifyÚ_rewriteable_functionsrö  Úallr~  Úrewrite)r^  rk  Ú
cond_mfuncÚcondÚmfuncÚtarget_fÚrequired_fss   `      r   Ú_print_FunctionzMCodePrinter._print_Function)  s-  ø€ ØŒ9Ô Ô!5Ð5Ð5ØÔ-¨d¬iÔ.@ÔAˆJØ)ð Oð O‘��eØ�4˜œÐ#ð OØ', u u¨d¯nªn¸T¼YÈÑ.MÔ.MÐ.MÐ.MÐNÐNÐNÐNðOðOð ŒYÔ 4Ô#>Ð>Ð>à$(Ô$?ÀÄ	Ô@RÔ$SÑ!ˆH�kØ�Š˜xÑ(Ô(ð ;­SÐ0YÐ0YÐ0YÐ0YÈ[Ð0YÑ0YÔ0YÑ-YÔ-Yð ;Ø—{’{ 4§<¢<°Ñ#9Ô#9Ñ:Ô:Ð:ØŒyÔ! F¨T¯^ª^¸D¼IÀtÑ-LÔ-LÑ$LÑLÐLr   c                ó<  — t          |j        ¦  «        dk    r3d                     |                      |j        d         ¦  «        ¦  «        S d                     |                      |j        d         ¦  «        |                      |j        d         ¦  «        ¦  «        S )NrÇ  zProductLog[{}]r   zProductLog[{}, {}])Úlenrç  r‚  r~  r‰  s     r   Ú_print_LambertWzMCodePrinter._print_LambertW8  s   € ÝˆtŒy‰>Œ>˜QÒÐØ#×*Ò*¨4¯;ª;°t´yÀ´|Ñ+DÔ+DÑEÔEÐEØ#×*Ò*Ø�KŠK˜œ	 !œÑ%Ô% t§{¢{°4´9¸Q´<Ñ'@Ô'@ñBô Bð 	Br   c                ó¦   — d                      |                      |j        d         ¦  «        |                      |j        d         ¦  «        ¦  «        S )NzArcTan[{}, {}]rÇ  r   )r‚  r~  rç  r‰  s     r   Ú_print_atan2zMCodePrinter._print_atan2>  sF   € Ø×&Ò&Ø�KŠK˜œ	 !œÑ%Ô% t§{¢{°4´9¸Q´<Ñ'@Ô'@ñBô Bð 	Br   c                óð   ‡ — t          |j        ¦  «        dk    r0|j        d         dd …         s|j        d         |j        d         g}n|j        }dd                     ˆ fd„|D ¦   «         ¦  «        z   dz   S )NrÇ  r   zHold[Integrate[r·  c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S rd  r¹  r»  s     €r   rs  z/MCodePrinter._print_Integral.<locals>.<genexpr>G  s-   øè è € Ð,KÐ,KÀ¨T¯\ª\¸!©_¬_Ð,KÐ,KÐ,KÐ,KÐ,KÐ,Kr   ú]])r  Ú	variablesÚlimitsrç  rx  )r^  rk  rç  s   `  r   Ú_print_IntegralzMCodePrinter._print_IntegralB  s}   ø€ ÝˆtŒ~ÑÔ !Ò#Ð#¨D¬K¸¬N¸1¸2¸2Ô,>Ð#Ø”I˜a”L $¤.°Ô"3Ð4ˆDˆDà”9ˆDØ  4§9¢9Ð,KÐ,KÐ,KÐ,KÀdÐ,KÑ,KÔ,KÑ#KÔ#KÑKÈdÑRÐRr   c                ó\   ‡ — dd                      ˆ fd„|j        D ¦   «         ¦  «        z   dz   S )Nz	Hold[Sum[r·  c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S rd  r¹  r»  s     €r   rs  z*MCodePrinter._print_Sum.<locals>.<genexpr>J  s-   øè è € Ð&JÐ&J¸1 t§|¢|°A¡¤Ð&JÐ&JÐ&JÐ&JÐ&JÐ&Jr   r
  )rx  rç  r‰  s   ` r   Ú
_print_SumzMCodePrinter._print_SumI  s6   ø€ Ø˜TŸYšYÐ&JÐ&JÐ&JÐ&JÀÄ	Ð&JÑ&JÔ&JÑJÔJÑJÈTÑQÐQr   c                óŠ   ‡ — |j         }d„ |j        D ¦   «         }dd                     ˆ fd„|g|z   D ¦   «         ¦  «        z   dz   S )Nc                ó:   — g | ]}|d          d k    r|d         n|‘ŒS )rÇ  r   r   rä  s     r   rî  z2MCodePrinter._print_Derivative.<locals>.<listcomp>N  s,   € ÐGÐGÐG¨a˜˜1œ š˜��1”�¨ÐGÐGÐGr   zHold[D[r·  c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S rd  r¹  r»  s     €r   rs  z1MCodePrinter._print_Derivative.<locals>.<genexpr>O  s-   øè è € Ð$NÐ$N¸ T§\¢\°!¡_¤_Ð$NÐ$NÐ$NÐ$NÐ$NÐ$Nr   r
  )rk  Úvariable_countrx  )r^  rk  ÚdexprÚdvarss   `   r   Ú_print_DerivativezMCodePrinter._print_DerivativeL  sX   ø€ Ø”	ˆØGÐG°4Ô3FÐGÑGÔGˆØ˜4Ÿ9š9Ð$NÐ$NÐ$NÐ$N¸u¸gÈ¹oÐ$NÑ$NÔ$NÑNÔNÑNÐQUÑUÐUr   c                ó,   — d                      |¦  «        S )Nz(* {} *)rÙ  )r^  Útexts     r   Ú_get_commentzMCodePrinter._get_commentR  s   € Ø× Ò  Ñ&Ô&Ð&r   )1rø  Ú
__module__Ú__qualname__Ú__doc__ÚprintmethodÚlanguagerV  r	   rP  Ú__annotations__ÚsetrQ  rR  rU  rf  rm  rv  r†  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__)r|  s   @r   rK  rK  z   sÎ  ø€ € € € € € ðð ð €KØ!€Hà(,¨¨[Ô-Jð )ð )ØØðOð Oð )ð )Ðð ð ð ñ ð
 03¨s©u¬u€OÐ4Ð4Ð4Ñ4Ø!$ ¡¤€NÐ&Ð&Ð&Ñ&à "ð /ð /ð /ð /ðð ð ð=ð =ð =ð
ð ð ð ð ð9ð 9ð 9ðð ð ðð ð ðð ð ðð ð ðð ð ð
ð ð ðð ð ð!ð !ð !ðð ð ð
ð ð ðð ð ðð ð ð1ð 1ð 1ð
ð ð ðð ð ðDð Dð Dà€LØ€Lð+ð +ð +ðHð Hð Hð"+ð +ð +ð,Hð ,Hð ,Hð\Mð Mð Mð (ÐðBð Bð BðBð Bð BðSð Sð SðRð Rð RðVð Vð Vð'ð 'ð 'ð 'ð 'ð 'ð 'r   rK  c                óF   — t          |¦  «                             | ¦  «        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'
    )rK  rº  )rk  r_  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
   rW  rK  r'  r   r   r   ú<module>r.     sõ
  ððð ð #Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðhØ	ˆ^ˆ^˜UÐ#Ð$ðhà	ˆ^ˆ^˜UÐ#Ð$ðhð 
ˆ^ˆ^˜UÐ#Ð$ðhð 
ˆ^ˆ^˜UÐ#Ð$ð	hð
 
ˆ^ˆ^˜UÐ#Ð$ðhð 
ˆ^ˆ^˜UÐ#Ð$ðhð 
ˆ^ˆ^˜UÐ#Ð$ðhð 
ˆ^ˆ^˜UÐ#Ð$ðhð ˆnˆn˜hÐ'Ð(ðhð ˆnˆn˜hÐ'Ð(ðhð ˆnˆn˜hÐ'Ð(ðhð ˆnˆn˜hÐ'Ð(ðhð ˆnˆn˜hÐ'Ð(ðhð ˆnˆn˜hÐ'Ð(ðhð ˆnˆn˜fÐ%Ð&ðhð  ˆnˆn˜fÐ%Ð&ð!hð" ˆnˆn˜fÐ%Ð&ð#hð hð$ ˆnˆn˜fÐ%Ð&ð%hð& ˆnˆn˜fÐ%Ð&ð'hð( ˆnˆn˜fÐ%Ð&ð)hð* ˆ~ˆ~˜yÐ)Ð*ð+hð, ˆ~ˆ~˜yÐ)Ð*ð-hð. ˆ~ˆ~˜yÐ)Ð*ð/hð0 ˆ~ˆ~˜yÐ)Ð*ð1hð2 ˆ~ˆ~˜yÐ)Ð*ð3hð4 ˆ~ˆ~˜yÐ)Ð*ð5hð6 ˆnˆn˜fÐ%Ð&ð7hð8 �>�> ;Ð/Ð0ð9hð: 
ˆ_ˆ_˜eÐ$Ð%ð;hð< 
ˆ_ˆ_˜eÐ$Ð%ð=hð> 
ˆ^ˆ^˜UÐ#Ð$ð?hð@ ˆoˆo˜uÐ%Ð&ðAhðB ˆnˆn˜fÐ%Ð&ðChðD ˆnˆn˜fÐ%Ð&ðEhð hð hðF �� Ð-Ð.ðGhðH �� Ð/Ð0ðIhðJ �� ,Ð/Ð0ðKhðL �� Ð0Ð1ðMhðN 	ˆNˆN˜OÐ,Ð
-ðOhðP �.�. *Ð-Ð.ðQhðR �.�. *Ð-Ð.ðShðT ˆ~ˆ~˜wÐ'Ð(ðUhðV �O�O WÐ-Ð.ðWhðX �?�? KÐ0Ð1ðYhðZ �.�. *Ð-Ð.ð[hð\ ˆoˆo˜vÐ&Ð'ð]hð^ 	ˆNˆN˜MÐ*Ð
+ð_hð` 	ˆNˆN˜MÐ*Ð
+ðahðb 
ˆ^ˆ^˜^Ð,Ð-ðchðd 
ˆ^ˆ^˜^Ð,Ð-ðehðf 	ˆNˆN˜MÐ*Ð
+ðghð hð hðh �>�> ;Ð/Ð0ðihðj �N�N LÐ1Ð2ðkhðl �n�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�O ]Ð3Ð4ðAhðB �O�O \Ð2Ð3ðChðD �O�O \Ð2Ð3ðEhðF �/�/ ;Ð/Ð0ðGhðH ˜˜¨Ð5Ð6ðIhð hð 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�O [Ð1Ð2ðUhðV �O�O [Ð1Ð2ðWhðX �N�N KÐ0Ð1ðYhðZ �_�_ lÐ3Ð4ð[hð\ ˆoˆo˜vÐ&Ð'ð]hð^ �~�~ ~Ð6Ð7ð_hð` �N�N KÐ0Ð1ðahðb �� )Ð,Ð-ðchðd �� )Ð,Ð-ðehðf �� )Ð,Ð-ðghðh �� )Ð,Ð-ðihðj �� *Ð-Ð.ðkhð hð 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ˆOÑ/Ð0Ð
1ðhñ@ 	‰OˆOÑ/Ð0Ð
1ðAhñB ‰ˆÑ 3Ð4Ð5ðChñD ‘�¡)Ð,Ð-ðEhñF ‘/�/¡:Ð.Ð/ðGhñH ‘N�N¡LÐ1Ð2ðIhñJ ‘>�>Ñ#3Ð4Ð5ðKhñL ™˜Ñ)9Ð:Ð;ðMhð hñN ‰nˆn™fÐ%Ð&ðOhð h€ðVY'ð Y'ñ Y'ð Y'ñ Y'�;ñ Y'ô Y'ð Y'ñx0ð 0ð 0ñ 0ð 0r   