Ë
    7^(hšd  ã                   ó¨   — d dl Z d dlZd dlmZ d dlmZ  ed«      Zerd dlmZmZm	Z	 n G d„ d«      Z G d„ d	«      Z G d
„ d«      Z	 G d„ de«      Z
y)é    N)Úimport_module)ÚLaTeXParsingErrorÚlark)ÚTransformerÚTokenÚTreec                   ó   — e Zd Zd„ Zy)r   c                  ó   — y ©N© )ÚselfÚargss     úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/parsing/latex/lark/transformer.pyÚ	transformzTransformer.transform   s   € Øó    N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   „ ó	r   r   c                   ó   — e Zd Zy)r   N©r   r   r   r   r   r   r   r      ó   „ Ør   r   c                   ó   — e Zd Zy)r   Nr   r   r   r   r   r      r   r   r   c                   ór  — e Zd ZdZej
                  Zej                  j                  j                  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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-d%„ Z.d&„ Z/d'„ Z0d(„ Z1d)„ Z2d*„ Z3d+„ Z4d,„ Z5d-„ Z6d.„ Z7d/„ Z8d0„ Z9d1„ Z:d2„ Z;d3„ Z<d4„ Z=d5„ Z>d6„ Z?d7„ Z@d8„ ZAd9„ ZBd:„ ZCd;„ ZDd<„ ZEd=„ ZFd>„ ZGd?„ ZHd@„ ZIdA„ ZJdB„ ZKdC„ ZLdD„ ZMdE„ ZNdF„ ZOdG„ ZPdH„ ZQdI„ ZRdJ„ ZSdK„ ZTdL„ ZUdM„ ZVdN„ ZWdO„ ZXdP„ ZYdQeZfdR„Z[dS„ Z\dT„ Z]dU„ Z^dV„ Z_dW„ Z`dX„ ZayY)ZÚTransformToSymPyExpra   Returns a SymPy expression that is generated by traversing the ``lark.Tree``
    passed to the ``.transform()`` function.

    Notes
    =====

    **This class is never supposed to be used directly.**

    In order to tweak the behavior of this class, it has to be subclassed and then after
    the required modifications are made, the name of the new class should be passed to
    the :py:class:`LarkLaTeXParser` class by using the ``transformer`` argument in the
    constructor.

    Parameters
    ==========

    visit_tokens : bool, optional
        For information about what this option does, see `here
        <https://lark-parser.readthedocs.io/en/latest/visitors.html#lark.visitors.Transformer>`_.

        Note that the option must be set to ``True`` for the default parser to work.
    c                 ó"   — t         j                  S r   )ÚsympyÚoo©r   Útokenss     r   Ú	CMD_INFTYzTransformToSymPyExpr.CMD_INFTY5   s   € Ü�x‰xˆr   c                 ó`   — t        j                  dd|dd  «      }t        j                  |«      S )NÚvarÚ é   )ÚreÚsubr   ÚSymbol)r   r   Úvariable_names      r   ÚGREEK_SYMBOL_WITH_PRIMESz-TransformToSymPyExpr.GREEK_SYMBOL_WITH_PRIMES8   s+   € ô Ÿ™˜u b¨&°°¨*Ó5ˆä�|‰|˜MÓ*Ð*r   c                 óÒ   — |j                   j                  d«      \  }}|j                  d«      rt        j                  |›d|dd ›d�«      S t        j                  |›d|›d�«      S )NÚ_ú{ú_{r$   éÿÿÿÿú})ÚvalueÚsplitÚ
