+
    ‹°³jK)  ã                   óÜ  € R t ^ RIHt ^ RIHtHtHt ^ RIHt ^ RI	H
t
Ht ^ RItRQt/ RRbRR	bR
RbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbR R!bR"R#bR$R%bR&R'bR(R)R*R+R,R-R.R/R0R1R2R3R4R5R6R7R8R9R:R;R<R=R>R?R@RARBRC/Ct] F  t]]]&   K
  	  ]P                   RD]P"                  RE]P$                  RF]P&                  RG]P(                  RH/tRIRJRKRL/t]P.                  .t ! RM RN]4      tRRRO ltRP tR# )Sa	  
Maple code printer

The MapleCodePrinter converts single SymPy expressions into single
Maple expressions, using the functions defined in the Maple objects where possible.


FIXME: This module is still under actively developed. Some functions may be not completed.
)ÚS)ÚIntegerÚIntegerConstantÚequal_valued)ÚCodePrinter)Ú
precedenceÚ
PRECEDENCENÚAbsÚabsÚlogÚlnÚasinÚarcsinÚacosÚarccosÚatanÚarctanÚasecÚarcsecÚacscÚarccscÚacotÚarccotÚasinhÚarcsinhÚacoshÚarccoshÚatanhÚarctanhÚasechÚarcsechÚacschÚarccschÚacothÚarccothÚceilingÚceilÚMaxÚmaxÚMinÚminÚ
factorial2ÚdoublefactorialÚRisingFactorialÚ
pochhammerÚbesseliÚBesselIÚbesseljÚBesselJÚbesselkÚBesselKÚbesselyÚBesselYÚhankelh1ÚHankelH1Úhankelh2ÚHankelH2ÚairyaiÚAiryAiÚairybiÚAiryBiÚappellf1ÚAppellF1ÚfresnelcÚFresnelCÚfresnelsÚFresnelSÚlerchphiÚLerchPhiÚPizexp(1)ÚCatalanÚgammaz(1/2 + (1/2)*sqrt(5))z==Ú=z!=z<>c                   ó&  a a€ ] tR t^Tt oRtRtRtRRRRRR/t]! ]	P                  3/ RR	R
R	/B t
R(V 3R lltR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR)R ltR tR  t R! t!R" t"R# t#R$ t$R% t%R& t&R't'Vt(V ;t)# )*ÚMapleCodePrinterz>
Printer which converts a SymPy expression into a maple code.
Ú_mapleÚmapleÚandÚorÚnotznot ÚinlineTÚallow_unknown_functionsc                ó´   <€ Vf   / p\         SV `  V4       \        \        4      V n        VP	                  R/ 4      pV P                  P                  V4       R # )NÚuser_functions)ÚsuperÚ__init__ÚdictÚknown_functionsÚgetÚupdate)ÚselfÚsettingsÚ	userfuncsÚ	__class__s   && €ÚU/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/printing/maple.pyrW   ÚMapleCodePrinter.__init__f   sM   ø€ ØÒØˆHÜ‰Ñ˜Ô"Ü#¤OÓ4ˆÔØ—L‘LÐ!1°2Ó6ˆ	Ø×Ñ×#Ñ# IÖ.ó    c                ó   € R V,          # )z%s;© )r\   Ú
codestrings   &&r`   Ú_get_statementÚMapleCodePrinter._get_statementn   s   € Ø�zÕ!Ð!rb   c                ó$   € R P                  V4      # )z# {})Úformat)r\   Útexts   &&r`   Ú_get_commentÚMapleCodePrinter._get_commentq   s   € Ø�}‰}˜TÓ"Ð"rb   c                óf   € R P                  VVP                  V P                  R,          4      4      # )z	{} := {};Ú	precision)ri   ÚevalfÚ	_settings)r\   ÚnameÚvalues   &&&r`   Ú_declare_number_constÚ&MapleCodePrinter._declare_number_constt   s.   € Ø×!Ñ! $Ø$)§K¡K°·±¸{Õ0KÓ$LóNð 	Nrb   c                ó   € V# ©Nrd   )r\   Úliness   &&r`   Ú_format_codeÚMapleCodePrinter._format_codex   s   € Øˆrb   c                ó6   € V P                  \        V4      4      # rv   ©Ú_printÚlist©r\   Úexprs   &&r`   Ú_print_tupleÚMapleCodePrinter._print_tuple{   ó   € Ø�{‰{œ4 ›:Ó&Ð&rb   c                ó6   € V P                  \        V4      4      # rv   r{   r~   s   &&r`   Ú_print_TupleÚMapleCodePrinter._print_Tuple~   r‚   rb   c                ó’   € V P                  VP                  4      pV P                  VP                  4      pR P                  W#R7      # )z{lhs} := {rhs})ÚlhsÚrhs)r|   r‡   rˆ   ri   )r\   r   r‡   rˆ   s   &&  r`   Ú_print_AssignmentÚ"MapleCodePrinter._print_Assignment�   s:   € Ø�k‰k˜$Ÿ(™(Ó#ˆØ�k‰k˜$Ÿ(™(Ó#ˆØ×&Ñ&¨3Ð&Ó8Ð8rb   c                ó  € \        V4      p\        VP                  R4      '       d$   RV P                  VP                  V4      ,          # \        VP                  R4      '       d#   RV P                  VP                  4      ,          # \        VP                  R4      '       d#   RV P                  VP                  4      ,          # RP                  V P                  VP                  V4      V P                  VP                  V4      R7      # )	é   z1/%sg      à?zsqrt(%s)z
1/sqrt(%s)z{base}^{exp})ÚbaseÚexpéÿÿÿÿg      à¿)r   r   rŽ   Úparenthesizer�   r|   ri   )r\   r   ÚkwargsÚPRECs   &&, r`   Ú
_print_PowÚMapleCodePrinter._print_Pow†   sË   € Ü˜$ÓˆÜ˜Ÿ™ "×%Ò%Ø˜T×.Ñ.¨t¯y©y¸$Ó?Õ@Ð@Ü˜$Ÿ(™( C×(Ò(Ø §¡¨D¯I©IÓ 6Õ6Ð6Ü˜$Ÿ(™( D×)Ò)Ø $§+¡+¨d¯i©iÓ"8Õ8Ð8à!×(Ñ(Ø×&Ñ& t§y¡y°$Ó7Ø×%Ñ% d§h¡h°Ó5ð )ó 7ð 7rb   c           
     ó  € VP                   R
,          P                  RJd<   VP                   R
,          P                  \        P                  8w  d   \	        R4      hVP                    UUu. uFq  w  r#VRJdF   V\        P                  Jd2   RP                  V P                  V4      V P                  V4      R7      M RP                  V P                  V4      R7      NKs  	  pppRP                  V4      pRP                  VR	7      # u uppi )rŒ   Tz¼All Piecewise expressions must contain an (expr, True) statement to be used as a default condition. Without one, the generated expression may not evaluate to anything under some condition.z{c}, {e})ÚcÚez{e})r—   z, zpiecewise({_inbrace}))Ú_inbracer�   )ÚargsÚcondr   ÚBooleanTrueÚ
ValueErrorri   r|   Újoin)r\   r   r—   r–   Ú
_coup_listr˜   s   &&    r`   Ú_print_PiecewiseÚ!MapleCodePrinter._print_Piecewise“   sù   € Ø�I‰I�b�M×Ñ dÓ*°·±¸2µ×1CÑ1CÄqÇ}Á}Ô1Tô ð /ó 0ð 0ð Ÿ	š	ô	#ñ "‘�ð 56¸T³MÀaÌqÏ}É}ÓF\ð ×Ñ §¡¨Q£Ø!%§¡¨Q£ð ô 1Øbg×bnÑbnØ—+‘+˜a“.ð coó c"ò"ñ "ð	 	ñ #ð
 —9‘9˜ZÓ(ˆØ&×-Ñ-°xÐ-Ó@Ð@ùó#s   Á,A7D	c                óž   € \        VP                  4      \        VP                  4      r2R P                  \	        V4      \	        V4      R7      # )z{p}/{q})ÚpÚq)Úintr¢   r£   ri   Ústr)r\   r   r¢   r£   s   &&  r`   Ú_print_RationalÚ MapleCodePrinter._print_Rational¤   s7   € Ü�4—6‘6‹{œC §¡›Kˆ1Ø×Ñ¤# a£&¬C°«FÐÓ3Ð3rb   c                óö   € \        V4      pV P                  VP                  V4      pV P                  VP                  V4      pVP                  pV\
        9   d   \
        V,          pR P                  W5VR7      # )z{lhs} {rel_op} {rhs})r‡   Úrel_oprˆ   )r   r�   r‡   rˆ   r©   Úspec_relational_opsri   )r\   r   r’   Úlhs_codeÚrhs_codeÚops   &&    r`   Ú_print_RelationalÚ"MapleCodePrinter._print_Relational¨   sj   € Ü˜ÓˆØ×$Ñ$ T§X¡X¨tÓ4ˆØ×$Ñ$ T§X¡X¨tÓ4ˆØ�[‰[ˆØÔ$Ô$Ü$ RÕ(ˆBØ%×,Ñ,°È(Ð,ÓSÐSrb   c                ó   € \         V,          # rv   )Únumber_symbolsr~   s   &&r`   Ú_print_NumberSymbolÚ$MapleCodePrinter._print_NumberSymbol±   s   € Ü˜dÕ#Ð#rb   c                ó   € R # )z	-infinityrd   r~   s   &&r`   Ú_print_NegativeInfinityÚ(MapleCodePrinter._print_NegativeInfinity´   ó   € Ùrb   c                ó   € R # )Úinfinityrd   r~   s   &&r`   Ú_print_InfinityÚ MapleCodePrinter._print_Infinity·   s   € Ùrb   c                ó   € R # )Útruerd   r~   s   &&r`   Ú_print_BooleanTrueÚ#MapleCodePrinter._print_BooleanTrueº   s   € Ùrb   c                ó   € R # )Úfalserd   r~   s   &&r`   Ú_print_BooleanFalseÚ$MapleCodePrinter._print_BooleanFalse½   s   € Ùrb   c                ó   € V'       d   R # R# )r½   rÁ   rd   r~   s   &&r`   Ú_print_boolÚMapleCodePrinter._print_boolÀ   s   € ßˆvÐ* 7Ð*rb   c                ó   € R # )Ú	undefinedrd   r~   s   &&r`   Ú
_print_NaNÚMapleCodePrinter._print_NaNÃ   r·   rb   c                óô   € \         P                  VP                  9   d   R P                  V'       d   RMRR7      pV# RP                  V P	                  VP                  4       4      V'       d   RMRR7      pV# )zMatrix([], storage = {storage})ÚsparseÚrectangular)Ústoragez#Matrix({list}, storage = {storage}))r}   rÎ   )r   ÚZeroÚshaperi   r|   Útolist)r\   r   rÌ   Ú_strMs   &&& r`   Ú_get_matrixÚMapleCodePrinter._get_matrixÆ   sm   € Ü�6‰6�T—Z‘ZÔØ5×<Ñ<ß$*™°ð =ó ?ˆEð ˆð :×@Ñ@Ø—[‘[ §¡£Ó/ß$*™°ð Aó ?ˆEð ˆrb   c                óø   € R P                  V P                  VP                  \        R,          RR7      V P	                  VP
                  ^,           4      V P	                  VP                  ^,           4      R7      # )z{parent}[{i_maple}, {j_maple}]ÚAtomT)Ústrict)ÚparentÚi_mapleÚj_maple)ri   r�   rØ   r   r|   ÚiÚjr~   s   &&r`   Ú_print_MatrixElementÚ%MapleCodePrinter._print_MatrixElementÐ   s`   € Ø/×6Ñ6Ø×$Ñ$ T§[¡[´*¸VÕ2DÈTÐ$ÓRØ—K‘K §¡¨¥
Ó+Ø—K‘K §¡¨¥
Ó+ð 7ó -ð 	-rb   c                ó(   € V P                  VR R7      # )F©rÌ   ©rÓ   r~   s   &&r`   Ú_print_MatrixBaseÚ"MapleCodePrinter._print_MatrixBaseÖ   s   € Ø×Ñ ¨UÐÓ3Ð3rb   c                ó(   € V P                  VR R7      # )Trà   rá   r~   s   &&r`   Ú_print_SparseRepMatrixÚ'MapleCodePrinter._print_SparseRepMatrixÙ   s   € Ø×Ñ ¨TÐÓ2Ð2rb   c                óî   € \        VP                  \        \        34      '       d&   V P	                  \
        P                  ! V4      4      # R P                  V P	                  VP                  4      R7      # )z$Matrix({var_size}, shape = identity))Úvar_size)Ú
isinstanceÚrowsr   r   r|   ÚsympyÚSparseMatrixri   r~   s   &&r`   Ú_print_IdentityÚ MapleCodePrinter._print_IdentityÜ   sV   € Ü�d—i‘i¤'¬?Ð!;×<Ò<Ø—;‘;œu×1Ò1°$Ó7Ó8Ð8à9×@Ñ@È$Ï+É+ÐVZ×V_ÑV_ÓJ`Ð@ÓaÐarb   c                ó¾  a a€ \        V4      o\        VP                  4      pR p\        V^ ,          \        P
                  \        P                  \        P                  \        P                  34      '       g   V^ ,          VR,          r#Ve   V^8X  d   RP                  VV 3R lV 4       4      # RP                  VRP                  VV 3R lV 4       4      R7      # )N:rŒ   NNÚ.c              3   óH   <"  € T F  pSP                  VS4      x € K  	  R # 5irv   ©r�   ©Ú.0Ú_mr’   r\   s   & €€r`   Ú	<genexpr>Ú1MapleCodePrinter._print_MatMul.<locals>.<genexpr>ë   s!   øé € ÐMÁ*¸B˜D×-Ñ-¨b°$×7Ð7Ã*ùó   ƒ"z{c}*{m}c              3   óH   <"  € T F  pSP                  VS4      x € K  	  R # 5irv   rò   ró   s   & €€r`   rö   r÷   í   s$   øé € Ð8jÑ_iÐY[¸×9JÑ9JÈ2Èt×9TÐ9TÓ_iùrø   )r–   Úm)r   r}   r™   ré   rë   Ú
MatrixBaseÚ
MatrixExprÚMatrixSliceÚMatrixSymbolr�   ri   )r\   r   Ú
_fact_listÚ_constr’   s   f&  @r`   Ú_print_MatMulÚMapleCodePrinter._print_MatMulâ   s°   ù€ Ü˜ÓˆÜ˜$Ÿ)™)“_ˆ
ØˆÜ˜* Q�-¬%×*:Ñ*:¼E×<LÑ<LÜ*/×*;Ñ*;¼U×=OÑ=Oð*Q÷ Rò Rà!+¨A¥°
¸2µ�JàŠ>˜V qœ[Ø—8‘8ÕMÁ*ÓMÓMÐMà×#Ñ# f°·±Õ8jÑ_iÓ8jÓ0jÐ#ÓkÐkrb   c                óŒ   € R P                  V P                  VP                  4      V P                  VP                  4      R7      # )zMatrixPower({A}, {n}))ÚAÚn)ri   r|   r�   rŽ   r~   s   &&r`   Ú_print_MatPowÚMapleCodePrinter._print_MatPowï   s5   € à&×-Ñ-°·±¸D¿I¹IÓ0FÈ$Ï+É+ÐVZ×V^ÑV^ÓJ_Ð-Ó`Ð`rb   c                ó~   a a€ \        V4      o\        VP                  4      pR P                  VV 3R lV 4       4      # )Ú*c              3   óH   <"  € T F  pSP                  VS4      x € K  	  R # 5irv   rò   ró   s   & €€r`   rö   Ú:MapleCodePrinter._print_HadamardProduct.<locals>.<genexpr>ö   s!   øé € ÐI¹j¸˜×)Ñ)¨"¨d×3Ð3»jùrø   )r   r}   r™   r�   )r\   r   rÿ   r’   s   f& @r`   Ú_print_HadamardProductÚ'MapleCodePrinter._print_HadamardProductó   s/   ù€ Ü˜$ÓˆÜ˜$Ÿ)™)“_ˆ
Ø�x‰xÕI¹jÓIÓIÐIrb   c                ó  € VP                   w  pw  r4V^8w  d3   RP                  V P                  V4      V P                  V4      R7      pM!RP                  V P                  V4      R7      pRP                  V P                  V4      VR7      # )rŒ   z{var}${order})ÚvarÚorderz{var})r  zdiff({func_expr}, {sec_arg}))Ú	func_exprÚsec_arg)r™   ri   r|   )r\   r   Ú_fÚ_varÚ_orderÚ_second_args   &&    r`   Ú_print_DerivativeÚ"MapleCodePrinter._print_Derivativeø   s€   € Ø!ŸY™YÑˆ‰NˆTà�QŒ;Ø)×0Ñ0°T·[±[ÀÓ5FØ7;·{±{À6Ó7Jð 1ó L‰Kð "Ÿ.™.¨T¯[©[¸Ó->˜.Ó?ˆKØ-×4Ñ4¸t¿{¹{È2»ÐXcÐ4ÓdÐdrb   )rY   rv   )F)*Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚprintmethodÚlanguageÚ
_operatorsrX   r   Ú_default_settingsrW   rf   rk   rs   rx   r€   r„   r‰   r“   rŸ   r¦   r®   r²   rµ   rº   r¾   rÂ   rÅ   rÉ   rÓ   rÝ   râ   rå   rí   r  r  r  r  Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r_   Ú__classdict__s   @@r`   rL   rL   T   sñ   ù‡ € ñð €KØ€Hð 	ˆuØˆdØˆvð€Jñ ˜[×:Ñ:ñ Ø�$Ø! 4ð?ñ Ð÷
/ò"ò#òNòò'ò'ò9ò
7òAò"4òTò$òòòòò+òôò-ò4ò3òbòlòaòJ÷
eò erb   rL   c                ó6   € \        V4      P                  W4      # )aÙ  Converts ``expr`` to a string of Maple code.

Parameters
==========

expr : Expr
    A SymPy expression to be converted.
assign_to : optional
    When given, the argument is used as the name of the variable to which
    the expression is assigned.  Can be a string, ``Symbol``,
    ``MatrixSymbol``, or ``Indexed`` type.  This can be helpful for
    expressions that generate multi-line statements.
precision : integer, optional
    The precision for numbers such as pi  [default=16].
user_functions : dict, optional
    A dictionary where keys are ``FunctionClass`` instances and values are
    their string representations.  Alternatively, the dictionary value can
    be a list of tuples i.e. [(argument_test, cfunction_string)].  See
    below for examples.
human : bool, optional
    If True, the result is a single string that may contain some constant
    declarations for the number symbols.  If False, the same information is
    returned in a tuple of (symbols_to_declare, not_supported_functions,
    code_text).  [default=True].
contract: bool, optional
    If True, ``Indexed`` instances are assumed to obey tensor contraction
    rules and the corresponding nested loops over indices are generated.
    Setting contract=False will not generate loops, instead the user is
    responsible to provide values for the indices in the code.
    [default=True].
inline: bool, optional
    If True, we try to create single-statement code instead of multiple
    statements.  [default=True].

)rL   Údoprint)r   Ú	assign_tor]   s   &&,r`   Ú
maple_coder)    s   € ôH ˜HÓ%×-Ñ-¨dÓ>Ð>rb   c                ó0   € \        \        V 3/ VB 4       R# )a  Prints the Maple representation of the given expression.

