Ë
    7^(h.  ã                   ót  — d dl mZ d dl mZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ g d
¢Z G d„ de«      Z G d„ de«      Z G d„ de	«      Z G d„ de«      Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej:                  j=                  d«      d    Zej:                  jA                  e«      e_        y)é    )Ú
Derivative)ÚUndefinedFunctionÚAppliedUndef)ÚSymbol)Úinit_printing)ÚLatexPrinter)ÚPrettyPrinter)Úcenter_accent)Ú
StrPrinter)Ú
PRECEDENCE)ÚvprintÚ	vsstrreprÚvsprintÚvpprintÚvlatexÚinit_vprintingc                   ó   — e Zd ZdZd„ Zd„ Zy)ÚVectorStrPrinterz'String Printer for vector expressions. c                 ó–  ‡— ddl m} |j                  Št        t	        ˆfd„|j
                  D «       «      «      t        t        |j                  d   «      t        «      z  rPt        |j                  d   j                  «      }t        |j
                  «      D ]  \  }}||j                  z  }Œ |S t        «       j                  |«      S )Nr   ©Údynamicsymbolsc              3   ó(   •K  — | ]	  }|‰k(  –— Œ y ­w©N© ©Ú.0ÚiÚts     €ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/vector/printing.pyú	<genexpr>z5VectorStrPrinter._print_Derivative.<locals>.<genexpr>   s   øè ø€ Ò1 �Q˜!•VÑ1ùó   ƒ)Úsympy.physics.vector.functionsr   Ú_tÚboolÚsumÚ	variablesÚ
isinstanceÚtypeÚargsr   ÚstrÚfuncÚ	enumerateÚ_strr   Údoprint)ÚselfÚer   Úolr   Úvr   s         @r   Ú_print_Derivativez"VectorStrPrinter._print_Derivative   sž   ø€ ÝAØ×ÑˆÜ”Ó1 Q§[¡[Ô1Ó1Ó2Üœ4 §¡ q¡	›?Ô,=Ó>ò?ä�Q—V‘V˜A‘Y—^‘^Ó$ˆBÜ! !§+¡+Ó.ò *‘��1Ø�n×)Ñ)Ñ)‘ð*àˆIä“<×'Ñ'¨Ó*Ð*ó    c                 ó  — ddl m} |j                  }t        t	        |«      t
        «      r,t        «       j                  |«      j                  d|z  d«      S |j                  j                  d| j                  |j                  d«      z  z   S )Nr   r   z(%s)Ú z, )r"   r   r#   r'   r(   r   r   r.   Úreplacer+   Ú__name__Ú	stringifyr)   )r/   r0   r   r   s       r   Ú_print_Functionz VectorStrPrinter._print_Function   sj   € ÝAØ×ÑˆÜ”d˜1“gÔ0Ô1Ü“<×'Ñ'¨Ó*×2Ñ2°6¸A±:¸rÓBÐBØ�v‰v�‰ ¨$¯.©.¸¿¹ÀÓ*FÑ!FÑFÐFr4   N)r8   Ú
__module__Ú__qualname__Ú__doc__r3   r:   r   r4   r   r   r      s   „ Ù1ò
+óGr4   r   c                   ó   — e Zd ZdZd„ Zy)ÚVectorStrReprPrinterz+String repr printer for vector expressions.c                 ó   — t        |«      S r   )Úrepr)r/   Úss     r   Ú
_print_strzVectorStrReprPrinter._print_str(   s   € Ü�A‹wˆr4   N)r8   r;   r<   r=   rC   r   r4   r   r?   r?   &   s
   „ Ù5ór4   r?   c                   ó.   ‡ — e Zd ZdZdˆ fd„	Zˆ fd„Zˆ xZS )ÚVectorLatexPrinterz&Latex Printer for vector expressions. c                 óÞ  •— ddl m} |j                  j                  }|j                  }t        | d|z   «      r/t        t        |«      t        «      s t        | d|z   «      ||«      S t        t        |«      t        «      r^|j                  |fk(  rNt        |«      }|�2| j                  |t        d   «      }| j                  |«      }|›d|›d�S t        ‰| �A  |«      S t        ‰| �E  ||«      S )Nr   r   Ú_print_ÚPowz^{ú})r"   r   r+   r8   r#   Úhasattrr'   r(   r   Úgetattrr)   r   Úparenthesizer   Úparenthesize_superÚsuperÚ_printr:   )r/   ÚexprÚexpr   r+   r   ÚbaseÚ	__class__s          €r   r:   z"VectorLatexPrinter._print_Function/   sØ   ø€ ÝAØ�y‰y×!Ñ!ˆØ×Ñˆä�D˜) dÑ*Ô+Ü”t˜D“zÔ#4Ô5Ø2”7˜4 ¨TÑ!1Ó2°4¸Ó=Ð=Üœ˜T›