startswithr   r'   )r   r   Úbaser&   s       r   Ú!LATIN_SYMBOL_WITH_LATIN_SUBSCRIPTz6TransformToSymPyExpr.LATIN_SYMBOL_WITH_LATIN_SUBSCRIPT?   sT   € Ø—L‘L×&Ñ& sÓ+‰	ˆˆcØ�>‰>˜#ÔÜ—<‘<ªT°3°q¸²9Ð =Ó>Ð>ä—<‘<ªT²3Ð 7Ó8Ð8r   c                 ó  — |j                   j                  d«      \  }}t        j                  dd|dd  «      }|j	                  d«      rt        j                  |›d|dd ›d�«      S t        j                  |›d|›d�«      S )	Nr+   r"   r#   r$   r,   r-   r.   r/   ©r0   r1   r%   r&   r2   r   r'   ©r   r   r3   r&   Úgreek_letters        r   Ú!GREEK_SYMBOL_WITH_LATIN_SUBSCRIPTz6TransformToSymPyExpr.GREEK_SYMBOL_WITH_LATIN_SUBSCRIPTF   sl   € Ø—L‘L×&Ñ& sÓ+‰	ˆˆcÜ—v‘v˜e R¨¨a¨b¨Ó2ˆà�>‰>˜#ÔÜ—<‘<ª\¸3¸qÀº9Ð EÓFÐFä—<‘<ª\º3Ð ?Ó@Ð@r   c                 óÚ   — |j                   j                  d«      \  }}|j                  d«      r|dd }n|dd  }t        j                  dd|«      }t        j                  |›d|›d	�«      S )
Nr+   r,   é   r.   r$   r"   r#   r-   r/   )r0   r1   r2   r%   r&   r   r'   r7   s        r   Ú!LATIN_SYMBOL_WITH_GREEK_SUBSCRIPTz6TransformToSymPyExpr.LATIN_SYMBOL_WITH_GREEK_SUBSCRIPTO   sb   € Ø—L‘L×&Ñ& sÓ+‰	ˆˆcØ�>‰>˜#ÔØ˜q ˜9‰Là˜q˜r˜7ˆLä—v‘v˜e R¨Ó6ˆÜ�|‰|ªª|Ð<Ó=Ð=r   c                 ó  — |j                   j                  d«      \  }}t        j                  dd|dd  «      }|j	                  d«      r|dd }n|dd  }t        j                  dd|«      }t        j                  |›d|›d	�«      S )
Nr+   r"   r#   r$   r,   r;   r.   r-   r/   r6   )r   r   r3   r&   Ú
greek_baseÚ	greek_subs         r   Ú!GREEK_SYMBOL_WITH_GREEK_SUBSCRIPTz6TransformToSymPyExpr.GREEK_SYMBOL_WITH_GREEK_SUBSCRIPTZ   sz   € Ø—L‘L×&Ñ& sÓ+‰	ˆˆcÜ—V‘V˜E 2 t¨A¨B xÓ0ˆ
à�>‰>˜#ÔØ˜A˜b˜	‰Ià˜A˜B˜ˆIä—F‘F˜5 " iÓ0ˆ	Ü�|‰|ª²YÐ?Ó@Ð@r   c                 ó¨   — t        |«      dk(  rt        j                  |d   «      S t        |«      dk(  rt        j                  |d   |d   z   «      S y )Né   r;   é   )Úlenr   r'   r   s     r   Úmulti_letter_symbolz(TransformToSymPyExpr.multi_letter_symbolf   sN   € Üˆv‹;˜!ÒÜ—<‘<  q¡	Ó*Ð*Üˆv‹;˜!ÒÜ—<‘<  q¡	¨F°1©IÑ 5Ó6Ð6ð r   c                 ó  — |d   j                   dk(  rt        j                  S d|d   v r,t        j                  j                  j                  |d   «      S t        j                  j                  j                  |d   «      S )Nr   ÚCMD_IMAGINARY_UNITú.)Útyper   ÚIÚcoreÚnumbersÚFloatÚIntegerr   s     r   ÚnumberzTransformToSymPyExpr.numberl   sf   € Ø�!‰9�>‰>Ð1Ò1Ü—7‘7ˆNà�&˜‘)ÑÜ—:‘:×%Ñ%×+Ñ+¨F°1©IÓ6Ð6ä—:‘:×%Ñ%×-Ñ-¨f°Q©iÓ8Ð8r   c                 ó   — |d   S ©Nr   r   r   s     r   Úlatex_stringz!TransformToSymPyExpr.latex_stringu   ó   € Ø�a‰yÐr   c                 ó   — |d   S ©Nr$   r   r   s     r   Úgroup_round_parenthesesz,TransformToSymPyExpr.group_round_parenthesesx   rS   r   c                 ó   — |d   S rU   r   r   s     r   Úgroup_square_bracketsz*TransformToSymPyExpr.group_square_brackets{   rS   r   c                 ó   — |d   S rU   r   r   s     r   Úgroup_curly_parenthesesz,TransformToSymPyExpr.group_curly_parentheses~   rS   r   c                 ó:   — t        j                  |d   |d   «      S ©Nr   r;   )r   ÚEqr   s     r   ÚeqzTransformToSymPyExpr.eq�   ó   € Ü�x‰x˜˜q™	 6¨!¡9Ó-Ð-r   c                 ó:   — t        j                  |d   |d   «      S r\   )r   ÚNer   s     r   ÚnezTransformToSymPyExpr.ne„   r_   r   c                 ó:   — t        j                  |d   |d   «      S r\   )r   ÚLtr   s     r   ÚltzTransformToSymPyExpr.lt‡   r_   r   c                 ó:   — t        j                  |d   |d   «      S r\   )r   ÚLer   s     r   ÚltezTransformToSymPyExpr.lteŠ   r_   r   c                 ó:   — t        j                  |d   |d   «      S r\   )r   ÚGtr   s     r   ÚgtzTransformToSymPyExpr.gt�   r_   r   c                 ó:   — t        j                  |d   |d   «      S r\   )r   ÚGer   s     r   ÚgtezTransformToSymPyExpr.gte�   r_   r   c                 óö   — t        |«      dk(  r|d   S t        |«      dk(  rX|d   }|d   }| j                  |«      s| j                  |«      rt        j                  ||«      S t        j                  ||«      S y )Nr;   r$   é   r   )rD   Ú_obj_is_sympy_Matrixr   ÚMatAddÚAdd©r   r   ÚlhÚrhs       r   ÚaddzTransformToSymPyExpr.add“   sx   € Üˆv‹;˜!ÒØ˜!‘9ÐÜˆv‹;˜!ÒØ˜‘ˆBØ˜‘ˆBà×(Ñ(¨Ô,°×0IÑ0IÈ"Ô0MÜ—|‘| B¨Ó+Ð+ä—9‘9˜R Ó$Ð$ð r   c                 ót  — t        |«      dk(  r/|d   }| j                  |«      rt        j                  d|«      S | S t        |«      dk(  rm|d   }|d   }| j                  |«      s| j                  |«      r*t        j                  |t        j                  d|«      «      S t        j
                  || «      S y )Nr;   r$   r.   rp   r   )rD   rq   r   ÚMatMulrr   rs   )r   r   Úxru   rv   s        r   r&   zTransformToSymPyExpr.subŸ   sª   € Üˆv‹;˜!ÒØ�q‘	ˆAà×(Ñ(¨Ô+Ü—|‘| B¨Ó*Ð*à�2ˆIÜˆv‹;˜!ÒØ˜‘ˆBØ˜‘ˆBà×(Ñ(¨Ô,°×0IÑ0IÈ"Ô0MÜ—|‘| B¬¯©°R¸Ó(<Ó=Ð=ä—9‘9˜R " Ó%Ð%ð r   c                 ó²   — |d   }|d   }| j                  |«      s| j                  |«      rt        j                  ||«      S t        j                  ||«      S r\   )rq   r   ry   ÚMulrt   s       r   ÚmulzTransformToSymPyExpr.mul°   sQ   € Ø�A‰YˆØ�A‰Yˆà×$Ñ$ RÔ(¨D×,EÑ,EÀbÔ,IÜ—<‘<  BÓ'Ð'ä�y‰y˜˜RÓ Ð r   c                 ó2   — | j                  |d   |d   «      S r\   )Ú_handle_divisionr   s     r   ÚdivzTransformToSymPyExpr.div¹   s   € Ø×$Ñ$ V¨A¡Y°°q±	Ó:Ð:r   c                 ó^  — ddl m}m} t        |d   |«      r$t        |d   |«      rddl m}  ||d   |d   «      S |d   t        j                  d«      k(  r
|d   |d   fS t        |d   t        «      rt        j                  |d   |d   d   «      S t        j                  |d   |d   «      S )Nr   )ÚBraÚKetr$   )ÚOuterProductÚd)
Úsympy.physics.quantumr‚   rƒ   Ú
isinstancer„   r   r'   ÚtupleÚ
Derivativer|   )r   r   r‚   rƒ   r„   s        r   Úadjacent_expressionsz)TransformToSymPyExpr.adjacent_expressions¼   s¨   € ÷ 	3Ü�f˜Q‘i Ô%¬*°V¸A±YÀÔ*DÝ:Ù  q¡	¨6°!©9Ó5Ð5Ø�A‰Yœ%Ÿ,™, sÓ+Ò+à˜!‘9˜f Q™iÐ'Ð'Ü˜˜q™	¤5Ô)ä×#Ñ# F¨1¡I¨v°a©y¸©|Ó<Ð<ä—9‘9˜V A™Y¨¨q©	Ó2Ð2r   c                 ó  — d„ }d„ }d„ }d„ }|d   }t        |«      dk(  r|d   }t        |«      dk(  r|d   }| j                  |«      �r~t        j                  d	«      k(  rt        j                  |«      S |t        j                  d
«      k(  rt        j
                  |«      S  ||«      r4|j                  }t        |«      dz  dk(  r|S t        j                  |«      S  ||«      r@|j                  }t        |«      t        d«      z  dz  dk(  r|S t        j                  |«      S  ||«      rB|j                  }t        |«      dz  dk(  r|j                  «       S t        j
                  |«      S  ||«      rN|j                  }t        |«      t        d«      z  dz  dk(  r|j                  «       S t        j
                  |«      S  |«      s ||«      s ||«      s ||«      rt        |› d|› d�«      ‚t        j                  ||«      S )Nc                 óD   — t        | t        «      xr | j                  dk(  S )NÚPRIMES©r‡   r   rI   ©rz   s    r   Úisprimez1TransformToSymPyExpr.superscript.<locals>.isprimeÍ   s   € Ü˜a¤Ó'Ò>¨A¯F©F°hÑ,>Ð>r   c                 óf   — t        | t        «      xr  | j                  dk(  xs | j                  dk(  S )NÚPRIMES_VIA_CMDÚ	CMD_PRIMErŽ   r�   s    r   Ú
