+
    id                         ^ RI t ^ RIt^ RIHt ^ RIHt ]! R4      t]'       d   ^ RIHtHtH	t	 M ! R R4      t ! R R	4      t ! R
 R4      t	 ! R R]4      t
R# )    N)import_module)LaTeXParsingErrorlark)TransformerTokenTreec                   &   a  ] tR t^t o R tRtV tR# )r   c                    R # N )selfargss   &*b/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/parsing/latex/lark/transformer.py	transformTransformer.transform   s        r   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   r   r      s     	 	r   r   c                       ] tR t^tRtR# )r   r   Nr   r   r   r   r   r   r   r   r   r          r   r   c                       ] tR t^tRtR# )r   r   Nr   r   r   r   r   r      r   r   r   c                     a  ] tR t^t o Rt]P                  t]P                  P                  P                  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 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& t0R' t1R( t2R) t3R* t4R+ t5R, t6R- t7R. t8R/ t9R0 t:R1 t;R2 t<R3 t=R4 t>R5 t?R6 t@R7 tAR8 tBR9 tCR: tDR; tER< tFR= tGR> tHR? tIR@ tJRA tKRB tLRC tMRD tNRE tORF tPRG tQRH tRRI tSRJ tTRK tURL tVRM tWRN tXRO tYRP tZV 3RQ lRR lt[RS t\RT t]RU t^RV t_RW t`RX taRYtbV tcRZ# )[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                "    \         P                  # r   )sympyoor   tokenss   &&r   	CMD_INFTYTransformToSymPyExpr.CMD_INFTY5   s    xxr   c                l    \         P                  ! R RVR,          4      p\        P                  ! V4      # )var    NN)resubr"   Symbol)r   r%   variable_names   && r   GREEK_SYMBOL_WITH_PRIMES-TransformToSymPyExpr.GREEK_SYMBOL_WITH_PRIMES8   s)     ub&*5||M**r   c                    VP                   P                  R 4      w  r#VP                  R4      '       d"   \        P                  ! V: RV^R : R24      # \        P                  ! V: RV: R24      # )_{_{})valuesplit
startswithr"   r/   )r   r%   baser.   s   &&  r   !LATIN_SYMBOL_WITH_LATIN_SUBSCRIPT6TransformToSymPyExpr.LATIN_SYMBOL_WITH_LATIN_SUBSCRIPT?   sU    LL&&s+	>>#<<T3q9 =>><<T3 788r   c                &   VP                   P                  R 4      w  r#\        P                  ! RRVR,          4      pVP	                  R4      '       d"   \
        P                  ! V: RV^R : R24      # \
        P                  ! V: RV: R24      # r4   r)   r*   r+   r5   r6   r7   r8   r9   r:   r-   r.   r;   r"   r/   r   r%   r<   r.   greek_letters   &&   r   !GREEK_SYMBOL_WITH_LATIN_SUBSCRIPT6TransformToSymPyExpr.GREEK_SYMBOL_WITH_LATIN_SUBSCRIPTF   sk    LL&&s+	vveRb2>>#<<\3q9 EFF<<\3 ?@@r   c                    VP                   P                  R 4      w  r#VP                  R4      '       d   V^R pM	VR,          p\        P                  ! RRV4      p\
        P                  ! V: RV: R24      # )r4   r5   r+   r)   r*   r6   r7   r8   )r9   r:   r;   r-   r.   r"   r/   rB   s   &&   r   !LATIN_SYMBOL_WITH_GREEK_SUBSCRIPT6TransformToSymPyExpr.LATIN_SYMBOL_WITH_GREEK_SUBSCRIPTO   sa    LL&&s+	>>#q9Lr7LvveR6|||<==r   c                2   VP                   P                  R 4      w  r#\        P                  ! RRVR,          4      pVP	                  R4      '       d   V^R pM	VR,          p\        P                  ! RRV4      p\
        P                  ! V: RV: R24      # r@   rA   )r   r%   r<   r.   
