o
    æðhèP  ã                   @   s†  d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 ddl
mZ d Z ZZzedd	d
gidjZedd	dgidjZW n	 eyI   Y nw eddd	dgidZer_G dd„ dejƒZdEdd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ ZdFd!d"„Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Z d5d6„ Z!d7d8„ Z"d9d:„ Z#d;d<„ Z$d=d>„ Z%d?d@„ Z&dAdB„ Z'dCdD„ Z(dS )Gé    )ÚversionN)Úimport_module)Ú
StrPrinter)ÚBraÚKeté   )ÚLaTeXParsingErrorz&sympy.parsing.latex._antlr.latexparserÚfromlistÚLaTeXParser)Úimport_kwargsz%sympy.parsing.latex._antlr.latexlexerÚ
LaTeXLexerzantlr4.error.ErrorListenerTÚErrorListener)Úwarn_not_installedr   c                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )ÚMathErrorListenerc                    s   t tj| ƒ ¡  || _d S ©N)Úsuperr   Ú__init__Úsrc)Úselfr   ©Ú	__class__© úZ/var/www/vscode/kcb/lib/python3.10/site-packages/sympy/parsing/latex/_parse_latex_antlr.pyr       s   
zMathErrorListener.__init__c                    sÜ   d}d| d }|  d¡r||| j|f }	t|	ƒ‚|  d¡r*|d| j|f }	t|	ƒ‚|  d¡rbtj‰ ‡ fdd	„| ¡ D ƒ}
t|
ƒd
k rVd |
¡}
|d|
 | j|f }	t|	ƒ‚|d| j|f }	t|	ƒ‚|d| j|f }	t|	ƒ‚)Nz%s
%s
%sú~ú^Úmissingz	no viablezI expected something else hereÚ
mismatchedc                    s    g | ]}|t ˆ ƒk rˆ | ‘qS r   )Úlen)Ú.0Úi©Únamesr   r   Ú
<listcomp>.   s    z1MathErrorListener.syntaxError.<locals>.<listcomp>é
   ú zI expected one of these: zI don't understand this)Ú
startswithr   r
   ÚliteralNamesÚgetExpectedTokensr   Újoinr   )r   ÚrecogÚsymbolÚlineÚcolÚmsgÚeÚfmtÚmarkerÚerrÚexpectedr   r    r   ÚsyntaxError$   s2   

ð
ò
ÿ
ÿüÿÿzMathErrorListener.syntaxError)Ú__name__Ú
__module__Ú__qualname__r   r3   Ú__classcell__r   r   r   r   r      s    r   Fc           
      C   sÆ   t dƒ}d |tfv stdƒ d¡stdƒ‚|  ¡ } t| ƒ}| | ¡}t|ƒ}| ¡  | 	|¡ | 
|¡}t|ƒ}| ¡  | 	|¡ | ¡  ¡ }|r]|jjdksY|jjt| ƒd kr]tdƒ‚t|ƒ}	|	S )NÚantlr4zantlr4-python3-runtimez4.11zˆLaTeX parsing requires the antlr4 Python package, provided by pip (antlr4-python3-runtime) or conda (antlr-python-runtime), version 4.11r   r   zInvalid LaTeX)r   r   r   r%   ÚImportErrorÚstripÚInputStreamr   ÚremoveErrorListenersÚaddErrorListenerÚCommonTokenStreamr
   ÚmathÚrelationÚstartÚstopr   r   Úconvert_relation)