iscmdprimez4TransformToSymPyExpr.superscript.<locals>.iscmdprimeÐ   s6   € Ü˜a¤Ó'ò G¨Q¯V©VÐ7GÑ-Gò .FØ01·±¸+Ñ0EðGr   c                 óD   — t        | t        «      xr | j                  dk(  S )NÚSTARSrŽ   r�   s    r   Úisstarz0TransformToSymPyExpr.superscript.<locals>.isstarÔ   s   € Ü˜a¤Ó'Ò=¨A¯F©F°gÑ,=Ð=r   c                 óf   — t        | t        «      xr  | j                  dk(  xs | j                  dk(  S )NÚSTARS_VIA_CMDÚCMD_ASTERISKrŽ   r�   s    r   Ú	iscmdstarz3TransformToSymPyExpr.superscript.<locals>.iscmdstar×   s5   € Ü˜a¤Ó'ò J¨Q¯V©V°Ñ-Fò .IØ01·±¸.Ñ0HðJr   r   rp   r;   rC   ÚTÚHz\primez\astz with superscript ú is not understood.)
rD   rq   r   r'   Ú	TransposeÚadjointr0   Údoitr   ÚPow)r   r   r�   r”   r—   r›   r3   Úsups           r   Úsuperscriptz TransformToSymPyExpr.superscriptÌ   sÕ  € ò	?ò	Gò	>ò	Jð �a‰yˆÜˆv‹;˜!ÒØ˜‘)ˆCÜˆv‹;˜!Òð
 ˜‘)ˆCà×$Ñ$ TÕ*Ø”e—l‘l 3Ó'Ò'Ü—‘ tÓ,Ð,Ø”e—l‘l 3Ó'Ò'Ü—}‘} TÓ*Ð*Ù�sŒ|Ø—i‘i�Ü�s“8˜a‘< 1Ò$Ø�KÜ—‘ tÓ,Ð,Ù˜#ŒØ—i‘i�Ü˜“HœS ›^Ñ+¨qÑ0°AÒ5Ø�KÜ—‘ tÓ,Ð,Ù�cŒ{Ø—i‘i�ô �s“8˜a‘< 1Ò$ØŸ9™9›;Ð&Ü—}‘} TÓ*Ð*Ù˜Œ~Ø—i‘i�ä˜“HœS ›\Ñ)¨QÑ.°!Ò3ØŸ9™9›;Ð&Ü—}‘} TÓ*Ð*á�3Œ<™: cœ?©f°S¬k¹YÀs¼^Ü# t fÐ,>¸s¸eÐCVÐ$WÓXÐXä�y‰y˜˜sÓ#Ð#r   c                 óÀ   — |d   }|d   j                   }| j                  |«      st        d|› d|› d�«      ‚t        |«      dz  dk(  r|S t	        j
                  |«      S )Nr   r$   ú(ú)rž   r;   )r0   rq   r   rD   r   rŸ   ©r   r   r3   Úprimess       r   Úmatrix_primez!TransformToSymPyExpr.matrix_prime  se   € Ø�a‰yˆØ˜‘—‘ˆà×(Ñ(¨Ô.Ü# a¨ v¨Q¨v¨hÐ6IÐ$JÓKÐKäˆv‹;˜‰?˜aÒØˆKä�‰˜tÓ$Ð$r   c                 óp   — |d   }|d   j                   }t        j                  |j                  › |› �«      S )Nr   r$   )r0   r   r'   Únamer¨   s       r   Úsymbol_primez!TransformToSymPyExpr.symbol_prime  s4   € Ø�a‰yˆØ˜‘—‘ˆä�|‰|˜tŸy™y˜k¨&¨Ð2Ó3Ð3r   c                 óx   — |d   }t        |d   t        «      r|d   \  }}d|fS |d   }| j                  ||«      S )Nr$   r;   Ú
derivative)r‡   rˆ   r   )r   r   Ú	numeratorr+   ÚvariableÚdenominators         r   ÚfractionzTransformToSymPyExpr.fraction  sO   € Ø˜1‘Iˆ	Ü�f˜Q‘i¤Ô'à  ™)‰KˆAˆxð   Ð)Ð)à  ™)ˆKØ×(Ñ(¨°KÓ@Ð@r   c                 ó:   — t        j                  |d   |d   «      S )Nr$   r;   )r   Úbinomialr   s     r   rµ   zTransformToSymPyExpr.binomial&  s   € Ü�~‰~˜f Q™i¨°©Ó3Ð3r   c                 óî  — d }d }d|v r|j                  d«      }d|v r|j                  d«      }|r||dz      nd }|r||dz      nd }| j                  |«      }|€t        d«      ‚|j                  |«      dz   }||   }|�|€t        d«      ‚|�|€t        d«      ‚|�||dz
  k(  rd}	n|�||dz
  k(  rd}	n|dk(  rd}	n||dz
     }	|�t        j                  |	|||f«      S t        j                  |	|«      S )	Nr+   ú^r$   ztDifferential symbol was not found in the expression.Valid differential symbols are "d", "\text{d}, and "\mathrm{d}".úFLower bound for the integral was found, but upper bound was not found.úFUpper bound for the integral was found, but lower bound was not found.rp   r;   )ÚindexÚ_extract_differential_symbolr   r   ÚIntegral)