Ô$5Ô6¸D¿I¹IÈ!ÈÒ<Mä˜$“<ˆDØˆð ×(Ñ(¨¬z¸%Ñ/@ÓA�Ø×.Ñ.¨tÓ4�Ú%)ª3Ð/Ð/ä‘w‘~ dÓ+Ð+ä‘7Ñ*¨4°Ó5Ð5r4   c                 óx  •‡— ddl m} |j                  «       }t        |t        «      sd| j                  |«      z  S |j                  Š|j                  }|j                  t        «      }|j                  }t        ˆfd„|D «       «       }t        ˆfd„|D «       «       }|s|rt        ‰| �5  |«      S t        |«      }| j                  |«      }	|	j!                  dd«      }
|
d   }	|dk(  rd|	z  }	n0|d	k(  rd
|	z  }	n%|dk(  rd|	z  }	n|dk(  rd|	z  }	nt        ‰| �5  |«      S t        |
«      dk7  r|	d|
d   z   z  }	|	S )Nr   r   z\left(%s\right)c              3   óD   •K  — | ]  }|j                   ‰hk(  sŒd –— Œ y­w)TN)Úfree_symbolsr   s     €r   r    z7VectorLatexPrinter._print_Derivative.<locals>.<genexpr>Q   s   øè ø€ ÒC ¨Q¯^©^À¸sÓ-BœÑCùs   ƒ ™ c              3   ó(   •K  — | ]	  }‰|k(  –— Œ y ­wr   r   r   s     €r   r    z7VectorLatexPrinter._print_Derivative.<locals>.<genexpr>R   s   øè ø€ Ò- 1˜˜Q�Ñ-ùr!   Ú_é   z\dot{%s}é   z	\ddot{%s}é   z
\dddot{%s}é   z\ddddot{%s})r"   r   Údoitr'   r   r.   r#   rP   Úatomsr   r&   ÚallrN   r3   Úlenr:   Úsplit)r/   Úder_exprr   rP   ÚredÚsymsÚtest1Útest2ÚdotsrR   Ú
base_splitr   rS   s              @€r   r3   z$VectorLatexPrinter._print_DerivativeE   sE  ù€ ÝAà—=‘=“?ˆÜ˜(¤JÔ/Ø%¨¯©°XÓ(>Ñ>Ð>ð ×ÑˆØ�}‰}ˆØ�j‰jœÓ&ˆØ×!Ñ!ˆÜÓC cÔCÓCÐCˆÜÓ-¨Ô-Ó-Ð-ˆÙ‘EÜ‘7Ñ,¨XÓ6Ð6ô �4‹yˆØ×#Ñ# DÓ)ˆØ—Z‘Z  QÓ'ˆ
Ø˜!‰}ˆØ�1Š9Ø Ñ%‰DØ�QŠYØ $Ñ&‰DØ�QŠYØ  4Ñ'‰DØ�QŠYØ! DÑ(‰Dä‘7Ñ,¨XÓ6Ð6Üˆz‹?˜aÒØ�C˜* Q™-Ñ'Ñ'ˆDØˆr4   r   )r8   r;   r<   r=   r:   r3   Ú__classcell__©rS   s   @r   rE   rE   ,   s   ø„ Ù0õ6÷,"ð "r4   rE   c                   ó,   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zˆ xZS )ÚVectorPrettyPrinterz)Pretty Printer for vectorialexpressions. c                 ó  •— ddl m} |j                  }d}t        t	        |j
                  «      «      }t        |«      dkD  r<|d   |k(  r|j                  «        |dz  }nt        ‰| �%  |«      S t        |«      dkD  rŒ<t        t        |j                  «      t        «      r|j                  j                  |fk(  st        ‰| �%  |«      S | j                  |j                  «      }t        |j                   «      dkD  rt        ‰| �%  |«      S |dk\  rt        ‰| �%  |«      S dddd	d
dœ}|j"                  }| j$                  s-d}	t'        d|«      D ]  }
|	dz  }	Œ	 |d   dxx   |	dz   z  cc<   |S t)        |d   d   ||   «      g|d<   |S )Nr   r   éÿÿÿÿrY   é   r6   u   Ì‡u   Ìˆu   âƒ›u   âƒœ)r   rY   rZ   r[   r\   ú'Úpicturez(t))r"   r   r#   ÚlistÚreversedr&   r`   ÚpoprN   r3   r'   r(   rP   r   r)   r:   rq   Ú__dict__Ú_use_unicodeÚranger
   )r/   Úderivr   r   Údot_ird   Úpformrg   ÚdÚapostrophesr   rS   s              €r   r3   z%VectorPrettyPrinter._print_Derivativem   sŒ  ø€ ÝAà×ÑˆØˆÜ”H˜UŸ_™_Ó-Ó.ˆä�$‹i˜!ŠmØ�B‰x˜1Š}Ø—‘”
