
    sgP                        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xZxZZ	  edd	d
gi      j                  Z edd	dgi      j                  Z eddd	dgi      Zer G d dej                         Zd,dZd Zd Zd Zd Zd Zd-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(y# e$ r Y ww xY w).    )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                   $     e Zd Z fdZd Z xZS )MathErrorListenerc                 L    t         t        j                  |           || _        y N)superr   __init__src)selfr   	__class__s     Y/var/www/html/venv/lib/python3.12/site-packages/sympy/parsing/latex/_parse_latex_antlr.pyr   zMathErrorListener.__init__    s    ---t=?DH    c                 j   d}d|z  dz   }|j                  d      r||| j                  |fz  }	t        |	      |j                  d      r|d| j                  |fz  }	t        |	      |j                  d      rt        j                  }
|j	                         D cg c]  }|t        |
      k  s|
|    }}t        |      dk  r1d	j                  |      }|d
|z   | j                  |fz  }	t        |	      |d| j                  |fz  }	t        |	      |d| j                  |fz  }	t        |	      c c}w )Nz%s
%s
%s~^missingz	no viablezI expected something else here
mismatched
    zI expected one of these: zI don't understand this)
startswithr   r   literalNamesgetExpectedTokenslenjoinr	   )r   recogsymbollinecolmsgefmtmarkererrnamesiexpecteds                r   syntaxErrorzMathErrorListener.syntaxError$   sX   C3Y_F~~i(S$((F33" $C((! ,=txxPP $C(( -#00&'&9&9&;!"q3u:~E!H  x=2%"xx1H"="H$(("("* *C $C((	 "BDHH"("* *C $C(( 6&II#C((s   D0.D0)__name__
__module____qualname__r   r3   __classcell__)r   s   @r   r   r      s    		)r   r   c                    t        d      }d |t        fv st        d      j                  d      st	        d       | j
                         } t        |       }|j                  |       }t        |      }|j                          |j                  |       |j                  |      }t        |      }|j                          |j                  |       |j                         j                         }|rI|j                  j                  dk7  s%|j                  j                  t!        |       dz
  k7  rt#        d      t%        |      }	|	S )Nantlr4zantlr4-python3-runtimez4.11zLaTeX 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strictr9   	matherrorstreamlextokensparserrA   exprs
             r   parse_latexrM   =   s"   8$F)**01<<VD H I 	I EKKME!%(I&F