r   r   Úunderscore_indexÚcaret_indexÚlower_boundÚupper_boundÚdifferential_symbolÚdifferential_variable_indexÚdifferential_variableÚ	integrands
             r   Únormal_integralz$TransformToSymPyExpr.normal_integral)  sq  € ØÐØˆà�&‰=ð  &Ÿ|™|¨CÓ0Ðà�&‰=ð !Ÿ,™, sÓ+ˆKá6F�fÐ-°Ñ1Ò2ÈDˆÙ1<�f˜[¨1™_Ò-À$ˆà"×?Ñ?ÀÓGÐàÐ&Ü#ð %nó oð oð '-§l¡lÐ3FÓ&GÈ!Ñ&KÐ#Ø &Ð'BÑ CÐð Ð" {Ð':ä#Ð$lÓmÐmàÐ" {Ð':ä#Ð$lÓmÐmð Ð'Ð,<Ð@[Ð^_Ñ@_Ò,_ð ‰IØÐ$¨Ð8SÐVWÑ8WÒ)Wð ‰IØ(¨AÒ-ð ‰Ið Ð:¸QÑ>Ñ?ˆIàÐ"ô
 —>‘> )Ð.CÀ[ÐR]Ð-^Ó_Ð_ô —>‘> )Ð-BÓCÐCr   c                 ó^   — t        |«      dk(  rd|d   fS t        |«      dk(  r
|d   |d   fS y )Nrp   r$   rB   r;   )rD   r   s     r   Úgroup_curly_parentheses_intz0TransformToSymPyExpr.group_curly_parentheses_intl  sB   € ô ˆv‹;˜!ÒØ�f˜Q‘i�<ÐÜ�‹[˜AÒØ˜!‘9˜f Q™iÐ'Ð'ð r   c                 ót   — |d   \  }}|d   }t        j                  |t        j                  |d«      «      |fS )Nr$   r;   r.   )r   r|   r¢   )r   r   r°   r±   r²   s        r   Úspecial_fractionz%TransformToSymPyExpr.special_fractionu  s<   € Ø$ Q™iÑˆ	�8Ø˜Q‘iˆô �y‰y˜¤E§I¡I¨k¸2Ó$>Ó?ÀÐIÐIr   c                 ó<  — d }d }d|v r|j                  d«      }d|v r|j                  d«      }|r||dz      nd }|r||dz      nd }|�|€t        d«      ‚|�|€t        d«      ‚|d   \  }}|�t        j                  ||||f«      S t        j                  ||«      S )Nr+   r·   r$   r¸   r¹   r.   )rº   r   r   r¼   )r   r   r½   r¾   r¿   rÀ   rÄ   rÃ   s           r   Úintegral_with_special_fractionz3TransformToSymPyExpr.integral_with_special_fraction|  s×   € ØÐØˆà�&‰=ð  &Ÿ|™|¨CÓ0Ðà�&‰=ð !Ÿ,™, sÓ+ˆKá6F�fÐ-°Ñ1Ò2ÈDˆÙ1<�f˜[¨1™_Ò-À$ˆð Ð" {Ð':ä#Ð$lÓmÐmàÐ" {Ð':ä#Ð$lÓmÐmà+1°"©:Ñ(ˆ	Ð(àÐ"ô
 —>‘> )Ð.CÀ[ÐR]Ð-^Ó_Ð_ô —>‘> )Ð-BÓCÐCr   c                 óÖ   — |j                  d«      }|j                  d«      }|j                  d|«      }|j                  d|«      }||dz   | }||dz   d  }|d   }|d   }	|d   }
