o
    GZŽh’  ã                   @   sn  d Z ddddddddd	d
dddddœZi ded “ded “ded “ded “ded “ded “ded “ded “ded “ded “ded “ded “ded “ded “ded  “d!ed  “d"ed “ed  ed  ed ed  ed  ed  d#œ¥Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Z	eeeeeee	d2œZ
d3d4„ Ze ¡ Zed  ed5< ed  ed6< ed  ed7< ed  ed8< ed  ed9< ed  ed:< ed ed;< ed ed<< ed  d ed=< ed  d ed>< ed  d ed?< ed  d ed@< ed  d edA< ed  d edB< ed edC< ed edD< ed edE< ed edF< ed edG< ed= edH< dIdJ„ ZdKS )Lz>A module providing information about the necessity of bracketsé   é
   é   é   é#   é(   é2   é<   éF   éd   iè  é$   é%   é&   )ÚLambdaÚXorÚOrÚAndÚ
RelationalÚAddÚMulÚPowÚFuncÚNotÚAtomZ	BitwiseOrZ
BitwiseXorZ
BitwiseAndZ
Equivalentr   ZImpliesr   r   r   r   r   ÚSubr   ÚFunctionr   ÚNegativeInfinityZMatAddZMatPowZMatrixSolver   ÚModZTensAdd)ZTensMulZHadamardProductZHadamardPowerZKroneckerProductZEqualityZ
Unequalityc                    sD   ddl m‰  t‡ fdd„| jD ƒƒrtd S |  ¡ rtd S td S )Né    ©r   c                 3   s2    | ]}t |d ƒot|ˆ ƒo|jtd k V  qdS )Ú
precedencer   N)ÚhasattrÚ
isinstancer   Ú
PRECEDENCE)Ú.0Úargr   © úH/var/www/auris/lib/python3.10/site-packages/sympy/printing/precedence.pyÚ	<genexpr>?   s   € ÿ
ÿz!precedence_Mul.<locals>.<genexpr>r   r   )Zsympy.core.functionr   ÚanyÚargsr"   Zcould_extract_minus_sign©Úitemr%   r   r&   Úprecedence_Mul=   s   ÿr,   c                 C   ó   | j dk r	td S td S )Nr   r   r   ©Úpr"   r*   r%   r%   r&   Úprecedence_RationalH   ó   
r0   c                 C   r-   ©Nr   r   r   r.   r*   r%   r%   r&   Úprecedence_IntegerN   r1   r3   c                 C   s   | dk rt d S t d S r2   )r"   r*   r%   r%   r&   Úprecedence_FloatT   s   r4   c                 C   s8   | j rtd S | jrt|  d¡ƒS | jrtd S td S )Nr   r   r   r   )Zis_generatorr"   Z	is_groundr   ZcoeffZis_termr*   r%   r%   r&   Úprecedence_PolyElementZ   s   r5   c                 C   s   | j dkr
t| jƒS td S )Nr   r   )Údenomr5   Znumerr"   r*   r%   r%   r&   Úprecedence_FracElemente   s   

r7   c                 C   s   t | jd ƒd S )Nr   g      à?)r   r)   r*   r%   r%   r&   Úprecedence_UnevaluatedExprl   s   r8   )ÚIntegerr   ÚRationalÚFloatZPolyElementZFracElementÚUnevaluatedExprc                 C   sf   t | dƒr| jS t| tƒs/t| ƒ ¡ D ]}|j}|tv r$t| | ƒ  S |tv r.t|   S qtd S )zZReturns the precedence of a given object.

    This is the precedence for StrPrinter.
    r   r   )	r    r   r!   ÚtypeÚmroÚ__name__ÚPRECEDENCE_FUNCTIONSÚPRECEDENCE_VALUESr"   )r+   ÚiÚnr%   r%   r&   r   {   s   

ÿr   ÚIntegralZSumZProductZLimitZ
DerivativeZTensorProductZ	TransposeZAdjointZDotZCrossZGradientZ
DivergenceZCurlZ	LaplacianÚUnionZIntersectionZ
ComplementZSymmetricDifferenceZ
ProductSetZ
DotProductc                 C   sD   ddl m} t| |ƒrt| jd ƒS | jj}|tv rt| S t| ƒS )z¢Returns the precedence of a given object according to the
    traditional rules of mathematics.

    This is the precedence for the LaTeX and pretty printer.
    r   )r<   )	Zsympy.core.exprr<   r!   Úprecedence_traditionalr)   Ú	__class__r?   ÚPRECEDENCE_TRADITIONALr   )r+   r<   rC   r%   r%   r&   rF   £   s   
rF   N)Ú__doc__r"   rA   r,   r0   r3   r4   r5   r7   r8   r@   r   ÚcopyrH   rF   r%   r%   r%   r&   Ú<module>   sÀ    òÿþýüûúùø	÷
öõôóòñðïè#ù