greek_base	greek_subs   &&    r   !GREEK_SYMBOL_WITH_GREEK_SUBSCRIPT6TransformToSymPyExpr.GREEK_SYMBOL_WITH_GREEK_SUBSCRIPTZ   sw    LL&&s+	VVE2tBx0
>>#Ab	IBIFF5"i0	||Y?@@r   c                    \        V4      ^8X  d   \        P                  ! V^,          4      # \        V4      ^8X  d,   \        P                  ! V^,          V^,          ,           4      # R# )   N)lenr"   r/   r$   s   &&r   multi_letter_symbol(TransformToSymPyExpr.multi_letter_symbolf   sN    v;!<<q	**v;!<<q	F1I 566 r   c                .   V^ ,          P                   R8X  d   \        P                  # RV^ ,          9   d1   \        P                  P                  P                  V^ ,          4      # \        P                  P                  P                  V^ ,          4      # )r   CMD_IMAGINARY_UNIT.)typer"   IcorenumbersFloatIntegerr$   s   &&r   numberTransformToSymPyExpr.numberl   sf    !9>>1177N&)::%%++F1I66::%%--fQi88r   c                    V^ ,          # r   r   r$   s   &&r   latex_string!TransformToSymPyExpr.latex_stringu       ayr   c                    V^,          # r,   r   r$   s   &&r   group_round_parentheses,TransformToSymPyExpr.group_round_parenthesesx   rb   r   c                    V^,          # rd   r   r$   s   &&r   group_square_brackets*TransformToSymPyExpr.group_square_brackets{   rb   r   c                    V^,          # rd   r   r$   s   &&r   group_curly_parentheses,TransformToSymPyExpr.group_curly_parentheses~   rb   r   c                L    \         P                  ! V^ ,          V^,          4      # r_   )r"   Eqr$   s   &&r   eqTransformToSymPyExpr.eq       xxq	6!9--r   c                L    \         P                  ! V^ ,          V^,          4      # r_   )r"   Ner$   s   &&r   neTransformToSymPyExpr.ne   rq   r   c                L    \         P                  ! V^ ,          V^,          4      # r_   )r"   Ltr$   s   &&r   ltTransformToSymPyExpr.lt   rq   r   c                L    \         P                  ! V^ ,          V^,          4      # r_   )r"   Ler$   s   &&r   lteTransformToSymPyExpr.lte   rq   r   c                L    \         P                  ! V^ ,          V^,          4      # r_   )r"   Gtr$   s   &&r   gtTransformToSymPyExpr.gt   rq   r   c                L    \         P                  ! V^ ,          V^,          4      # r_   )r"   Ger$   s   &&r   gteTransformToSymPyExpr.gte   rq   r   c                0   \        V4      ^8X  d
   V^,          # \        V4      ^8X  dm   V^ ,          pV^,          pV P                  V4      '       g   V P                  V4      '       d   \        P                  ! W#4      # \        P                  ! W#4      # R#    N)rP   _obj_is_sympy_Matrixr"   MatAddAddr   r%   lhrhs   &&  r   addTransformToSymPyExpr.add   sz    v;!!9v;!BB((,,0I0I"0M0M||B++99R$$ r   c                   \        V4      ^8X  d;   V^,          pV P                  V4      '       d   \        P                  ! RV4      # V) # \        V4      ^8X  d   V^ ,          pV^,          pV P                  V4      '       g   V P                  V4      '       d-   \        P                  ! V\        P                  ! RV4      4      # \        P
                  ! W4) 4      # R# )r   Nr8   )rP   r   r"   MatMulr   r   )r   r%   xr   r   s   &&   r   r.   TransformToSymPyExpr.sub   s    v;!q	A((++||B**2Iv;!BB((,,0I0I"0M0M||BR(<==99R%% r   c                    V^ ,          pV^,          pV P                  V4      '       g   V P                  V4      '       d   \        P                  ! W#4      # \        P                  ! W#4      # r_   )r   r"   r   Mulr   s   &&  r   mulTransformToSymPyExpr.mul   sS    AYAY$$R((D,E,Eb,I,I<<''yy  r   c                B    V P                  V^ ,          V^,          4      # r_   )_handle_divisionr$   s   &&r   divTransformToSymPyExpr.div   s    $$VAYq	::r   c                   ^ RI HpHp \        V^ ,          V4      '       d7   \        V^,          V4      '       d   ^ RI Hp V! V^ ,          V^,          4      # V^ ,          \
        P                  ! R4      8X  d   V^ ,          V^,          3# \        V^ ,          \        4      '       d-   \
        P                  ! V^,          V^ ,          ^,          4      # \
        P                  ! V^ ,          V^,          4      # )r   )BraKet)OuterProductd)