ÚsympyÚstrictr8   Ú	matherrorÚstreamÚlexÚtokensÚparserr@   Úexprr   r   r   Úparse_latex=   s(   ÿ



$rL   c                 C   s¬   |   ¡ r
t|   ¡ ƒS t|  d¡ƒ}t|  d¡ƒ}|  ¡ r"t ||¡S |  ¡ r,t ||¡S |  	¡ r6t 
||¡S |  ¡ r@t ||¡S |  ¡ rJt ||¡S |  ¡ rTt ||¡S d S ©Nr   r   )rK   Úconvert_exprrC   r@   ÚLTrD   ÚStrictLessThanÚLTEÚLessThanÚGTÚStrictGreaterThanÚGTEÚGreaterThanÚEQUALÚEqÚNEQÚNe)ÚrelÚlhÚrhr   r   r   rC   ]   s"   ÿrC   c                 C   s   t |  ¡ ƒS r   )Úconvert_addÚadditive)rK   r   r   r   rN   q   s   rN   c                 C   s¤   |   ¡ rt|  d¡ƒ}t|  d¡ƒ}tj||ddS |  ¡ rLt|  d¡ƒ}t|  d¡ƒ}t|dƒr>|jr>tj|d| ddS tj|tjd|ddddS t	|  
¡ ƒS )Nr   r   F©ÚevaluateÚis_Atoméÿÿÿÿ)ÚADDr^   r_   rD   ÚAddÚSUBÚhasattrrb   ÚMulÚ
convert_mpÚmp)Úaddr\   r]   r   r   r   r^   u   s   r^   c                 C   sÒ   t | dƒr|  d¡}|  d¡}n
|  d¡}|  d¡}|  ¡ s&|  ¡ s&|  ¡ r6t|ƒ}t|ƒ}tj||ddS |  	¡ sB|  
¡ sB|  ¡ rXt|ƒ}t|ƒ}tj|tj|dddddS t | dƒrct|  ¡ ƒS t|  ¡ ƒS )Nrj   r   r   Fr`   rc   Úunary)rg   rj   Ú	mp_nofuncÚMULÚ	CMD_TIMESÚCMD_CDOTri   rD   rh   ÚDIVÚCMD_DIVÚCOLONÚPowÚconvert_unaryrl   Úunary_nofunc)rj   Úmp_leftÚmp_rightr\   r]   r   r   r   ri   „   s    




ri   c                 C   s€   t | dƒr
|  ¡ }n|  ¡ }t | dƒr!|  ¡ }|  ¡ }|g| }n|  ¡ }|  ¡ r-t|ƒS |  ¡ r8t|ƒ}| S |r>t|ƒS d S )Nrl   Úpostfix_nofunc)	rg   rl   rv   Úpostfixry   rd   ru   rf   Úconvert_postfix_list)rl   Únested_unaryÚfirstÚtailrz   Únumabsr   r   r   ru   ›   s    


ÿru   c           	      C   s&  |t | ƒkr
tdƒ‚t| | ƒ}t|tjƒrv|t | ƒd kr |S |dkrit| |d  ƒ}t| |d  ƒ}t|tjƒrit|tjƒrit| |d  ƒ tj¡}t| |d  ƒ tj¡}|si|sit|ƒdkrit	| |d ƒS tj
|t	| |d ƒddS |d }|t | ƒd kr†tdƒ‚t	| |d ƒ}t ||¡S )NzIndex out of boundsr   r   ÚxFr`   z"Expected expression for derivative)r   r   Úconvert_postfixÚ
isinstancerD   ÚExprÚatomsÚSymbolÚstrr{   rh   Ú
Derivative)	Úarrr   ÚresÚleftÚrightÚ	left_symsÚ
right_symsÚwrtrK   r   r   r   r{   ±   s4   ÿÿÿr{   c                 C   s”   |  ¡ r,t|  ¡ ƒ}| tj¡}t|ƒdkr| S t|ƒdkr*tt|ƒƒ}|  ||¡S d S | 	¡ rHt| 	¡   d¡ƒ}t| 	¡   d¡ƒ}|  ||¡S d S rM   )
rK   rN   r„   rD   r…   r   ÚnextÚiterÚsubsÚequality)rK   ÚatÚat_exprÚsymsÚsymr\   r]   r   r   r   Údo_subsÒ   s   þýr—   c                 C   sä   t | dƒr
|  ¡ }n|  ¡ }t|ƒ}|  ¡ D ]Y}| ¡ r-t|tƒr%tdƒ‚t	j
|dd}q| ¡ ro| ¡ }d }d }| ¡ rDt|| ¡ ƒ}| ¡ rOt|| ¡ ƒ}|d urb|d urbt	j|d| dd}q|d uri|}q|d uro|}q|S )NÚexpz"Cannot apply postfix to derivativeFr`   rc   )rg   r˜   Ú
exp_nofuncÚconvert_expÚ
postfix_opÚBANGr‚   Úlistr   rD   Ú	factorialÚeval_atÚeval_at_supr—   Úeval_at_subre   )rz   Ú
exp_nestedr˜   ÚopÚevÚat_bÚat_ar   r   r   r   á   s2   


