U
    ;qLe”  ã                   @   s  d Z ddddddddd	d
dddddœZed ed ed ed ed ed ed ed ed ed ed ed ed ed ed e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d&d'„ Z	eeeeeee	d(œZ
d)d*„ Ze ¡ Zed ed+< ed ed,< ed ed-< ed ed.< ed ed/< ed ed0< ed ed1< ed ed2< ed d ed3< ed d ed4< ed d ed5< ed d ed6< ed d ed7< ed d ed8< ed ed9< ed ed:< ed ed;< ed ed<< ed ed=< d>d?„ Zd@S )Az>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
BitwiseAndr   r   r   r   r   r   r   r   r   )Ú
Equivalentr   ÚImpliesr   r   r   r   r   ZSubr   ÚFunctionÚNegativeInfinityÚMatAddÚMatPowZMatrixSolveÚModZTensAddZTensMulÚHadamardProductÚHadamardPowerÚKroneckerProductÚEqualityÚ
Unequalityc                 C   s   |   ¡ rtd S td S )Nr   r   )Úcould_extract_minus_signÚ
PRECEDENCE©Úitem© r)   úp/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/sympy/printing/precedence.pyÚprecedence_Mul=   s    r+   c                 C   s   | j dk rtd S td S )Né    r   r   ©Úpr&   r'   r)   r)   r*   Úprecedence_RationalC   s    
r/   c                 C   s   | j dk rtd S td S ©Nr,   r   r   r-   r'   r)   r)   r*   Úprecedence_IntegerI   s    
r1   c                 C   s   | dk rt d S t d S r0   )r&   r'   r)   r)   r*   Úprecedence_FloatO   s    r2   c                 C   s<   | j rtd S | jr"t|  d¡ƒS | jr0td S td S d S )Nr   r   r   r   )Úis_generatorr&   Ú	is_groundÚ
precedenceÚcoeffÚis_termr'   r)   r)   r*   Úprecedence_PolyElementU   s    r8   c                 C   s    | j dkrt| jƒS td S d S )Nr   r   )Údenomr8   Únumerr&   r'   r)   r)   r*   Úprecedence_FracElement`   s    

r;   c                 C   s   t | jd ƒd S )Nr,   g      à?)r5   Úargsr'   r)   r)   r*   Úprecedence_UnevaluatedExprg   s    r=   )ÚIntegerr   ÚRationalÚFloatÚPolyElementZFracElementÚUnevaluatedExprc                 C   s~   t | dƒr| jS z| jj}W n tk
r8   td  Y S X |D ]6}|j}|tkr`t| | ƒ  S |tkr>t|   S q>td S )zZReturns the precedence of a given object.

    This is the precedence for StrPrinter.
    r5   r   )	Úhasattrr5   Ú	__class__Ú__mro__ÚAttributeErrorr&   Ú__name__ÚPRECEDENCE_FUNCTIONSÚPRECEDENCE_VALUES)r(   ÚmroÚiÚnr)   r)   r*   r5   v   s    
r5   ÚIntegralÚSumÚProductÚLimitÚ
DerivativeZTensorProductÚ	TransposeÚAdjointZDotZCrossZGradientZ
DivergenceZCurlZ	LaplacianÚUnionÚIntersectionÚ
ComplementÚSymmetricDifferenceÚ
ProductSetc                 C   sD   ddl m} t| |ƒr$t| jd ƒS | jj}|tk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,   )rB   )	Úsympy.core.exprrB   Ú
isinstanceÚprecedence_traditionalr<   rD   rG   ÚPRECEDENCE_TRADITIONALr5   )r(   rB   rL   r)   r)   r*   r[       s    
r[   N)Ú__doc__r&   rI   r+   r/   r1   r2   r8   r;   r=   rH   r5   Úcopyr\   r[   r)   r)   r)   r*   Ú<module>   s˜   òè#ù