sympy.physics.quantumr   r   
isinstancer   r"   r/   tuple
Derivativer   )r   r%   r   r   r   s   &&   r   adjacent_expressions)TransformToSymPyExpr.adjacent_expressions   s     	3fQi%%*VAY*D*D:q	6!955AY%,,s++!9fQi''q	5))##F1Ivay|<<99VAYq	22r   c                   R  pR pR pR pV^ ,          p\        V4      ^8X  d
   V^,          p\        V4      ^8X  d
   V^,          pV P                  V4      '       Ed   X\        P                  ! R4      8X  d   \        P                  ! V4      # V\        P                  ! R4      8X  d   \        P
                  ! V4      # V! V4      '       d<   VP                  p\        V4      ^,          ^ 8X  d   V# \        P                  ! V4      # V! V4      '       dL   VP                  p\        V4      \        R4      ,          ^,          ^ 8X  d   V# \        P                  ! V4      # V! V4      '       dJ   VP                  p\        V4      ^,          ^ 8X  d   VP                  4       # \        P
                  ! V4      # V! V4      '       dZ   VP                  p\        V4      \        R4      ,          ^,          ^ 8X  d   VP                  4       # \        P
                  ! V4      # V! X4      '       g+   V! V4      '       g   V! V4      '       g   V! V4      '       d   \        V RV R	24      h\        P                  ! Wg4      # )
c                 P    \        V \        4      ;'       d    V P                  R 8H  # )PRIMESr   r   rV   r   s   &r   isprime1TransformToSymPyExpr.superscript.<locals>.isprime   s     a'>>AFFh,>>r   c                 ~    \        V \        4      ;'       d'    V P                  R 8H  ;'       g    V P                  R8H  # )PRIMES_VIA_CMD	CMD_PRIMEr   r   s   &r   
iscmdprime4TransformToSymPyExpr.superscript.<locals>.iscmdprime   sB    a' G GQVV7G-G .F .F01+0EGr   c                 P    \        V \        4      ;'       d    V P                  R 8H  # )STARSr   r   s   &r   isstar0TransformToSymPyExpr.superscript.<locals>.isstar   s     a'==AFFg,==r   c                 ~    \        V \        4      ;'       d'    V P                  R 8H  ;'       g    V P                  R8H  # )STARS_VIA_CMDCMD_ASTERISKr   r   s   &r   	iscmdstar3TransformToSymPyExpr.superscript.<locals>.iscmdstar   sA    a' J JQVV-F .I .I01.0HJr   THz\primez\astz with superscript  is not understood.)
rP   r   r"   r/   	Transposeadjointr9   doitr   Pow)r   r%   r   r   r   r   r<   sups   &&      r   superscript TransformToSymPyExpr.superscript   s   	?	G	>	J ayv;!)Cv;!
 )C$$T**ell3''t,,ell3''}}T**s||iis8a<1$Kt,,#iiHS^+q0A5Kt,,c{{ii s8a<1$99;&}}T**~~iiHS\)Q.!399;&}}T**3<<:c??fSkkYs^^#tf,>seCV$WXXyy##r   c                    V^ ,          pV^,          P                   pV P                  V4      '       g   \        RV RV R24      h\        V4      ^,          ^ 8X  d   V# \        P
                  ! V4      # )r   ()r   )r9   r   r   rP   r"   r   r   r%   r<   primess   &&  r   matrix_prime!TransformToSymPyExpr.matrix_prime  sh    ay((..#avQvh6I$JKKv;?aKt$$r   c                    V^ ,          pV^,          P                   p\        P                  ! VP                   V 24      # r_   )r9   r"   r/   namer   s   &&  r   symbol_prime!TransformToSymPyExpr.symbol_prime  s4    ay||tyyk&233r   c                    V^,          p\        V^,          \        4      '       d   V^,          w  r4RV3# V^,          pV P                  W%4      # )r,   