€r   c                 C   s–   t | dƒr
|  ¡ }n|  ¡ }|r:t|ƒ}t|tƒrtdƒ‚|  ¡ r(t|  ¡ ƒ}n
|  	¡ r2t
|  	¡ ƒ}tj||ddS t | dƒrEt|  ¡ ƒS t|  ¡ ƒS )Nr˜   z Cannot raise derivative to powerFr`   Úcomp)rg   r˜   r™   rš   r‚   r   r   ÚatomÚconvert_atomrK   rN   rD   rt   Úconvert_compr§   Úcomp_nofunc)r˜   r¢   ÚbaseÚexponentr   r   r   rš   ÿ   s   



rš   c                 C   sŽ   |   ¡ rt|   ¡  ¡ ƒS |  ¡ rtjt|  ¡  ¡ ƒddS |  ¡ r't|  ¡ ƒS |  ¡ r1t	|  ¡ ƒS |  
¡ r;t|  
¡ ƒS |  ¡ rEt|  ¡ ƒS d S ©NFr`   )ÚgrouprN   rK   Ú	abs_grouprD   ÚAbsr¨   r©   ÚfloorÚconvert_floorÚceilÚconvert_ceilÚfuncÚconvert_func)r§   r   r   r   rª     s   ÿrª   c                 C   sæ  |   ¡ rB|   ¡  ¡ }|  ¡ r1|  ¡  ¡ rt|  ¡  ¡ ƒ}nt|  ¡  ¡ ƒ}|dtƒ  |¡ d 7 }|  	¡ r=||  	¡  ¡ 7 }t
 |¡S |  ¡ r‡|  ¡  ¡ dd … }|dkrWt
jS |  ¡ r‚d }|  ¡  ¡ rlt|  ¡  ¡ ƒ}nt|  ¡  ¡ ƒ}tƒ  |¡}|d| d 7 }t
 |¡S |  ¡ rš|  ¡  ¡  dd¡}t
 |¡S |  ¡ r¬t|  ¡ ƒ}t
 d|j ¡S |  ¡ r½t|  ¡  ¡ ƒ}t
 |¡S |  ¡ rÇt|  ¡ ƒS |  ¡ rÑt|  ¡ ƒS |  ¡ rát|  ¡  ¡ ƒ}t|ƒS |  ¡ rñt|  ¡  ¡ ƒ}t|ƒS d S )Nú_{Ú}r   Úinftyú,Ú Úd)ÚLETTERÚgetTextÚsubexprrK   rN   r©   r¨   r   ÚdoprintÚSINGLE_QUOTESrD   r…   ÚSYMBOLÚooÚnumberÚreplaceÚNumberÚDIFFERENTIALÚget_differential_varÚnameÚmathitÚ	rule2textÚmathit_textÚfracÚconvert_fracÚbinomÚconvert_binomÚbrar   Úketr   )r¨   ÚsnameÚ	subscriptÚsÚsubscriptNameÚvarÚtextÚvalr   r   r   r©   $  sT   



þr©   c                 C   s&   | j  ¡ }| j j }| jj}| ||¡S r   )rA   ÚgetInputStreamrB   r¿   )ÚctxrG   ÚstartIdxÚstopIdxr   r   r   rÌ   S  s   
rÌ   c           
      C   s*  d}d}| j rÞ| jrÞ| j  ¡ }|d |d  d }| j j| j jkr3| j jjtjkr3t| j jj	ƒ}d}n8|dkrk| j jjtj