V
C#%%c*F F !
I&{{}%%'H8>>''1,0B0Bc%jSTn0T00H%DKr   c                    | j                         rt        | j                               S t        | j                  d            }t        | j                  d            }| j	                         rt        j                  ||      S | j                         rt        j                  ||      S | j                         rt        j                  ||      S | j                         rt        j                  ||      S | j                         rt        j                  ||      S | j                         rt        j                   ||      S y Nr   r   )rL   convert_exprrD   rA   LTrE   StrictLessThanLTELessThanGTStrictGreaterThanGTEGreaterThanEQUALEqNEQNe)rellhrhs      r   rD   rD   ]   s    
xxzCHHJ''	#,,q/	*B	#,,q/	*B
vvx##B++	~~b"%%	&&r2..	  R((	xxB	xxB 
r   c                 4    t        | j                               S r   )convert_addadditive)rL   s    r   rP   rP   q   s    t}}''r   c                 6   | j                         rLt        | j                  d            }t        | j                  d            }t        j                  ||d      S | j                         rt        | j                  d            }t        | j                  d            }t        |d      r'|j                  rt        j                  |d|z  d      S t        j                  |t        j                  d|d      d      S t        | j                               S )Nr   r   Fevaluateis_Atom)ADDra   rb   rE   AddSUBhasattrrf   Mul
convert_mpmp)addr^   r_   s      r   ra   ra   u   s    
wwya)a)yyR%00	a)a)2y!bjj99Rb599yyUYYr2>OO#&&(##r   c                    t        | d      r#| j                  d      }| j                  d      }n"| j                  d      }| j                  d      }| j                         s | j	                         s| j                         r.t        |      }t        |      }t        j                  ||d      S | j                         s | j                         s| j                         rDt        |      }t        |      }t        j                  |t        j                  |dd      d      S t        | d      rt        | j                               S t        | j                               S )Nrn   r   r   Frd   rg   unary)rk   rn   	mp_nofuncMUL	CMD_TIMESCMD_CDOTrm   rE   rl   DIVCMD_DIVCOLONPowconvert_unaryrq   unary_nofunc)rn   mp_leftmp_rightr^   r_   s        r   rm   rm      s    r4%%(558,,q/<<?	vvx2<<>R[[] !yyR%00	RZZ\RXXZ !yyUYYr2>OO2w ,, !233r   c                 p   t        | d      r| j                         }n| j                         }t        | d      r'| j                         }| j	                         }|g|z   }n| j                         }| j                         rt        |      S | j                         rt        |      }| S |rt        |      S y )Nrq   postfix_nofunc)	rk   rq   r{   postfixr   rh   rz   rj   convert_postfix_list)rq   nested_unaryfirsttailr   numabss         r   rz   rz      s    ug{{}))+u&'##%'D.--/yy{\**	|,w	#G,, 
r   c                 2   |t        |       k\  rt        d      t        | |         }t        |t        j
                        r|t        |       dz
  k(  r|S |dkD  rt        | |dz
           }t        | |dz            }t        |t        j
                        rt        |t        j
                        r}t        | |dz
           j                  t        j                        }t        | |dz            j                  t        j                        }|s|st        |      dk(  rt        | |dz         S t	        j                  |t        | |dz         d      S |d   }|t        |       dz
  k(  rt        d      t        | |dz         }t	        j                  ||      S )NzIndex out of boundsr   r   xFrd   z"Expected expression for derivative)r%   r	   convert_postfix
isinstancerE   ExpratomsSymbolstrr   rl   
Derivative)	arrr1   resleftright	left_syms
right_symswrtrL   s	            r   r   r      sj   CH} 566
#a&
!C#uzz"C1J1u&s1q5z2'AE
3dEJJ/Juzz5+ /AE
 ; A A%,, OI!0QU!<!B!B"&J &SS3CQ??99)#q1u5G G !fC1#$HII'QU3D##D#..r   c                    |j                         r}t        |j                               }|j                  t        j                        }t        |      dk(  r| S t        |      dkD  r&t        t        |            }| j                  ||      S y |j                         rbt        |j                         j                  d            }t        |j                         j                  d            }| j                  ||      S y rO   )
rL   rP   r   rE   r   r%   nextitersubsequality)rL   atat_exprsymssymr^   r_   s          r   do_subsr      s    	wwyrwwy)}}U\\*t9>KY]tDz"C99S'**  
"++-,,Q/0"++-,,Q/0yyR   
r   c                 l   t        | d      r| j                         }n| j                         }t        |      }| j	                         D ]  }|j                         r3t        |t              rt        d      t        j                  |d      }F|j                         sW|j                         }d }d }|j                         rt        ||j                               }|j                         rt        ||j                               }||t        j                  |d|z  d      }||}||} |S )Nexpz"Cannot apply postfix to derivativeFrd   rg   )rk   r   
exp_nofuncconvert_exp
postfix_opBANGr   listr	   rE   	factorialeval_ateval_at_supr   eval_at_subri   )r   
exp_nestedr   opevat_bat_as          r   r   r      s   w[[]
'')

j
!C  " 779#t$'(LMM//#6CZZ\BDD~~sBNN$45~~sBNN$45D$4iib4i%@!!%( Jr   c                    t        | d      r| j                         }n| j                         }|rt        |      }t	        |t
              rt        d      | j                         rt        | j                               }n)| j                         rt        | j                               }t        j                  |d      S t        | d      rt        | j                               S t        | j                               S )Nr   z Cannot raise derivative to powerFrd   comp)rk   r   r   r   r   r   r	   atomconvert_atomrL   rP   rE   ry   convert_compr   comp_nofunc)r   r   baseexponents       r   r   r      s    sEWWY