derivative)r   r   r   )r   r%   	numeratorr4   variabledenominators   &&    r   fractionTransformToSymPyExpr.fraction  sN    1I	fQi'' )KA  )) )K((@@r   c                L    \         P                  ! V^,          V^,          4      # rd   )r"   binomialr$   s   &&r   r   TransformToSymPyExpr.binomial&  s    ~~fQi33r   c                   R pR pRV9   d   VP                  R4      pRV9   d   VP                  R4      pV'       d   W^,           ,          MR pV'       d   W^,           ,          MR pV P                  V4      pVf   \        R4      hVP                  V4      ^,           pW,          pVe   Vf   \        R4      hVe   Vf   \        R4      hVe   W'^,
          8X  d   ^p	M-Ve   W7^,
          8X  d   ^p	MV^8X  d   ^p	MW^,
          ,          p	Ve   \        P                  ! WWE34      # \        P                  ! W4      # )Nr4   ^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.)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_integral$TransformToSymPyExpr.normal_integral)  sW   &=  &||C0&= !,,s+K6Ff12D1<f1_-$"??G&# %n o o '-ll3F&G!&K# & C "{':#$lmm"{':#$lmm ',<^_@_,_ I$VW8W)W I(A- I Q>?I"
 >>)[-^__ >>)CCr   c                    \        V4      ^8X  d   ^V^,          3# \        V4      ^8X  d   V^,          V^,          3# R# )   N)rP   r$   s   &&r   group_curly_parentheses_int0TransformToSymPyExpr.group_curly_parentheses_intl  sB     v;!fQi<[A!9fQi'' r   c                    V^,          w  r#V^,          p\         P                  ! V\         P                  ! VR4      4      V3# r,   r8   )r"   r   r   )r   r%   r   r   r   s   &&   r   special_fraction%TransformToSymPyExpr.special_fractionu  s:    $Qi	Qi yyEIIk2$>?IIr   c                   R pR pRV9   d   VP                  R4      pRV9   d   VP                  R4      pV'       d   W^,           ,          MR pV'       d   W^,           ,          MR pVe   Vf   \        R4      hVe   Vf   \        R4      hVR,          w  rgVe   \        P                  ! WgWE34      # \        P                  ! Wg4      # )Nr4   r   r   r   r8   )r   r   r"   r   )r   r%   r   r   r   r   r   r   s   &&      r   integral_with_special_fraction3TransformToSymPyExpr.integral_with_special_fraction|  s    &=  &||C0&= !,,s+K6Ff12D1<f1_-$ "{':#$lmm"{':#$lmm+1":(	"
 >>)[-^__ >>)CCr   c                    VP                  R 4      pVP                  R4      pVP                  RV4      pVP                  RV4      pW^,           V pW^,           R pV^ ,          pVR,          p	V^ ,          p