Ø˜‘
‘ä‘wÑ0°Ó7Ð7ô �$‹i˜!‹mô œ4 §
¡
Ó+Ô->Ô?Ø—‘—‘ Q DÒ(Ü‘7Ñ,¨UÓ3Ð3à×(Ñ(¨¯©Ó4ˆEô ˆu�}‰}Ó Ò!Ü‘7Ñ,¨UÓ3Ð3ð �AŠ:Ü‘7Ñ,¨UÓ3Ð3ð Ø,Ø,Ø3Ø2ñ	4ˆð �N‰Nˆð × Ò ØˆKÜ˜1˜e“_ò #�Ø˜sÑ"‘ð#àˆi‰L˜‹O˜{¨UÑ2Ñ2‹Oð ˆô *¨!¨I©,°q©/¸4À¹;ÓGÐHˆAˆi‰LØˆr4   c                 óò   •— ddl m} |j                  }|j                  }|j                  }|j
                  }| j                  t        |«      «      }t        |t        «      r||fk(  st        ‰| �-  |«      S |S )Nr   r   )r"   r   r#   r+   r)   r8   Ú_print_Symbolr   r'   r   rN   r:   )	r/   r0   r   r   r+   r)   Ú	func_namerz   rS   s	           €r   r:   z#VectorPrettyPrinter._print_Function�   sk   ø€ ÝAØ×Ñˆà�v‰vˆØ�v‰vˆØ—M‘Mˆ	Ø×"Ñ"¤6¨)Ó#4Ó5ˆô ˜4Ô!2Ô3¸À!ÀºÜ‘7Ñ*¨1Ó-Ð-Øˆr4   )r8   r;   r<   r=   r3   r:   ri   rj   s   @r   rl   rl   j   s   ø„ Ù3ô.÷`ð r4   rl   c                 óT   — t        | fi |¤Ž}ddl}|dk7  r||_        t        |«       yy)aJ  Function for printing of expressions generated in the
    sympy.physics vector package.

    Extends SymPy's StrPrinter, takes the same setting accepted by SymPy's
    :func:`~.sstr`, and is equivalent to ``print(sstr(foo))``.

    Parameters
    ==========

    expr : valid SymPy object
        SymPy expression to print.
    settings : args
        Same as the settings accepted by SymPy's sstr().

    Examples
    ========

    >>> from sympy.physics.vector import vprint, dynamicsymbols
    >>> u1 = dynamicsymbols('u1')
    >>> print(u1)
    u1(t)
    >>> vprint(u1)
    u1

    r   NÚNone)r   ÚbuiltinsrX   Úprint)rP   ÚsettingsÚoutstrr‚   s       r   r   r   ­   s1   € ô6 �TÑ&˜XÑ&€FãØ�&ÒØˆŒ
Üˆf�ð 	r4   c                 ó:   — t        |«      }|j                  | «      S )a  Function for displaying expression representation's with vector
    printing enabled.

    Parameters
    ==========

    expr : valid SymPy object
        SymPy expression to print.
    settings : args
        Same as the settings accepted by SymPy's sstrrepr().

    )r?   r.   )rP   r„   Úps      r   r   r   Ð   s   € ô 	˜XÓ&€AØ�9‰9�T‹?Ðr4   c                 ó:   — t        |«      }|j                  | «      S )a�  Function for displaying expressions generated in the
    sympy.physics vector package.

    Returns the output of vprint() as a string.

    Parameters
    ==========

    expr : valid SymPy object
        SymPy expression to print
    settings : args
        Same as the settings accepted by SymPy's sstr().

    Examples
    ========

    >>> from sympy.physics.vector import vsprint, dynamicsymbols
    >>> u1, u2 = dynamicsymbols('u1 u2')
    >>> u2d = dynamicsymbols('u2', level=1)
    >>> print("%s = %s" % (u1, u2 + u2d))
    u1(t) = u2(t) + Derivative(u2(t), t)
    >>> print("%s = %s" % (vsprint(u1), vsprint(u2 + u2d)))
    u1 = u2 + u2'

    )r   r.   )rP   r„   Ústring_printers      r   r   r   á   s   € ô6 & hÓ/€NØ×!Ñ! $Ó'Ð'r4   c                 ó    — t        |«      }|j                  d   }ddlm}  ||«      }	 |j	                  | «       ||«       S #  ||«       w xY w)aú  Function for pretty printing of expressions generated in the
    sympy.physics vector package.

    Mainly used for expressions not inside a vector; the output of running
    scripts and generating equations of motion. Takes the same options as
    SymPy's :func:`~.pretty_print`; see that function for more information.

    Parameters
    ==========

    expr : valid SymPy object
        SymPy expression to pretty print
    settings : args
        Same as those accepted by SymPy's pretty_print.


    Úuse_unicoder   )Úpretty_use_unicode)rl   Ú	_settingsÚ&sympy.printing.pretty.pretty_symbologyrŒ   r.   )rP   r„   Úppr‹   rŒ   Úuflags         r   r   r      sN   € ô& 
