
    wgq                        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$ Zd% Zd& Zd' Zd( Zd) Zd* Z	eeeeeee	d+Z
d, Zej                         Z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   ed3<   ed   ed4<   ed    dz
  ed5<   ed    dz
  ed6<   ed    dz
  ed7<   ed    dz
  ed8<   ed    dz
  ed9<   e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?<   d@ ZyA)Bz>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                 F    | j                         r	t        d   S t        d   S )Nr   r   )could_extract_minus_sign
PRECEDENCEitems    ^/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/printing/precedence.pyprecedence_Mulr3   =   s$    $$&%  e    c                 D    | j                   dk  r	t        d   S t        d   S )N    r   r   pr/   r0   s    r2   precedence_Rationalr9   C   s#    vvz%  er4   c                 D    | j                   dk  r	t        d   S t        d   S Nr6   r   r   r7   r0   s    r2   precedence_Integerr<   I   s#    vvz%  fr4   c                 0    | dk  r	t         d   S t         d   S r;   )r/   r0   s    r2   precedence_Floatr>   O   s    ax%  fr4   c                     | j                   r	t        d   S | j                  rt        | j	                  d            S | j
                  r	t        d   S t        d   S )Nr   r   r   r   )is_generatorr/   	is_ground
precedencecoeffis_termr0   s    r2   precedence_PolyElementrE   U   sM    &!!	$**Q-((	%  %  r4   c                 \    | j                   dk(  rt        | j                        S t        d   S )Nr   r   )denomrE   numerr/   r0   s    r2   precedence_FracElementrI   `   s'    zzQ%djj11%  r4   c                 8    t        | j                  d         dz
  S )Nr6   g      ?)rB   argsr0   s    r2   precedence_UnevaluatedExprrL   g   s    diil#c))r4   )Integerr   RationalFloatPolyElementFracElementUnevaluatedExprc                    t        | d      r| j                  S t        | t              sUt        |       j	                         D ]9  }|j
                  }|t        v rt        |   |       c S |t        v s0t        |   c S  t        d   S )zZReturns the precedence of a given object.

    This is the precedence for StrPrinter.
    rB   r   )	hasattrrB   
isinstancetypemro__name__PRECEDENCE_FUNCTIONSPRECEDENCE_VALUESr/   )r1   ins      r2   rB   rB   v   s    
 t\"dD!d! 	,A

A((+A.t44''(++	, fr4   IntegralSumProductLimit
DerivativeTensorProduct	TransposeAdjointDotCrossGradient
DivergenceCurl	LaplacianUnionIntersection
ComplementSymmetricDifference
ProductSetc                     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.
    r6   )rR   )	sympy.core.exprrR   rU   precedence_traditionalrK   	__class__rX   PRECEDENCE_TRADITIONALrB   )r1   rR   r\   s      r2   rr   rr      sR     0$(%diil33A""%a((dr4   N)__doc__r/   rZ   r3   r9   r<   r>   rE   rI   rL   rY   rB   copyrt   rr    r4   r2   <module>rx      sB   D
 

**U#	:e z%  	*T
	
 
:e 
:e 
:e *\* 
:e 
:e F# 
5) j j :e$  
:e!" z% #& % !%(&"5)5!U#1 F!!*
 "#))1 " $* %/%6 z " *5 1 u $.u$5 y !",U"3 w '1%'8 | $*4U*;  '&0&7 { #$.u$5 y ! *5 1A 5 u ",U"3a"7 w %/%6%: z "'1%'81'< | $!+E!2Q!6 v &0&7!&; { #",U"3 w )3E): ~ &'1%'8 | $0:50A , -'1%'8 | $r4   