o
    ohq                     @   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   m/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/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   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   )	hasattrr?   
isinstancetypemro__name__PRECEDENCE_FUNCTIONSPRECEDENCE_VALUESr-   )r/   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 )zReturns 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   rO   precedence_traditionalrF   	__class__rR   PRECEDENCE_TRADITIONALr?   )r/   rM   rV   r0   r0   r1   rk      s   
rk   N)__doc__r-   rT   r2   r8   r;   r<   rB   rE   rG   rS   r?   copyrm   rk   r0   r0   r0   r1   <module>   s    	
#