WV
3# )r4   r   r5   r7   Nr8   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_special4TransformToSymPyExpr.group_curly_parentheses_special  s    !<<,ll3' "<<-=>"LL.>?24EF ?+,	 &a"2&l K77r   c                L    \         P                  ! V^,          V^,          4      # r   )r"   Sumr$   s   &&r   	summationTransformToSymPyExpr.summation  s    yyF1I..r   c                L    \         P                  ! V^,          V^,          4      # r  )r"   Productr$   s   &&r   productTransformToSymPyExpr.product  s    }}VAYq	22r   c                    VP                  R 4      pRV9   d#   VP                  RV4      pW^,           ,          pMW^,           ,          pVR8X  d   V^ ,          R3# VR8X  d   V^ ,          R3# V^ ,          R3# )r   r5   +-+-r   )r   r%   r   left_curly_brace_index	directions   &&   r   limit_dir_expr#TransformToSymPyExpr.limit_dir_expr  s{    ll3'&=%+\\#{%C"9:IQ/I!9c>!#!9c>!!9d?"r   c                    V^,          p\        V^,          \        4      '       d   V^,          w  r4MV^,          pRpW#V3# )r,   r  )r   r   r   r%   limit_variabledestinationr  s   &&   r   group_curly_parentheses_lim0TransformToSymPyExpr.group_curly_parentheses_lim  sC    fQi''%+AY"K )KII55r   c                X    V^,          w  r#p\         P                  ! VR,          W#V4      # r   r8   )r"   Limitr  s   &&   r   limitTransformToSymPyExpr.limit  s'    17.Y{{6":~INNr   c                    V^,          # rd   r   r$   s   &&r   differential!TransformToSymPyExpr.differential  rb   r   c                L    \         P                  ! VR,          V^,          4      # r   )r"   r   r$   s   &&r   r   TransformToSymPyExpr.derivative  s    r
F1I66r   c                B    \        V4      ^8X  d   V# R p\        W!4      # )r,   c                 n    \        V \        4      '       d   V P                  R 8w  d   \        R4      hR# R# )COMMAzAA comma token was expected, but some other token was encountered.FT)r   r   rV   r   )r   s   &r   remove_tokens?TransformToSymPyExpr.list_of_expressions.<locals>.remove_tokens  s-    dE**yyG+/0stt r   )rP   filter)r   r%   r'  s   && r   list_of_expressions(TransformToSymPyExpr.list_of_expressions  s'    v;! M -00r   c                R    \         P                  ! V^ ,          4      ! V^,          !  # r_   )r"   Functionr$   s   &&r   function_applied%TransformToSymPyExpr.function_applied  s    ~~fQi(&)44r   c                8    \         P                  ! V^,          !  # r  )r"   Minr$   s   &&r   minTransformToSymPyExpr.min      yy&)$$r   c                8    \         P                  ! V^,          !  # r  )r"   Maxr$   s   &&r   maxTransformToSymPyExpr.max  r4  r   c                ,    ^ RI Hp V! V^,          4      # )r   )r   )r   r   )r   r%   r   s   && r   braTransformToSymPyExpr.bra
      -6!9~r   c                ,    ^ RI Hp V! V^,          4      # )r   )r   )r   r   )r   r%   r   s   && r   ketTransformToSymPyExpr.ket  r<  r   c                \    ^ RI HpHpHp V! V! V^,          4      V! V^,          4      4      # )r   )r   r   InnerProduct)r   r   r   rA  )r   r%   r   r   rA  s   &&   r   inner_product"TransformToSymPyExpr.inner_product  s%    @@Cq	NCq	N;;r   c                <    \         P                  ! V^,          4      # rd   )r"   sinr$   s   &&r   rE  TransformToSymPyExpr.sin      yy##r   c                <    \         P                  ! V^,          4      # rd   )r"   cosr$   s   &&r   rI  TransformToSymPyExpr.cos  rG  r   c                <    \         P                  ! V^,          4      # rd   )r"   tanr$   s   &&r   rL  TransformToSymPyExpr.tan  rG  r   c                <    \         P                  ! V^,          4      # rd   )r"   cscr$   s   &&r   rO  TransformToSymPyExpr.csc  rG  r   c                <    \         P                  ! V^,          4      # rd   )r"   secr$   s   &&r   rR  TransformToSymPyExpr.sec"  rG  r   c                <    \         P                  ! V^,          4      # rd   )r"   cotr$   s   &&r   rU  TransformToSymPyExpr.cot%  rG  r   c                    V^,          pVR8X  d   \         P                  ! VR,          4      # \         P                  ! \         P                  ! VR,          4      V4      # r  )r"   asinr   rE  r   r%   exponents   && r   	sin_powerTransformToSymPyExpr.sin_power(  C    !9r>::fRj))99UYYvbz2H==r   c                    V^,          pVR8X  d   \         P                  ! VR,          4      # \         P                  ! \         P                  ! VR,          4      V4      # r  )r"   acosr   rI  rY  s   && r   	cos_powerTransformToSymPyExpr.cos_power/  r]  r   c                    V^,          pVR8X  d   \         P                  ! VR,          4      # \         P                  ! \         P                  ! VR,          4      V4      # r  )r"   atanr   rL  rY  s   && r   	tan_powerTransformToSymPyExpr.tan_power6  r]  r   c                    V^,          pVR8X  d   \         P                  ! VR,          4      # \         P                  ! \         P                  ! VR,          4      V4      # r  )r"   acscr   rO  rY  s   && r   	csc_powerTransformToSymPyExpr.csc_power=  r]  r   c                    V^,          pVR8X  d   \         P                  ! VR,          4      # \         P                  ! \         P                  ! VR,          4      V4      # r  )r"   asecr   rR  rY  s   && r   	sec_powerTransformToSymPyExpr.sec_powerD  r]  r   c                    V^,          pVR8X  d   \         P                  ! VR,          4      # \         P                  ! \         P                  ! VR,          4      V4      # r  )r"   acotr   rU  rY  s   && r   	cot_powerTransformToSymPyExpr.cot_powerK  r]  r   c                <    \         P                  ! V^,          4      # rd   )r"   rX  r$   s   &&r   arcsinTransformToSymPyExpr.arcsinR      zz&)$$r   c                <    \         P                  ! V^,          4      # rd   )r"   r_  r$   s   &&r   arccosTransformToSymPyExpr.arccosU  ru  r   c                <    \         P                  ! V^,          4      # rd   )r"   rc  r$   s   &&r   arctanTransformToSymPyExpr.arctanX  ru  r   c                <    \         P                  ! V^,          4      # rd   )r"   rg  r$   s   &&r   arccscTransformToSymPyExpr.arccsc[  ru  r   c                <    \         P                  ! V^,          4      # rd   )r"   rk  r$   s   &&r   arcsecTransformToSymPyExpr.arcsec^  ru  r   c                <    \         P                  ! V^,          4      # rd   )r"   ro  r$   s   &&r   arccotTransformToSymPyExpr.arccota  ru  r   c                <    \         P                  ! V^,          4      # rd   )r"   sinhr$   s   &&r   r  TransformToSymPyExpr.sinhd  ru  r   c                <    \         P                  ! V^,          4      # rd   )r"   coshr$   s   &&r   r  TransformToSymPyExpr.coshg  ru  r   c                <    \         P                  ! V^,          4      # rd   )r"   tanhr$   s   &&r   r  TransformToSymPyExpr.tanhj  ru  r   c                <    \         P                  ! V^,          4      # rd   )r"   asinhr$   s   &&r   r  TransformToSymPyExpr.asinhm      {{6!9%%r   c                <    \         P                  ! V^,          4      # rd   )r"   acoshr$   s   &&r   r  TransformToSymPyExpr.acoshp  r  r   c                <    \         P                  ! V^,          4      # rd   )r"   atanhr$   s   &&r   r  TransformToSymPyExpr.atanhs  r  r   c                <    \         P                  ! V^,          4      # rd   )r"   Absr$   s   &&r   absTransformToSymPyExpr.absv  rG  r   c                <    \         P                  ! V^,          4      # rd   )r"   floorr$   s   &&r   r  TransformToSymPyExpr.floory  r  r   c                <    \         P                  ! V^,          4      # rd   )r"   ceilingr$   s   &&r   ceilTransformToSymPyExpr.ceil|  s    }}VAY''r   c                <    \         P                  ! V^ ,          4      # r_   )r"   	factorialr$   s   &&r   r  TransformToSymPyExpr.factorial      vay))r   c                <    \         P                  ! V^,          4      # rd   )r"   	conjugater$   s   &&r   r  TransformToSymPyExpr.conjugate  r  r   c                    \        V4      ^8X  d   \        P                  ! V^,          4      # \        V4      ^8X  d&   \        P                  ! V^,          V^,          4      # R# r   )rP   r"   sqrtrootr$   s   &&r   square_root TransformToSymPyExpr.square_root  sK    v;!::fQi(([A::fQi33 r   c                <    \         P                  ! V^,          4      # rd   )r"   expr$   s   &&r   exponential TransformToSymPyExpr.exponential  rG  r   c                   V^ ,          P                   R8X  d   \        P                  ! V^,          ^