krk| j jj	dkrk| j jjtjksV| j jjtj
krkd}| j jj	}| j jjtj
krk|dd … }|so|rÞt |¡}|r| jj| jjkr| jjjtjkr| jjj	dkr|gS |r¬| jj| jjkr¬| jjjtj
kr¬| jjj	dkr¬|gS t| jƒ}d }|rÃ| d¡rÃt|dd … ƒ}n|rÖ| jjj	dkrÖt|tdƒd … ƒ}|rÞt ||¡S | jrçt| jƒ}nt | jj	¡}| j r÷t| j ƒ}nt | jj	¡}tj|ddd	}	|dkr|	S tj||	dd	S )
NFr   r   Té   z\partialr½   rc   r`   )ÚlowerÚupperÚgetSourceIntervalrA   rB   Útyper   rÈ   Úget_differential_var_strrÙ   rÃ   r¾   rD   r…   rÌ   r%   rL   r   r‡   rN   rÇ   ÚupperdÚlowerdrt   rh   )
rÎ   Údiff_opÚ
partial_opÚ	lower_itvÚlower_itv_lenrŽ   Ú
upper_textÚexpr_topÚexpr_botÚinverse_denomr   r   r   rÏ   ]  sZ   




rÏ   c                 C   s$   t | jƒ}t | jƒ}tj||ddS r®   )rN   ÚnÚkrD   Úbinomial)rÐ   Úexpr_nÚexpr_kr   r   r   rÑ   ‘  s   

rÑ   c                 C   ó   t | jƒ}tj|ddS r®   )rN   rÚ   rD   r²   )r²   rÚ   r   r   r   r³   –  ó   
r³   c                 C   rô   r®   )rN   rÚ   rD   Úceiling)r´   rÚ   r   r   r   rµ   š  rõ   rµ   c                 C   sn  |   ¡ rÑ|  ¡ rt|  ¡ ƒ}nt|  ¡ ƒ}|   ¡ jjdd … }|dv r5d|dd …  }ttj	|ƒ|dd}|dv rKd|dd …  }ttj	|ƒ|dd}|d	krVtj
|dd}|d
v rŒ|  ¡ rv|  ¡  ¡ rmt|  ¡  ¡ ƒ}nt|  ¡  ¡ ƒ}n|dkr}d}n|dv r„tj}tj||dd}d }d}|  ¡ r«|  ¡  ¡ r£t|  ¡  ¡ ƒ}nt|  ¡  ¡ ƒ}|dv rÃ|dkr¹d| }d}ttj	|ƒ|dd}|rÏ|rÏtj||dd}|S |  ¡ sÚ|  ¡ r\|  ¡ rå|  ¡  ¡ }n|  ¡ ró|  ¡  ¡ dd … }t|ƒ}|  ¡ r"|  ¡  ¡ rt|  ¡  ¡ ƒ}nt|  ¡  ¡ ƒ}tƒ  |¡}	|d|	 d 7 }|  ¡ r/||  ¡  ¡ 7 }|  ¡ }
g }|
 ¡ rL| t|
 ¡ ƒ¡ |
 ¡ }
|
 ¡ s:| t|
 ¡ ƒ¡ t |¡|Ž S |  ¡ ret| ƒS |   ¡ r‡t| j!ƒ}| j"r€t| j"ƒ}tj"||ddS tj#|ddS |  $¡ r˜t| j!ƒ}tj%|ddS |  &¡ r¢t'| dƒS |  (¡ r¬t'| dƒS |  )¡ rµt*| ƒS d S )Nr   )ÚarcsinÚarccosÚarctanÚarccscÚarcsecÚarccotÚaé   Fr`   )ÚarsinhÚarcoshÚartanhrß   r˜   )ÚlogÚlgÚlnr  r#   )r  r  T)	ÚsinÚcosÚtanÚcscÚsecÚcotÚsinhÚcoshÚtanhrc   r¸   r¹   Ú	summationÚproduct)+Úfunc_normalÚL_PARENÚconvert_func_argÚfunc_argÚfunc_arg_noparensrA   rÙ   ÚgetattrrD   Ú	functionsr˜   rÀ   rK   rN   r©   r¨   ÚEr  Úsupexprrt   r¾   rÃ   r¿   r†   r   rÁ   rÂ   ÚargsÚappendÚFunctionÚFUNC_INTÚhandle_integralÚ	FUNC_SQRTr¬   ÚrootÚsqrtÚFUNC_OVERLINEÚ	conjugateÚFUNC_SUMÚhandle_sum_or_prodÚ	FUNC_PRODÚFUNC_LIMÚhandle_limit)r¶   ÚargrÊ   rK   r¬   Úfunc_powÚ
