
    MZd                        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    ;/usr/lib/python3/dist-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 	 | j                  j                  }|D ]9  }|j                  }|t        v rt        |   |       c S |t        v s0t        |   c S  t
        d   S # t        $ r t
        d   cY S w xY w)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\""nn$$  (JJ$$'*400##$Q''( f  "&!!"s   A7 7BB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      sR     0$(%diil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      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   