o
    i                     @   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/html/eduruby.in/lip-sync/lip-sync-env/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 )zReturns 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    	
#