should_powÚfnamerÕ   r×   Ú
input_argsÚoutput_argsÚrr   r   r   r·   ž  sš   



þ










ÿr·   c                 C   s"   t | dƒrt|  ¡ ƒS t|  ¡ ƒS )NrK   )rg   rN   rK   ri   rm   )r(  r   r   r   r  ÿ  s   
r  c                 C   sP  |   ¡ rt|   ¡ ƒ}n|  ¡ rt|  ¡ ƒ}nd}d }|  ¡ r%t|  ¡ ƒ}nB| tj¡D ]-}t	|ƒ}t
|ƒdkrX|d dkrX|d dkrMt |dd … ¡}n	t |dd … ¡}|}q+|rb| |d¡}nt d¡}|  ¡ r¢|  ¡  ¡ rzt|  ¡  ¡ ƒ}nt|  ¡  ¡ ƒ}|  ¡  ¡ r‘t|  ¡  ¡ ƒ}nt|  ¡  ¡ ƒ}t ||||f¡S t ||¡S )Nr   r   r½   ú\rß   r€   )r_   r^   rÎ   rÏ   rÈ   rÉ   r„   rD   r…   r†   r   r‘   rÀ   r¨   r©   rN   rK   r  ÚIntegral)r¶   Ú	integrandÚint_varr–   rÖ   Úint_symrà   rá   r   r   r   r    s8   €
r  c                 C   sž   t |  ¡ ƒ}t|  ¡  ¡  d¡ƒ}t|  ¡  ¡  d¡ƒ}|  ¡  ¡ r+t|  ¡  ¡ ƒ}nt|  ¡  ¡ ƒ}|dkr@t	 
||||f¡S |dkrMt	 ||||f¡S d S )Nr   r   r  r  )ri   rj   rN   Úsubeqr’   rK   r  r©   r¨   rD   ÚSumÚProduct)r¶   rÊ   rÚ   Úiter_varrA   Úendr   r   r   r$  .  s   ÿr$  c                 C   sš   |   ¡ }| ¡ rt | ¡  ¡ ¡}n| ¡ r$t | ¡  ¡ dd … ¡}nt d¡}| ¡ r0d}n	| ¡ r7d}nd}t| 	¡ ƒ}t
|  ¡ ƒ}t ||||¡S )Nr   r€   ú-ú+z+-)Ú	limit_subr¾   rD   r…   r¿   rÃ   rf   rd   rN   rK   ri   rj   ÚLimit)r¶   ÚsubrØ   Ú	directionÚapproachingÚcontentr   r   r   r'  =  s   
r'  c                 C   s   t |  ¡ ƒ}t |¡S r   )rä   r¿   rD   r…   )r½   rÙ   r   r   r   rÉ   Q  s   
rÉ   c                 C   sl   t dt| ƒƒD ]}| | }|dks!|dks!|dks!|dks!|} nq| |d … } | d dkr4| dd … } | S )Nr   r$   úÚ
ú	r   r/  )Úranger   )rÙ   r   ÚcÚidxr   r   r   rä   V  s    €rä   )F)r   ))Úimportlib.metadatar   rD   Úsympy.externalr   Úsympy.printing.strr   Úsympy.physics.quantum.stater   r   Úerrorsr   r
   r   r   Ú	Exceptionr   rL   rC   rN   r^   ri   ru   r{   r—   r   rš   rª   r©   rÌ   rÏ   rÑ   r³   rµ   r·   r  r  r$  r'  rÉ   rä   r   r   r   r   Ú<module>   sf   ÿÿÿÿÿþ
 
!/
4a(