See :func:`maple_code` for the meaning of the optional arguments.

Examples
========

>>> from sympy import print_maple_code, symbols
>>> x, y = symbols('x y')
>>> print_maple_code(x, assign_to=y)
y := x
N)Úprintr)  )r   r]   s   &,r`   Úprint_maple_coder,  *  s   € ô 
Œ*�TÑ
&˜XÑ
&Ö'rb   ) ÚsinÚcosÚtanÚsecÚcscÚcotÚsinhÚcoshÚtanhÚsechÚcschÚcothrŽ   ÚfloorÚ	factorialÚ	bernoulliÚeulerÚ	fibonacciÚgcdÚlcmÚ	conjugateÚCiÚChiÚEiÚLiÚSiÚShiÚerfÚerfcÚharmonicÚLambertWÚsqrtrv   )r  Ú
sympy.corer   Úsympy.core.numbersr   r   r   Úsympy.printing.codeprinterr   Úsympy.printing.precedencer   r   rë   Ú_known_func_same_namerY   Ú_funcrG   ÚExp1rH   Ú
EulerGammaÚGoldenRatior±   rª   ÚComplexInfinityÚnot_supported_symbolrL   r)  r,  rd   rb   r`   Ú<module>rW     s×  ðñõ ß EÑ EÝ 2ß <ã ðÐ ð"à	ˆ5ð"ð 
ˆ4ð"ð ˆHð	"ð
 ˆHð"ð ˆHð"ð ˆHð"ð ˆHð"ð ˆHð"ð ˆYð"ð ˆYð"ð ˆYð"ð ˆYð"ð ˆYð"ð ˆYð"ð  ˆvð!"ð" 
ˆEð#"ð$ 
ˆEð%"ð( Ð#Ø�|ØˆyØˆyØˆyØˆyØ�
Ø�
ØˆhØˆhØ�
Ø�
Ø�
Ø�ñC"€óH #€EØ"€O�EÓñ #ð
 ‡D�Dˆ$Ø‡F�FˆHØ‡I�IˆyØ‡L�L�'Ø‡M�MÐ*ð€ð 	ˆ#Øˆ$ðÐ ð ×ÑðÐ ôle�{ô leô^$?ôN(rb   