
    g/                     6	   d Z ddlmZmZ ddlmZmZmZmZm	Z	 ddl
mZmZmZ ddlmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZmZ ddl m!Z! dd	l"m#Z# d
dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d Z0 e%jb                  e      d        Z2 e%jb                  e      d        Z2 e%jb                  e      d        Z2 e%jb                  e      d        Z2 e%jb                  e	      d        Z2 e%jf                  ee      d        Z2 e%jb                  e      d        Z2 e&jb                  e      d        Z2 e&jb                  e      d        Z2 e'jb                  e      d        Z2 e'jb                  e      d        Z2 e'jb                  e      d        Z2 e'jb                  e      d        Z2 e'jb                  e	      d        Z2 e'jb                  e      d        Z2 e'jb                  e      d        Z2 e(jb                  e      d        Z2 e(jb                  e      d        Z2 e(jb                  e      d        Z2 e)jb                  e      d         Z2 e)jb                  e      d!        Z2d" Z4 e*jb                  e      d#        Z2 e*jb                  e      d$        Z2 e*jb                  e      d%        Z2 e*jb                  e      d&        Z2 e*jb                  e	      d'        Z2 e*jb                  e      d(        Z2 e*jb                  e      d)        Z2 e*jb                  e      d*        Z2 e*jb                  e      d+        Z2 e*jb                  e      d,        Z2 e*jb                  e      d-        Z2 e*jb                  e      d.        Z2 e*jb                  e!      d/        Z2 e*jb                  e      d0        Z2 e*jb                  e      d1        Z2 e*jb                  e      d2        Z2 e*jb                  e      d3        Z2 e*jb                  e      d4        Z2 e+jb                  e5      d5        Z2 e/jb                  e5      d6        Z2 e.jb                  e5      d7        Z2 e-jb                  e5      d8        Z2 e,jb                  e5      d9        Z2y:);z?
Handlers related to order relations: positive, negative, etc.
    )Qask)AddBasicExprMulPow)	fuzzy_not	fuzzy_andfuzzy_or)EImaginaryUnitNaNIpi)Absacosacotasinatanexp	factoriallog)DeterminantTrace)MatrixElement)MDNotImplementedError   )NegativePredicateNonNegativePredicateNonZeroPredicateZeroPredicateNonPositivePredicatePositivePredicateExtendedNegativePredicateExtendedNonNegativePredicateExtendedNonPositivePredicateExtendedNonZeroPredicateExtendedPositivePredicatec                    | j                         \  }}|s&|j                  d      }|j                  dk7  r|dk  S y |j                  d      }|j                  dk7  r,|dk7  ry|j                  d      }|j                  dk7  r|dk  S y y Nr      r   Fas_real_imagevalf_precexprassumptionsris       U/var/www/openai/venv/lib/python3.12/site-packages/sympy/assumptions/handlers/order.py_NegativePredicate_numberr7          DAq
 GGAJ77a<q5L  GGAJ77a<Av
Aww!|1u 	     c                 4    | j                   rt        | |      S y N)	is_numberr7   r2   r3   s     r6   _r>   +       ~~({;; r9   c                 .    | j                   }|t        |S r;   )is_negativer   r2   r3   rets      r6   r>   r>   0       


C
{##Jr9   c                 j   | j                   rt        | |      S t        t        j                  |       |      }|dur|S d}| j
                  D ]L  }t        t        j                  |      |      dus%t        t        j                  |      |      du r|dz  }L y |t        | j
                        k  ryy)zN
    Positive + Positive -> Positive,
    Negative + Negative -> Negative
    Tr   Fr,   N)	r<   r7   r   r   realargsnegativepositivelen)r2   r3   r4   nonposargs        r6   r>   r>   7   s     ~~({;;AFF4L+&A}Fyyqzz#,D81::c?K0E9!  C		N" #r9   c                     | j                   rt        | |      S d }| j                  D ]J  }|d}t        t	        j
                  |      |      r| }*t        t	        j                  |      |      rJ y  |S NF)r<   r7   rG   r   r   rH   rI   r2   r3   resultrL   s       r6   r>   r>   O   sk    ~~({;;Fyy>Fqzz#,ZFC+.  Mr9   c                    | j                   t        k(  r+t        t        j                  | j
                        |      ryy| j                  rt        | |      S t        t        j                  | j                         |      rt        t        j                  | j                         |      r*t        t        j                  | j
                        |      ryt        t        j                  | j
                        |      ryt        t        j                  | j
                        |      r)t        t        j                  | j                         |      S yy)zq
    Real ** Even -> NonNegative
    Real ** Odd  -> same_as_base
    NonNegative ** Positive -> NonNegative
    FN)baser   r   r   rF   r   r<   r7   rI   evenoddrH   r=   s     r6   r>   r>   _   s     yyA~qvvdhh-~~({;;
166$))k*qzz$))$k2166$((#[1qvvdhh-quuTXX,qzz$)),k:: - +r9   c                      yrN    r=   s     r6   r>   r>   w       r9   c                 b    t        t        j                  | j                        |      ryt        rN   )r   r   rF   r   r   r=   s     r6   r>   r>   {   s"    
166$(([)
r9   c                     | j                   r8t        t        | |            }|rt        t	        j
                  |       |      S |S y r;   )r<   r
   r7   r   r   rF   )r2   r3   notnegatives      r6   r>   r>      >    ~~ 9$ LMqvvd|[11 r9   c                 .    | j                   }|t        |S r;   )is_nonnegativer   rB   s      r6   r>   r>          