||	|
fS )Nr+   r·   r,   r/   r$   r   r.   ©rº   )r   r   r½   r¾   Úleft_brace_indexÚright_brace_indexÚbottom_limitÚ	top_limitÚindex_variableÚlower_limitÚupper_limits              r   Úgroup_curly_parentheses_specialz4TransformToSymPyExpr.group_curly_parentheses_special£  s˜   € Ø!Ÿ<™<¨Ó,ÐØ—l‘l 3Ó'ˆð "Ÿ<™<¨Ð-=Ó>ÐØ"ŸL™L¨Ð.>Ó?ÐàÐ.°Ñ2Ð4EÐFˆð ˜;¨™?Ð+Ð,ˆ	ð & a™ˆØ" 2Ñ&ˆØ ‘lˆð ˜{¨KÐ7Ð7r   c                 ó:   — t        j                  |d   |d   «      S ©Nr;   r$   )r   ÚSumr   s     r   Ú	summationzTransformToSymPyExpr.summationÆ  s   € Ü�y‰y˜ ™ F¨1¡IÓ.Ð.r   c                 ó:   — t        j                  |d   |d   «      S r×   )r   ÚProductr   s     r   ÚproductzTransformToSymPyExpr.productÉ  s   € Ü�}‰}˜V A™Y¨¨q©	Ó2Ð2r   c                 ó°   — |j                  d«      }d|v r|j                  d|«      }||dz      }n||dz      }|dk(  r|d   dfS |dk(  r|d   dfS |d   dfS )Nr·   r,   r$   ú+r   ú-ú+-rÍ   )r   r   r¾   Úleft_curly_brace_indexÚ	directions        r   Úlimit_dir_exprz#TransformToSymPyExpr.limit_dir_exprÌ  s€   € Ø—l‘l 3Ó'ˆà�&‰=Ø%+§\¡\°#°{Ó%CÐ"ØÐ5¸Ñ9Ñ:‰Ià˜{¨Q™Ñ/ˆIà˜ÒØ˜!‘9˜c�>Ð!Ø˜#ÒØ˜!‘9˜c�>Ð!à˜!‘9˜d�?Ð"r   c                 ó\   — |d   }t        |d   t        «      r	|d   \  }}n|d   }d}|||fS )Nr$   rp   rà   )r‡   rˆ   ©r   r   Úlimit_variableÚdestinationrâ   s        r   Úgroup_curly_parentheses_limz0TransformToSymPyExpr.group_curly_parentheses_limÜ  sB   € Ø ™ˆÜ�f˜Q‘i¤Ô'Ø%+¨A¡YÑ"ˆK™à  ™)ˆKØˆIà˜{¨IÐ5Ð5r   c                 óJ   — |d   \  }}}t        j                  |d   |||«      S ©Nr;   r.   )r   ÚLimitrå   s        r   ÚlimitzTransformToSymPyExpr.limitæ  s+   € Ø17¸±Ñ.ˆ˜ Yä�{‰{˜6 "™: ~°{ÀIÓNÐNr   c                 ó   — |d   S rU   r   r   s     r   Údifferentialz!TransformToSymPyExpr.differentialë  rS   r   c                 ó:   — t        j                  |d   |d   «      S )Nr.   rC   )r   r‰   r   s     r   r¯   zTransformToSymPyExpr.derivativeî  s   € Ü×Ñ  r¡
¨F°1©IÓ6Ð6r   c                 ó@   — t        |«      dk(  r|S d„ }t        ||«      S )Nr$   c                 óZ   — t        | t        «      r| j                  dk7  rt        d«      ‚yy)NÚCOMMAzAA comma token was expected, but some other token was encountered.FT)r‡   r   rI   r   )r   s    r   Úremove_tokensz?TransformToSymPyExpr.list_of_expressions.<locals>.remove_tokens÷  s*   € Ü˜d¤EÔ*Ø—y‘y GÒ+ä/Ð0sÓtÐtØ Ør   )rD   Úfilter)r   r   ró   s      r   Úlist_of_expressionsz(TransformToSymPyExpr.list_of_expressionsñ  s)   € Üˆv‹;˜!Òð ˆMòô ˜-¨Ó0Ð0r   c                 ó>   —  t        j                  |d   «      |d   Ž S r\   )r   ÚFunctionr   s     r   Úfunction_appliedz%TransformToSymPyExpr.function_applied  s    € Ø(Œu�~‰~˜f Q™iÓ(¨&°©)Ð4Ð4r   c                 ó,   — t        j                  |d   Ž S ©Nr;   )r   ÚMinr   s     r   ÚminzTransformToSymPyExpr.min  ó   € Ü�y‰y˜& ™)Ð$Ð$r   c                 ó,   — t        j                  |d   Ž S rú   )r   ÚMaxr   s     r   ÚmaxzTransformToSymPyExpr.max  rý   r   c                 ó$   — ddl m}  ||d   «      S )Nr   )r‚   r$   )r†   r‚   )r   r   r‚   s      r   ÚbrazTransformToSymPyExpr.bra
  ó   € Ý-Ù�6˜!‘9‹~Ðr   c                 ó$   — ddl m}  ||d   «      S )Nr   )rƒ   r$   )r†   rƒ   )r   r   rƒ   s      r   ÚketzTransformToSymPyExpr.ket  r  r   c                 óL   — ddl m}m}m}  | ||d   «       ||d   «      «      S )Nr   )r‚   rƒ   ÚInnerProductr$   rp   )r†   r‚   rƒ   r  )r   r   r‚   rƒ   r  s        r   Úinner_productz"TransformToSymPyExpr.inner_product  s%   € ß@Ñ@Ù™C  q¡	›N©C°°q±	«NÓ;Ð;r   c                 ó2   — t        j                  |d   «      S rU   )r   Úsinr   s     r   r
  zTransformToSymPyExpr.sin  ó   € Ü�y‰y˜ ™Ó#Ð#r   c                 ó2   — t        j                  |d   «      S rU   )r   Úcosr   s     r   r  zTransformToSymPyExpr.cos  r  r   c                 ó2   — t        j                  |d   «      S rU   )r   Útanr   s     r   r  zTransformToSymPyExpr.tan  r  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úcscr   s     r   r  zTransformToSymPyExpr.csc  r  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úsecr   s     r   r  zTransformToSymPyExpr.sec"  r  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úcotr   s     r   r  zTransformToSymPyExpr.cot%  r  r   c                 óž   — |d   }|dk(  rt        j                  |d   «      S t        j                  t        j                  |d   «      |«      S rê   )r   Úasinr¢   r
  ©r   r   Úexponents      r   Ú	sin_powerzTransformToSymPyExpr.sin_power(  óC   € Ø˜!‘9ˆØ�rŠ>Ü—:‘:˜f R™jÓ)Ð)ä—9‘9œUŸY™Y v¨b¡zÓ2°HÓ=Ð=r   c                 óž   — |d   }|dk(  rt        j                  |d   «      S t        j                  t        j                  |d   «      |«      S rê   )r   Úacosr¢   r  r  s      r   Ú	cos_powerzTransformToSymPyExpr.cos_power/  r  r   c                 óž   — |d   }|dk(  rt        j                  |d   «      S t        j                  t        j                  |d   «      |«      S rê   )r   Úatanr¢   r  r  s      r   Ú	tan_powerzTransformToSymPyExpr.tan_power6  r  r   c                 óž   — |d   }|dk(  rt        j                  |d   «      S t        j                  t        j                  |d   «      |«      S rê   )r   Úacscr¢   r  r  s      r   Ú	csc_powerzTransformToSymPyExpr.csc_power=  r  r   c                 óž   — |d   }|dk(  rt        j                  |d   «      S t        j                  t        j                  |d   «      |«      S rê   )r   Úasecr¢   r  r  s      r   Ú	sec_powerzTransformToSymPyExpr.sec_powerD  r  r   c                 óž   — |d   }|dk(  rt        j                  |d   «      S t        j                  t        j                  |d   «      |«      S rê   )r   Úacotr¢   r  r  s      r   Ú	cot_powerzTransformToSymPyExpr.cot_powerK  r  r   c                 ó2   — t        j                  |d   «      S rU   )r   r  r   s     r   ÚarcsinzTransformToSymPyExpr.arcsinR  ó   € Ü�z‰z˜& ™)Ó$Ð$r   c                 ó2   — t        j                  |d   «      S rU   )r   r  r   s     r   ÚarccoszTransformToSymPyExpr.arccosU  r-  r   c                 ó2   — t        j                  |d   «      S rU   )r   r   r   s     r   ÚarctanzTransformToSymPyExpr.arctanX  r-  r   c                 ó2   — t        j                  |d   «      S rU   )r   r#  r   s     r   ÚarccsczTransformToSymPyExpr.arccsc[  r-  r   c                 ó2   — t        j                  |d   «      S rU   )r   r&  r   s     r   ÚarcseczTransformToSymPyExpr.arcsec^  r-  r   c                 ó2   — t        j                  |d   «      S rU   )r   r)  r   s     r   ÚarccotzTransformToSymPyExpr.arccota  r-  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úsinhr   s     r   r9  zTransformToSymPyExpr.sinhd  r-  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úcoshr   s     r   r;  zTransformToSymPyExpr.coshg  r-  r   c                 ó2   — t        j                  |d   «      S rU   )r   Útanhr   s     r   r=  zTransformToSymPyExpr.tanhj  r-  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úasinhr   s     r   r?  zTransformToSymPyExpr.asinhm  ó   € Ü�{‰{˜6 !™9Ó%Ð%r   c                 ó2   — t        j                  |d   «      S rU   )r   Úacoshr   s     r   rB  zTransformToSymPyExpr.acoshp  r@  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úatanhr   s     r   rD  zTransformToSymPyExpr.atanhs  r@  r   c                 ó2   — t        j                  |d   «      S rU   )r   ÚAbsr   s     r   ÚabszTransformToSymPyExpr.absv  r  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úfloorr   s     r   rI  zTransformToSymPyExpr.floory  r@  r   c                 ó2   — t        j                  |d   «      S rU   )r   Úceilingr   s     r   ÚceilzTransformToSymPyExpr.ceil|  s   € Ü�}‰}˜V A™YÓ'Ð'r   c                 ó2   — t        j                  |d   «      S rQ   )r   Ú	factorialr   s     r   rN  zTransformToSymPyExpr.factorial  ó   € Ü�‰˜v a™yÓ)Ð)r   c                 ó2   — t        j                  |d   «      S rU   )r   Ú	conjugater   s     r   rQ  zTransformToSymPyExpr.conjugate‚  rO  r   c                 ó¤   — t        |«      dk(  rt        j                  |d   «      S t        |«      dk(  rt        j                  |d   |d   «      S y )Nr;   r$   rp   )rD   r   ÚsqrtÚrootr   s     r   Úsquare_rootz TransformToSymPyExpr.square_root…  sK   € Üˆv‹;˜!Òä—:‘:˜f Q™iÓ(Ð(Ü�‹[˜AÒä—:‘:˜f Q™i¨°©Ó3Ð3ð r   c                 ó2   — t        j                  |d   «      S rU   )r   Úexpr   s     r   Úexponentialz TransformToSymPyExpr.exponential�  r  r   c                 óB  — |d   j                   dk(  rt        j                  |d   d«      S |d   j                   dk(  rt        j                  |d   «      S |d   j                   dk(  r8d|v rt        j                  |d   |d	   «      S t        j                  |d   «      S y )