˜XÓ	&€Bð
 —,‘,˜}Ñ-€KÝIÙ˜{Ó+€Eð"Ø�z‰z˜$Óá˜5Õ!øÑ˜5Õ!ús   ªA Á
Ac                 ó:   — t        |«      }|j                  | «      S )aÑ  Function for printing latex representation of sympy.physics.vector
    objects.

    For latex representation of Vectors, Dyadics, and dynamicsymbols. Takes the
    same options as SymPy's :func:`~.latex`; see that function for more
    information;

    Parameters
    ==========

    expr : valid SymPy object
        SymPy expression to represent in LaTeX form
    settings : args
        Same as latex()

    Examples
    ========

    >>> from sympy.physics.vector import vlatex, ReferenceFrame, dynamicsymbols
    >>> N = ReferenceFrame('N')
    >>> q1, q2 = dynamicsymbols('q1 q2')
    >>> q1d, q2d = dynamicsymbols('q1 q2', 1)
    >>> q1dd, q2dd = dynamicsymbols('q1 q2', 2)
    >>> vlatex(N.x + N.y)
    '\\mathbf{\\hat{n}_x} + \\mathbf{\\hat{n}_y}'
    >>> vlatex(q1 + q2)
    'q_{1} + q_{2}'
    >>> vlatex(q1d)
    '\\dot{q}_{1}'
    >>> vlatex(q1 * q2d)
    'q_{1} \\dot{q}_{2}'
    >>> vlatex(q1dd * q1 / q1d)
    '\\frac{q_{1} \\ddot{q}_{1}}{\\dot{q}_{1}}'

    )rE   r.   )rP   r„   Úlatex_printers      r   r   r   "  s    € ôH ' xÓ0€Mà× Ñ  Ó&Ð&r4   c                  óP   — t         | d<   t        | d<   t        | d<   t        di | ¤Ž y)aó  Initializes time derivative printing for all SymPy objects, i.e. any
    functions of time will be displayed in a more compact notation. The main
    benefit of this is for printing of time derivatives; instead of
    displaying as ``Derivative(f(t),t)``, it will display ``f'``. This is
    only actually needed for when derivatives are present and are not in a
    physics.vector.Vector or physics.vector.Dyadic object. This function is a
    light wrapper to :func:`~.init_printing`. Any keyword
    arguments for it are valid here.

    {0}

    Examples
    ========

    >>> from sympy import Function, symbols
    >>> t, x = symbols('t, x')
    >>> omega = Function('omega')
    >>> omega(x).diff()
    Derivative(omega(x), x)
    >>> omega(t).diff()
    Derivative(omega(t), t)

    Now use the string printer:

    >>> from sympy.physics.vector import init_vprinting
    >>> init_vprinting(pretty_print=False)
    >>> omega(x).diff()
    Derivative(omega(x), x)
    >>> omega(t).diff()
    omega'

    Ústr_printerÚpretty_printerr’   Nr   )r   r   r   r   )Úkwargss    r   r   r   K  s/   € ôB &€Fˆ=ÑÜ&€FÐÑÜ$€Fˆ?ÑÜÑ�FÓr4   zExamples
    ========N)!Úsympy.core.functionr   r   r   Úsympy.core.symbolr   Úsympy.interactive.printingr   Úsympy.printing.latexr   Úsympy.printing.pretty.prettyr	   rŽ   r
   Úsympy.printing.strr   Úsympy.printing.precedencer   Ú__all__r   r?   rE   rl   r   r   r   r   r   r   r=   ra   ÚparamsÚformatr   r4   r   ú<module>r¡      s·   ðÝ *ß ?Ý $Ý 4Ý -Ý 6Ý @Ý )Ý 0ò€ôG�zô Gô.Ð+ô ô;˜ô ;ô|@˜-ô @òF òFò"(ò>"òD&'òR$ðN 
×	Ñ	×	$Ñ	$Ð%=Ó	>¸qÑ	A€Ø'×/Ñ/×6Ñ6°vÓ>€Õ r4   