
    Ed                        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                                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dAS )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                 ^    |                                  rt          d         S t          d         S )Nr   r   )could_extract_minus_sign
PRECEDENCEitems    9lib/python3.11/site-packages/sympy/printing/precedence.pyprecedence_Mulr3   =   s,    $$&& !%  e    c                 L    | j         dk     rt          d         S t          d         S )N    r   r   pr/   r0   s    r2   precedence_Rationalr9   C   s&    vz !%  er4   c                 L    | j         dk     rt          d         S t          d         S Nr6   r   r   r7   r0   s    r2   precedence_Integerr<   I   s&    vz !%  fr4   c                 B    | 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          |                     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   sZ     !&!!	 !$**Q--(((	 !%  %  r4   c                 Z    | j         dk    rt          | j                  S t          d         S )Nr   r   )denomrE   numerr/   r0   s    r2   precedence_FracElementrI   `   s+    zQ !%dj111%  r4   c                 <    t          | j        d                   dz
  S )Nr6   g      ?)rB   argsr0   s    r2   precedence_UnevaluatedExprrL   g   s    dil##c))r4   )Integerr   RationalFloatPolyElementFracElementUnevaluatedExprc                 (   t          | d          r| j        S 	 | j        j        }n# t          $ r t
          d         cY S w xY w|D ]A}|j        }|t          v rt          |         |           c S |t          v rt          |         c S Bt
          d         S )zZReturns the precedence of a given object.

    This is the precedence for StrPrinter.
    rB   r   )	hasattrrB   	__class____mro__AttributeErrorr/   __name__PRECEDENCE_FUNCTIONSPRECEDENCE_VALUES)r1   mroins       r2   rB   rB   v   s    
 t\"" "n$ " " "&!!!!" ( (J$$ 	('*400000## 	($Q''''	(fs   & A A 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   
isinstanceprecedence_traditionalrK   rU   rX   PRECEDENCE_TRADITIONALrB   )r1   rR   r]   s      r2   rt   rt      sm     0/////$(( 4%dil333A"" )%a((dr4   N)__doc__r/   rZ   r3   r9   r<   r>   rE   rI   rL   rY   rB   copyru   rt    r4   r2   <module>ry      s   D 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   