C
{##Jr9   c                 .    | j                   }|t        |S r;   )
is_nonzeror   rB   s      r6   r>   r>      s    
//C
{##Jr9   c                     t        t        j                  |             du ry| j                  r6| j	                  d      }d t        fd|j                         D              S y )NFr   c                 ,    | j                   dk7  r| dk7  S y )Nr,   r   )r0   )r5   s    r6   nonzz_.<locals>.nonz   s    ww!|Av r9   c              3   .   K   | ]  } |        y wr;   rV   ).0r5   rc   s     r6   	<genexpr>z_.<locals>.<genexpr>   s     :)9AQ)9s   )r   r   rF   r<   r/   r   r.   )r2   r3   r5   rc   s      @r6   r>   r>      sS    
166$<E!~~JJqM	 :)9::: r9   c                     t        fd| j                  D              st        fd| j                  D              ryy )Nc              3   \   K   | ]#  }t        t        j                  |             % y wr;   )r   r   rI   re   xr3   s     r6   rf   z_.<locals>.<genexpr>   s!     
>Iq3qzz!}k*I   ),c              3   \   K   | ]#  }t        t        j                  |             % y wr;   )r   r   rH   ri   s     r6   rf   z_.<locals>.<genexpr>   s!     FIq3qzz!}k2Irk   T)allrG   r=   s    `r6   r>   r>      s0    

>DII
>>FDIIFF Gr9   c                 p    | j                   D ]'  }t        t        j                  |      |      }|r%|c S  yNT)rG   r   r   nonzero)r2   r3   rL   rP   s       r6   r>   r>      s4    yyQYYs^[1	 
 r9   c                 T    t        t        j                  | j                        |      S r;   )r   r   rp   rR   r=   s     r6   r>   r>      s    qyy#[11r9   c                 Z    t        t        j                  | j                  d         |      S Nr   )r   r   rp   rG   r=   s     r6   r>   r>      s     qyy1&44r9   c                      y r;   rV   r=   s     r6   r>   r>          r9   c                 .    | j                   }|t        |S r;   )is_zeror   rB   s      r6   r>   r>      s    
