o
    *Î®c”  ã                   @   sb  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< dHdI„ ZdJS )Kz>A module providing information about the necessity of bracketsé   é
   é   é   é#   é(   é2   é<   éF   éd   iè  é$   é%   é&   )ÚLambdaÚXorÚOrÚAndÚ
RelationalÚAddÚMulÚPowÚFuncÚNotÚAtomÚ	BitwiseOrÚ
BitwiseXorÚ
BitwiseAndÚ
Equivalentr   ÚImpliesr   r   r   r   r   ÚSubr   ÚFunctionr   ÚNegativeInfinityÚMatAddÚMatPowÚMatrixSolver   ÚModÚTensAdd)ÚTensMulÚHadamardProductÚHadamardPowerÚKroneckerProductÚEqualityÚ
Unequalityc                 C   s   |   ¡ rtd S td S )Nr   r   )Úcould_extract_minus_signÚ
PRECEDENCE©Úitem© r0   ú@/tmp/pip-target-vg8gfxp4/lib/python/sympy/printing/precedence.pyÚprecedence_Mul=   ó   r2   c                 C   ó   | j dk r	td S td S )Né    r   r   ©Úpr-   r.   r0   r0   r1   Úprecedence_RationalC   ó   
r8   c                 C   r4   ©Nr5   r   r   r6   r.   r0   r0   r1   Úprecedence_IntegerI   r9   r;   c                 C   s   | dk rt d S t d S r:   )r-   r.   r0   r0   r1   Úprecedence_FloatO   r3   r<   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   )Úis_generatorr-   Ú	is_groundÚ
precedenceÚcoeffÚis_termr.   r0   r0   r1   Úprecedence_PolyElementU   s   rB   c                 C   s   | j dkr
t| jƒS td S )Nr   r   )ÚdenomrB   Únumerr-   r.   r0   r0   r1   Úprecedence_FracElement`   s   

rE   c                 C   s   t | jd ƒd S )Nr5   g      à?)r?   Úargsr.   r0   r0   r1   Úprecedence_UnevaluatedExprg   s   rG   )ÚIntegerr   ÚRationalÚFloatÚPolyElementÚFracElementÚUnevaluatedExprc                 C   s|   t | dƒr| jS z| jj}W n ty   td  Y S w |D ]}|j}|tv r/t| | ƒ  S |tv r9t|   S qtd S )zZReturns the precedence of a given object.

    This is the precedence for StrPrinter.
    r?   r   )	Úhasattrr?   Ú	__class__Ú__mro__ÚAttributeErrorr-   Ú__name__ÚPRECEDENCE_FUNCTIONSÚPRECEDENCE_VALUES)r/   ÚmroÚiÚnr0   r0   r1   r?   v   s   
ÿÿr?   ÚIntegralÚSumÚProductÚLimitÚ
DerivativeÚTensorProductÚ	TransposeÚAdjointÚDotÚCrossÚGradientÚ
DivergenceÚCurlÚ	LaplacianÚUnionÚIntersectionÚ
ComplementÚSymmetricDifferenceÚ
ProductSetc                 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.
    r5   )rM   )	Úsympy.core.exprrM   Ú
isinstanceÚprecedence_traditionalrF   rO   rR   ÚPRECEDENCE_TRADITIONALr?   )r/   rM   rW   r0   r0   r1   rm       s   
rm   N)Ú__doc__r-   rT   r2   r8   r;   r<   rB   rE   rG   rS   r?   Úcopyrn   rm   r0   r0   r0   r1   Ú<module>   s¾    òÿþýüûúùø	÷
öõôóòñðïè#ù