Nr   ÚFUNC_LGr$   é
   ÚFUNC_LNÚFUNC_LOGr+   rp   r;   )rI   r   Úlogr   s     r   r^  zTransformToSymPyExpr.log�  s–   € Ø�!‰9�>‰>˜YÒ&ô —9‘9˜V A™Y¨Ó+Ð+Ø�A‰Y�^‰^˜yÒ(Ü—9‘9˜V A™YÓ'Ð'Ø�A‰Y�^‰^˜zÒ)à�f‰}ä—y‘y ¨¡¨F°1©IÓ6Ð6ô —y‘y ¨¡Ó+Ð+ð *r   Úsc                 ó:   ‡— h d£}t        ˆfd„|D «       d «      }|S )N>   ú\text{d}ú
\mathrm{d}r…   c              3   ó,   •K  — | ]  }|‰v sŒ|–— Œ y ­wr   r   )Ú.0Úsymbolr_  s     €r   ú	<genexpr>zDTransformToSymPyExpr._extract_differential_symbol.<locals>.<genexpr>¤  s   øè ø€ Ò#]¨vÐQWÐ[\ÒQ\¤FÑ#]ùs   ƒ	�)Únext)r   r_  Údifferential_symbolsrÁ   s    `  r   r»   z1TransformToSymPyExpr._extract_differential_symbol¡  s$   ø€ Ú@Ðä"Ó#]Ð9MÔ#]Ð_cÓdÐà"Ð"r   c                 óÞ   — d„ }d„ }|d   j                   }t        j                  |D ��cg c]-  } ||«      r#|j                   D �cg c]  } ||«      sŒ|‘Œ c}‘Œ/ c}}«      S c c}w c c}}w )Nc                 óD   — t        | t        «      xr | j                  dk(  S )NÚ
matrix_row)r‡   r   Údatar�   s    r   Úis_matrix_rowz2TransformToSymPyExpr.matrix.<locals>.is_matrix_row©  s   € Ü˜q¤$Ó'ÒB¨A¯F©F°lÑ,BÐCr   c                 óF   — t        | t        «       xs | j                  dk7  S )NÚMATRIX_COL_DELIMrŽ   )Úys    r   Úis_not_col_delimz5TransformToSymPyExpr.matrix.<locals>.is_not_col_delim¬  s!   € Ü" 1¤eÓ,Ð,ÒL°·±Ð:LÑ0LÐMr   r$   )Úchildrenr   ÚMatrix)r   r   rm  rq  Úmatrix_bodyrz   rp  s          r   ÚmatrixzTransformToSymPyExpr.matrix¨  sq   € ò	Dò	Nð ˜Q‘i×(Ñ(ˆÜ�|‰|Ø&1÷GØ!"±]À1Ô5Eð *+¯©ÖK AÑ7GÈÕ7JšaÔKó Gó Hð 	HùÒKùó Gs   ªA)
ÁA$ÁA$ÁA)
Á$A)
c                 óÞ   — t        |«      dk(  r2| j                  |d   «      st        d«      ‚|d   j                  «       S t        |«      dk(  r| j	                  |«      j                  «       S y )Nr;   r$   z&Cannot take determinant of non-matrix.rp   )rD   rq   r   Údetru  r   s     r   Údeterminantz TransformToSymPyExpr.determinant³  se   € Üˆv‹;˜!ÒØ×,Ñ,¨V°A©YÔ7Ü'Ð(PÓQÐQà˜!‘9—=‘=“?Ð"äˆv‹;˜!ÒØ—;‘;˜vÓ&×*Ñ*Ó,Ð,ð r   c                 óp   — | j                  |d   «      st        d«      ‚t        j                  |d   «      S )Nr$   z Cannot take trace of non-matrix.)rq   r   r   ÚTracer   s     r   ÚtracezTransformToSymPyExpr.trace½  s3   € Ø×(Ñ(¨°©Ô3Ü#Ð$FÓGÐGä�{‰{˜6 !™9Ó%Ð%r   c                 ó‚   — | j                  |d   «      st        d«      ‚|d   j                  «       j                  «       S )Nr$   z#Cannot take adjugate of non-matrix.)rq   r   r¡   Úadjugater   s     r   r}  zTransformToSymPyExpr.adjugateÃ  s<   € Ø×(Ñ(¨°©Ô3Ü#Ð$IÓJÐJð �a‰y�~‰~Ó×(Ñ(Ó*Ð*r   c                 óf   — t        |d«      r|j                  S t        |t        j                  «      S )NÚ	is_Matrix)Úhasattrr  r‡   r   rs  )r   Úobjs     r   rq   z)TransformToSymPyExpr._obj_is_sympy_MatrixÊ  s'   € Ü�3˜Ô$Ø—=‘=Ð ä˜#œuŸ|™|Ó,Ð,r   c                 ó  — | j                  |«      rt        d«      ‚| j                  |«      r*t        j                  |t        j                  |d«      «      S t        j
                  |t        j                  |d«      «      S )Nz¨Cannot divide by matrices like this since it is not clear if left or right multiplication by the inverse is intended. Try explicitly multiplying by the inverse instead.r.   )rq   r   r   ry   r¢   r|   )r   r°   r²   s      r   r   z%TransformToSymPyExpr._handle_divisionÐ  sm   € Ø×$Ñ$ [Ô1Ü#ð %Jó Kð Kð
 ×$Ñ$ YÔ/Ü—<‘< 	¬5¯9©9°[À"Ó+EÓFÐFä�y‰y˜¤E§I¡I¨k¸2Ó$>Ó?Ð?r   N)br   r   r   Ú__doc__r   r'   ÚSYMBOLrK   rL   rN   ÚDIGITr    r)   r4   r9   r<   r@   rE   rO   rR   rV   rX   rZ   r^   rb   re   rh   rk   rn   rw   r&   r}   r€   rŠ   r¤   rª   r­   r³   rµ   rÅ   rÇ   rÉ   rË   rÕ   rÙ   rÜ   rã   rè   rì   rî   r¯   rõ   rø   rü   r   r  r  r  r
  r  r  r  r  r  r  r  r!  r$  r'  r*  r,  r/  r1  r3  r5  r7  r9  r;  r=  r?  rB  rD  rG  rI  rL  rN  rQ  rU  rX  r^  Ústrr»   ru  rx  r{  r}  rq   r   r   r   r   r   r      sê  „ ñð. �\‰\€FØ�J‰J×Ñ×&Ñ&€Eòò+ò9òAò>ò
Aò7ò9òòòòò.ò.ò.ò.ò.ò.ò
%ò&ò"!ò;ò3ò :$òx
%ò4ò
Aò4òADòF(òJò%DòN!8òF/ò3ò#ò 6òOò
ò7ò1ò 5ò%ò%òòò<ò$ò$ò$ò$ò$ò$ò>ò>ò>ò>ò>ò>ò%ò%ò%ò%ò%ò%ò%ò%ò%ò&ò&ò&ò$ò&ò(ò*ò*ò4ò$ò,ð"#¨có #ò	Hò-ò&ò+ò-ó
@r   r   )r%   r   Úsympy.externalr   Úsympy.parsing.latex.errorsr   r   r   r   r   r   r   r   r   ú<module>r‰     sR   ðÛ 	ã Ý (Ý 8á�VÓ€áß-Ò-÷ñ ÷
ñ ÷ñ ô
@@˜;õ @@r   