4      # V^ ,          P                   R8X  d   \        P                  ! V^,          4      # V^ ,          P                   R8X  dJ   RV9   d&   \        P                  ! V^,          V^,          4      # \        P                  ! V^,          4      # R# )r   FUNC_LGFUNC_LNFUNC_LOGr4   N)rV   r"   logr$   s   &&r   r  TransformToSymPyExpr.log  s    !9>>Y& 99VAY++AY^^y(99VAY''AY^^z)f}yyF1I66 yy++ *r   c                    < V ^8  d   QhRS[ /# )r   s)str)formatr   s   "r   __annotate__!TransformToSymPyExpr.__annotate__  s     # #c #r   c                <   a 0 Rmp\        V3R lV 4       R4      pV# )r   c              3   8   <"   T F  qS9   g   K  Vx  K  	  R # 5ir   r   ).0symbolr  s   & r   	<genexpr>DTransformToSymPyExpr._extract_differential_symbol.<locals>.<genexpr>  s     #]9Mv[\Q\FF9Ms   
N>   r   \text{d}
\mathrm{d})next)r   r  differential_symbolsr   s   &f  r   r   1TransformToSymPyExpr._extract_differential_symbol  s$    @"#]9M#]_cd""r   c                
   R  pR pV^,          P                   p\        P                  ! V UUu. uF=  qR! V4      '       g   K  VP                    Uu. uF  qc! V4      '       g   K  VNK  	  upNK?  	  upp4      # u upi u uppi )c                 P    \        V \        4      ;'       d    V P                  R 8H  # )