^^%
:&dD!#$FGG88:#CHHJ/HXXZ#CHHJ/Hyyx%883
++ 122r   c                 R   | j                         r't        | j                         j                               S | j                         r<t	        j
                  t        | j                         j                               d      S | j                         rt        | j                               S | j                         rt        | j                               S | j                         rt        | j                               S | j                         rt        | j                               S y NFrd   )grouprP   rL   	abs_grouprE   Absr   r   floorconvert_floorceilconvert_ceilfuncconvert_func)r   s    r   r   r     s    zz|DJJL--/00		yydnn&6&;&;&=>OO	DIIK((	TZZ\**	DIIK((	DIIK(( 
r   c                    | j                         r| j                         j                         }| j                         r| j                         j                         r(t	        | j                         j                               }n't        | j                         j                               }|dt               j                  |      z   dz   z  }| j                         r!|| j                         j                         z  }t        j                  |      S | j                         r| j                         j                         dd  }|dk(  rt        j                  S | j                         rd }| j                         j                         r(t	        | j                         j                               }n't        | j                         j                               }t               j                  |      }|d|z   dz   z  }t        j                  |      S | j                         rC| j                         j                         j                  dd      }t        j                   |      S | j#                         r;t%        | j#                               }t        j                  d|j&                  z         S | j)                         r<t+        | j)                         j-                               }t        j                  |      S | j/                         rt1        | j/                               S | j3                         rt5        | j3                               S | j7                         r2t	        | j7                         j                               }t9        |      S | j;                         r2t	        | j;                         j                               }t=        |      S y )N_{}r   infty, d)LETTERgetTextsubexprrL   rP   r   r   r   doprintSINGLE_QUOTESrE   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vals           r   r   r   $  s   {{}%%'<<>||~""$()<)<)>?	()<)<)>?	TJL00;;cAAET'')1133E||E""	KKM!!#AB'<88O||~ 	<<>&&( ,T\\^-@-@-B CI ,T\\^-@-@-B CI * 4 4Y ?TM)C//<<?"	KKM!!#++C4||A				"4#4#4#67||C#((N++	2245||D!!	DIIK((	TZZ\**	488:??,-3x	488:??,-3x 
r   c                     | j                   j                         }| j                   j                   }| j                  j                  }|j                  ||      S r   )rB   getInputStreamrC   r   )ctxrH   startIdxstopIdxs       r   r   r   S  s?    YY%%'FyyHhhmmG>>(G,,r   c                    d}d}| j                   r| j                  rz| j                   j                         }|d   |d   z
  dz   }| j                   j                  | j                   j                  k(  r^| j                   j                  j
                  t        j                  k(  r-t        | j                   j                  j                        }d}n|dk(  r| j                   j                  j
                  t        j                  k(  r| j                   j                  j                  dk(  r| j                   j                  j
                  t        j                  k(  s1| j                   j                  j
                  t        j                  k(  rXd}| j                   j                  j                  }| j                   j                  j
                  t        j                  k(  r|dd  }|s|rt        j                        }|r| j                  j                  | j                  j                  k(  rW| j                  j                  j
                  t        j                  k(  r&| j                  j                  j                  dk(  r|gS |r| j                  j                  | j                  j                  k(  rW| j                  j                  j
                  t        j                  k(  r&| j                  j                  j                  dk(  r|gS t        | j                        }d }|r |j                  d      rt!        |dd        }n<|r:| j                  j                  j                  dk(  rt!        |t#        d      d        }|rt        j$                  ||      S | j                  rt'        | j                        }n)t        j(                  | j*                  j                        }| j                   rt'        | j                         }n)t        j(                  | j,                  j                        }t        j.                  |dd	      }	|dk(  r|	S t        j0                  ||	d	      S )
NFr   r   T   z\partialr   rg   rd   )loweruppergetSourceIntervalrB   rC   typer   r   get_differential_var_strr   r   r   rE   r   r   r"   rM   r%   r   rP   r   upperdlowerdry   rl   )
r   diff_op
partial_op	lower_itvlower_itv_lenr   
upper_textexpr_topexpr_botinverse_denoms
             r   r   r   ]  s   GJzzdjjJJ002	!!y|3a7JJ

/JJ$$))Z-D-DD*4::+;+;+@+@ACGq TZZ%5%5%:%:j>O>O%O**""'';6::??'':+<+<<jjoo**j.?.??J**//&&Czz##z'8'88!"gj,,s#CDJJ,,

?

((--1B1BB

((--4u!1!1TZZ__!Djj&&++z/@/@@jj&&++{:u"4::.JH:005&z!"~6

 0 0 5 5 D&z#k2B2C'DE''#66zz

+<< 0 01zz

+<< 0 01IIhU;M1}yy=5AAr   c                     t        | j                        }t        | j                        }t        j                  ||d      S r   )rP   nkrE   binomial)r   expr_nexpr_ks      r   r   r     s1    %''"F%''"F>>&&599r   c                 Z    t        | j                        }t        j                  |d      S r   )rP   r   rE   r   )r   r   s     r   r   r     s!    
uyy
!C;;sU++r   c                 Z    t        | j                        }t        j                  |d      S r   )rP   r   rE   ceiling)r   r   s     r   r   r     s!    
txx
 C==u--r   c                 H   | j                         ri| j                         rt        | j                               }nt        | j	                               }| j                         j
                  j                  dd  }|dv r*d|dd  z   } t        t        j                  |      |d      }|dv r*d|dd  z   } t        t        j                  |      |d      }|d	k(  rt        j                  |d      }|d