,,C
{##Jr9   c           	          t        t        t        t        j                  |       |            t        t        j
                  |       |      g      S r;   )r   r
   r   r   rp   rF   r=   s     r6   r>   r>      s<    iAIIdO[ ABAFF4L+&( ) )r9   c                 @    t        fd| j                  D              S )Nc              3   \   K   | ]#  }t        t        j                  |             % y wr;   )r   r   zero)re   rL   r3   s     r6   rf   z_.<locals>.<genexpr>   s!     GYcCs[1Yrk   )r   rG   r=   s    `r6   r>   r>      s     GTYYGGGr9   c                 .    | j                   }|t        |S r;   )is_nonpositiver   rB   s      r6   r>   r>      r^   r9   c                     | j                   r8t        t        | |            }|rt        t	        j
                  |       |      S |S y r;   )r<   r
   _PositivePredicate_numberr   r   rF   )r2   r3   notpositives      r6   r>   r>      r[   r9   c                    | j                         \  }}|s&|j                  d      }|j                  dk7  r|dkD  S y |j                  d      }|j                  dk7  r,|dk7  ry|j                  d      }|j                  dk7  r|dkD  S y y r+   r-   r1   s       r6   r   r      r8   r9   c                 .    | j                   }|t        |S r;   )is_positiver   rB   s      r6   r>   r>     rD   r9   c                 4    | j                   rt        | |      S y r;   )r<   r   r=   s     r6   r>   r>   	  r?   r9   c                     | j                   rt        | |      S d}| j                  D ]H  }t        t	        j
                  |      |      r#t        t	        j                  |      |      r|dz  }H y  |S ro   )r<   r   rG   r   r   rI   rH   rO   s       r6   r>   r>     sc    ~~({;;Fyyqzz#,C+.d]F  Mr9   c                 j   | j                   rt        | |      S t        t        j                  |       |      }|dur|S d}| j
                  D ]L  }t        t        j                  |      |      dus%t        t        j                  |      |      du r|dz  }L y  |t        | j
                        k  ryy )NTr   Fr,   )	r<   r   r   r   rF   rG   rI   rH   rJ   )r2   r3   r4   nonnegrL   s        r6   r>   r>     s    ~~({;;AFF4L+&A}Fyyqzz#,D81::c?K0E9!  C		N" #r9   c                    | j                   t        k(  rt        t        j                  | j
                        |      ryt        t        j                  | j
                        |      r7t        t        j                  | j
                  t        t        z  z        |      S y | j                  rt        | |      S t        t        j                  | j                         |      r*t        t        j                  | j
                        |      ryt        t        j                  | j                         |      rUt        t        j                  | j
                        |      ryt        t        j                  | j
                        |      ryy y )NTF)rR   r   r   r   rF   r   	imaginaryrS   r   r   r<   r   rI   rH   rT   r=   s     r6   r>   r>   0  s    yyA~qvvdhh-q{{488$k2qvvdhh"o.<<~~({;;
1::dii +.qvvdhh-
1::dii +.qvvdhh-quuTXX, - /r9   c                    t        t        j                  | j                        |      ryt        t        j                  | j                        |      r7t        t        j
                  | j                  t        t        z  z        |      S y ro   )r   r   rF   r   r   rS   r   r   r=   s     r6   r>   r>   D  sZ    
166$(([)
1;;txx +.166$((AbD/*K88 /r9   c                 (   t        t        j                  | j                  d         |      }|dur|S t        t        j                  | j                  d   dz
        |      ryt        t        j
                  | j                  d   dz
        |      ryy )Nr   Tr,   F)r   r   rF   rG   rI   rH   )r2   r3   r4   s      r6   r>   r>   K  sv    AFF499Q< +.A}
1::diilQ&'5
1::diilQ&'5 6r9   c                     | j                   d   }t        t        j                  |      t        j                  |      z  |      ryy )Nr   T)rG   r   r   integerrI   r2   r3   rj   s      r6   r>   r>   U  s6    		!A
199Q<!**Q-'5 6r9   c                      yrN   rV   r=   s     r6   r>   r>   [  rW   r9   c                 @    t        t        j                  |       |      S r;   )r   r   rp   r=   s     r6   r>   r>   _  s    qyy,,r9   c                 X    t        t        j                  | j                        |      ryy ro   r   r   positive_definiterL   r=   s     r6   r>   r>   c  #    
1txx(+6 7r9   c                 X    t        t        j                  | j                        |      ryy ro   r   r=   s     r6   r>   r>   h  r   r9   c                     | j                   | j                  k(  r+t        t        j                  | j
                        |      ryy y ro   )r5   jr   r   r   parentr=   s     r6   r>   r>   m  s9    $&&A''4kB C 	r9   c                 Z    t        t        j                  | j                  d         |      S rs   )r   r   rI   rG   r=   s     r6   r>   r>   s  s     qzz$))A,'55r9   c                    | j                   d   }t        t        j                  |      t        j                  |dz
        z  |      ryt        t        j
                  |      t        j                  |dz         z  |      ryy )Nr   r,   TF)rG   r   r   rI   nonpositiverH   nonnegativer   s      r6   r>   r>   w  sb    		!A
1::a=1==Q//=
1::a=1==Q//= >r9   c                     | j                   d   }t        t        j                  |dz
        t        j                  |dz         z  |      ryy )Nr   r,   T)rG   r   r   r   r   r   s      r6   r>   r>     sA    		!A
1==Q!--A"66D Er9   c                 Z    t        t        j                  | j                  d         |      S rs   )r   r   rF   rG   r=   s     r6   r>   r>     s     qvvdiil#[11r9   c                      y r;   rV   r=   s     r6   r>   r>     ru   r9   c                 l    t        t        j                  |       t        j                  |       z  |      S r;   )r   r   rH   negative_infiniter=   s     r6   r>   r>     (    qzz$!"5"5d";;[IIr9   c                 l    t        t        j                  |       t        j                  |       z  |      S r;   )r   r   rI   positive_infiniter=   s     r6   r>   r>     r   r9   c                     t        t        j                  |       t        j                  |       z  t        j                  |       z  t        j
                  |       z  |      S r;   )r   r   r   rH   rI   r   r=   s     r6   r>   r>     sM    	D!AJJt$44qzz$7GG!J]J]^bJcc r9   c                     t        t        j                  |       t        j                  |       z  t        j                  |       z  |      S r;   )r   r   r   rH   r{   r=   s     r6   r>   r>     s;    	D!AJJt$44qvvd|C r9   c                     t        t        j                  |       t        j                  |       z  t        j                  |       z  |      S r;   )r   r   r{   rI   r   r=   s     r6   r>   r>     s;    	tqzz$''!*=*=d*CC r9   N)6__doc__sympy.assumptionsr   r   
sympy.corer   r   r   r   r	   sympy.core.logicr
   r   r   sympy.core.numbersr   r   r   r   r   sympy.functionsr   r   r   r   r   r   r   r   sympy.matricesr   r   "sympy.matrices.expressions.matexprr   sympy.multipledispatchr   predicates.orderr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r7   registerr>   register_manyr   objectrV   r9   r6   <module>r      s.   % 1 1 ; ; ; ; L L L - < 8       & E"< #< D! " C  !. C  ! C ; !;. !  m4 5 C   !  u% & t$ % 4  ! 5!	; "	; 3  
 3   32  2 35  5 3     ) ) H H t$ % u% && D! " E"< #< C  ! C  !& C  !& C 9 !9 C  ! I& '
 M* + C - !- E" # K( ) M* +
 D!6 "6 D! " D! "
 D!2 "2 C  ! $##F+J ,J $##F+J ,J #""6* + '&&v. / '&&v. /r9   