matrix_row)r   r   datar   s   &r   is_matrix_row2TransformToSymPyExpr.matrix.<locals>.is_matrix_row  s     q$'BBAFFl,BCr   c                 Z    \        V \        4      '       * ;'       g    V P                  R 8g  # )MATRIX_COL_DELIMr   )ys   &r   is_not_col_delim5TransformToSymPyExpr.matrix.<locals>.is_not_col_delim  s$    "1e,,LL:L0LMr   )childrenr"   Matrix)r   r%   r  r  matrix_bodyr   r  s   &&     r   matrixTransformToSymPyExpr.matrix  s    	D	N Qi((||&1G&1]15E LKA7G7JaaK&1G H 	HK Gs#   A?
A?
A:%A:+A?
:A?
c                   \        V4      ^8X  dA   V P                  V^,          4      '       g   \        R4      hV^,          P                  4       # \        V4      ^8X  d    V P	                  V4      P                  4       # R# )r   z&Cannot take determinant of non-matrix.N)rP   r   r   detr  r$   s   &&r   determinant TransformToSymPyExpr.determinant  sh    v;!,,VAY77'(PQQ!9==?"v;!;;v&**,, r   c                    V P                  V^,          4      '       g   \        R4      h\        P                  ! V^,          4      # )r,   z Cannot take trace of non-matrix.)r   r   r"   Tracer$   s   &&r   traceTransformToSymPyExpr.trace  s6    ((33#$FGG{{6!9%%r   c                    V P                  V^,          4      '       g   \        R4      hV^,          P                  4       P                  4       # )r,   z#Cannot take adjugate of non-matrix.)r   r   r   adjugater$   s   &&r   r  TransformToSymPyExpr.adjugate  s?    ((33#$IJJ ay~~((**r   c                r    \        VR 4      '       d   VP                  # \        V\        P                  4      # )	is_Matrix)hasattrr  r   r"   r  )r   objs   &&r   r   )TransformToSymPyExpr._obj_is_sympy_Matrix  s*    3$$== #u||,,r   c                $   V P                  V4      '       d   \        R 4      hV P                  V4      '       d-   \        P                  ! V\        P                  ! VR4      4      # \        P
                  ! V\        P                  ! VR4      4      # )zCannot 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.r8   )r   r   r"   r   r   r   )r   r   r   s   &&&r   r   %TransformToSymPyExpr._handle_division  ss    $$[11# %J K K
 $$Y//<<	599["+EFFyyEIIk2$>??r   r   N)dr   r   r   r   __doc__r"   r/   SYMBOLrX   rY   r[   DIGITr&   r1   r=   rD   rG   rL   rQ   r\   r`   re   rh   rk   ro   rt   rx   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.  r2  r7  r:  r>  rB  rE  rI  rL  rO  rR  rU  r[  r`  rd  rh  rl  rp  rs  rw  rz  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   s   @r   r    r       s    . \\FJJ&&E+9A>
A79......
%&"!;3 :$x
%4
A4ADF(J%DN!8F/3# 6O
71 5%%<$$$$$$>>>>>>%%%%%%%%%&&&$&(**4$,"# #	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   