v r| j                         rn| j                         j                         r(t        | j                         j                               }nDt        | j                         j                               }n|dk(  rd}n|dv rt        j                   }t        j"                  |d      }d }d}| j%                         rm| j%                         j                         r(t        | j%                         j                               }n't        | j%                         j                               }|dv r.|dk(  rd|z   }d} t        t        j                  |      |d      }|r|rt        j&                  |d      }S | j)                         s| j+                         r| j)                         r| j)                         j-                         }n1| j+                         r!| j+                         j-                         dd  }t/              }| j                         r| j                         j                         r(t        | j                         j                               }n't        | j                         j                               }t1               j3                  |      }	|d|	z   dz   z  }| j5                         r!|| j5                         j-                         z  }| j7                         }
g }|
j7                         rI|j9                  t        |
j                                      |
j7                         }
|
j7                         rI|j9                  t        |
j                                       t        j:                  |      | S | j=                         rt?        |       S | jA                         ret        | jB                        }| jD                  r-t        | jD                        }t        jD                  ||d      S t        jF                  |d      S | jI                         r,t        | jB                        }t        jJ                  |d      S | jM                         rtO        | d      S | jQ                         rtO        | d      S | jS                         rtU        |       S y )Nr   )arcsinarccosarctanarccscarcsecarccota   Frd   )arsinharcoshartanhr   r   )loglglnr  r    )r  r  T)	sincostancscseccotsinhcoshtanhrg   r   r   	summationproduct)+func_normalL_PARENconvert_func_argfunc_argfunc_arg_noparensrB   r   getattrrE   	functionsr   r   rL   rP   r   r   Er  supexprry   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   rL   r   func_pow
should_powfnamer   r   
input_argsoutput_argsrs                r   r   r     s[   <<>"4==?3C"4#9#9#;<C!'',,QR0  
 
 ab>D175??D1#FD11ab>D175??D1#FD5=99S51D&&||~<<>&&('(;(;(=>D'(;(;(=>D&ww99S$7D
<<>||~""$'(;(;(=>'(;(;(=> 
 
 2~Tz"
175??D1#FD
99T8e<D	$++-;;=KKM))+E[[]KKM))+AB/EE
<<>||~""$()<)<)>?	()<)<)>?	&L00;MTM)C//ET'')1133EYY[
oo|JOO,=>?#*J oo 	<
(9:;$u~~e$k22	t$$		DII&99TYY'A::dA66::dU33				DII&te44	!$44		!$	22	D!! 
r   c                 ~    t        | d      rt        | j                               S t        | j	                               S )NrL   )rk   rP   rL   rm   rr   )r8  s    r   r"  r"    s.    sFCHHJ''#--/**r   c                    | j                         rt        | j                               }n,| j                         rt        | j                               }nd}d }| j	                         rt        | j	                               }n|j                  t        j                        D ]`  }t        |      }t        |      dkD  s|d   dk(  s&|d   dk(  rt        j                  |dd        }nt        j                  |dd        }|}b |r|j                  d      }nt        j                  d      }| j                         r| j                         j                         r(t        | j                         j                               }n't        | j                         j!                               }| j#                         j                         r(t        | j#                         j                               }n't        | j#                         j!                               }t        j$                  ||||f      S t        j$                  ||      S )Nr   r   r   \r   r   )rb   ra   r   r   r   r   r   rE   r   r   r%   r   r   r   r   rP   rL   r(  Integral)r   	integrandint_varr   r   int_symr   r   s           r   r-  r-    s   }}0		 -		G&t'8'8':;??5<<0 	CCA1vzadckQ44<#ll1QR51G#ll1QR51G	 !w2I ll3'G||~<<>  !4!4!67E !4!4!67E<<>  !4!4!67E !4!4!67E~~i'5%)@AA~~i11r   c                 `   t        | j                               }t        | j                         j	                         j                  d            }t        | j                         j	                         j                  d            }| j                         j                         r(t        | j                         j                               }n't        | j                         j                               }|dk(  rt        j                  ||||f      S |dk(  rt        j                  ||||f      S y )Nr   r   r  r  )rm   rn   rP   subeqr   rL   r(  r   r   rE   SumProduct)r   r   r   iter_varrB   ends         r   r4  r4  .  s    
TWWY
CDJJL11388;<H..055a89E||~4<<>..014<<>..01{yyx455		}}S8UC"899 
r   c                 >   | j                         }|j                         r2t        j                  |j                         j	                               }nZ|j                         r5t        j                  |j                         j	                         dd        }nt        j                  d      }|j                         rd}n|j                         rd}nd}t        |j                               }t        | j                               }t        j                  ||||      S )Nr   r   -+z+-)	limit_subr   rE   r   r   r   rj   rh   rP   rL   rm   rn   Limit)r   subr   	directionapproachingcontents         r   r7  r7  =  s    
..
C
zz|ll3::<//12	ll3::<//1!"56ll3
wwy				sxxz*K#G;;w[)<<r   c                 ^    t        | j                               }t        j                  |      S r   )r   r   rE   r   )r   r   s     r   r   r   Q  s!    #AIIK0D<<r   c                     t        dt        |             D ]"  }| |   }|dk(  r|dk(  r|dk(  r|dk(  r |} n | d  } | d   dk(  r| dd  } | S )Nr   r!   
	r   rA  )ranger%   )r   r1   cidxs       r   r   r   V  sn    1c$i  GSAIda4iC	
 :DAw$ABxKr   )F)r   ))importlib.metadatar   rE   sympy.externalr   sympy.printing.strr   sympy.physics.quantum.stater   r   errorsr	   r   r   r   	Exceptionr   rM   rD   rP   ra   rm   rz   r   r   r   r   r   r   r   r   r   r   r   r   r"  r-  r4  r7  r   r    r   r   <module>rd     s9   '  ( ) 0 % 04 3 3j,	 H/9M?.KMMX[ F.8<.-IKKU: 
 :15-7/9J,K  )M77 )<@ (($4.-,/B!<3,),^-2Bh:
,.^"B+%2P:=(
	E  		s   .C
 
CC