
    g/                     	   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%j1        e          d             Z2 e%j1        e          d             Z2 e%j1        e          d             Z2 e%j1        e          d             Z2 e%j1        e	          d             Z2 e%j3        ee          d             Z2 e%j1        e          d             Z2 e&j1        e          d             Z2 e&j1        e          d             Z2 e'j1        e          d             Z2 e'j1        e          d             Z2 e'j1        e          d             Z2 e'j1        e          d             Z2 e'j1        e	          d             Z2 e'j1        e          d             Z2 e'j1        e          d             Z2 e(j1        e          d             Z2 e(j1        e          d             Z2 e(j1        e          d             Z2 e)j1        e          d              Z2 e)j1        e          d!             Z2d" Z4 e*j1        e          d#             Z2 e*j1        e          d$             Z2 e*j1        e          d%             Z2 e*j1        e          d&             Z2 e*j1        e	          d'             Z2 e*j1        e          d(             Z2 e*j1        e          d)             Z2 e*j1        e          d*             Z2 e*j1        e          d+             Z2 e*j1        e          d,             Z2 e*j1        e          d-             Z2 e*j1        e          d.             Z2 e*j1        e!          d/             Z2 e*j1        e          d0             Z2 e*j1        e          d1             Z2 e*j1        e          d2             Z2 e*j1        e          d3             Z2 e*j1        e          d4             Z2 e+j1        e5          d5             Z2 e/j1        e5          d6             Z2 e.j1        e5          d7             Z2 e-j1        e5          d8             Z2 e,j1        e5          d9             Z2d:S );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                 (   |                                  \  }}|s(|                    d          }|j        dk    r|dk     S d S |                    d          }|j        dk    r.|dk    rdS |                    d          }|j        dk    r|dk     S d S d S Nr      r   Fas_real_imagevalf_precexprassumptionsris       \/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/assumptions/handlers/order.py_NegativePredicate_numberr7          DAq
  GGAJJ7a<<q5L < GGAJJ7a<<Avvu

Aw!||1u < |    c                 4    | j         rt          | |          S d S 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                 r   | j         rt          | |          S t          t          j        |           |          }|dur|S d}| j        D ]S}t          t          j        |          |          dur-t          t          j        |          |          du r|dz  }P dS T|t          | j                  k     rdS dS )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     ~ <({;;;AF4LL+&&A}}Fy  qz#,,D881:c??K00E99!	 9 C	NN""4 #"r9   c                     | j         rt          | |          S d }| j        D ]Q}|d}t          t	          j        |          |          r| },t          t	          j        |          |          rO d S |S NF)r<   r7   rG   r   r   rH   rI   r2   r3   resultrL   s       r6   r>   r>   O   s    ~ <({;;;Fy  >Fqz#,, 	ZFFC+.. 	FFMr9   c                    | j         t          k    r+t          t          j        | j                  |          rdS dS | j        rt          | |          S t          t          j        | j                   |          rt          t          j        | j                   |          r)t          t          j        | j                  |          rdS t          t          j	        | j                  |          rdS t          t          j
        | j                  |          r)t          t          j        | j                   |          S dS dS )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    yA~~qvdh-- 	5~ <({;;;
16$)k** ;qz$)$$k22 	16$(##[11 uqvdh-- 	5quTX,, 	;qz$),,k:::; ;	; 	;r9   c                     dS rN    r=   s     r6   r>   r>   w       5r9   c                 b    t          t          j        | j                  |          rdS t          rN   )r   r   rF   r   r   r=   s     r6   r>   r>   {   s+    
16$([)) u
r9   c                     | j         rCt          t          | |                    }|r"t          t	          j        |           |          S |S d S r;   )r<   r
   r7   r   r   rF   )r2   r3   notnegatives      r6   r>   r>      T    ~  9$ L LMM 	qvd||[1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dS | j        rE|                     d          }d t          fd|                                D                       S d S )NFr   c                 (    | j         dk    r| dk    S d S )Nr,   r   )r0   )r5   s    r6   nonzz_.<locals>.nonz   s    w!||Av |r9   c              3   .   K   | ]} |          V  d S r;   rV   ).0r5   rc   s     r6   	<genexpr>z_.<locals>.<genexpr>   s+      ::AQ::::::r9   )r   r   rF   r<   r/   r   r.   )r2   r3   r5   rc   s      @r6   r>   r>      s    
16$<<E!!u~ ;JJqMM	 	 	 ::::)9)9::::::; ;r9   c                     t          fd| j        D                       s t          fd| j        D                       rdS d S )Nc              3   \   K   | ]&}t          t          j        |                    V  'd S r;   )r   r   rI   re   xr3   s     r6   rf   z_.<locals>.<genexpr>   s5      
>
>q3qz!}}k**
>
>
>
>
>
>r9   c              3   \   K   | ]&}t          t          j        |                    V  'd S r;   )r   r   rH   ri   s     r6   rf   z_.<locals>.<genexpr>   s5      FFq3qz!}}k22FFFFFFr9   T)allrG   r=   s    `r6   r>   r>      s`    

>
>
>
>DI
>
>
>>> FFFFDIFFFFFt r9   c                 j    | j         D ]*}t          t          j        |          |          }|r'|c S dS NT)rG   r   r   nonzero)r2   r3   rL   rP   s       r6   r>   r>      sC    y  QYs^^[11 	4r9   c                 P    t          t          j        | j                  |          S r;   )r   r   ro   rR   r=   s     r6   r>   r>      s    qy##[111r9   c                 \    t          t          j        | j        d                   |          S Nr   )r   r   ro   rG   r=   s     r6   r>   r>      s"    qy1&&444r9   c                     d S r;   rV   r=   s     r6   r>   r>          4r9   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   ro   rF   r=   s     r6   r>   r>      sJ    iAIdOO[ A ABBAF4LL+&&( ) ) )r9   c                 D    t          fd| j        D                       S )Nc              3   \   K   | ]&}t          t          j        |                    V  'd S r;   )r   r   zero)re   rL   r3   s     r6   rf   z_.<locals>.<genexpr>   s5      GGcCs[11GGGGGGr9   )r   rG   r=   s    `r6   r>   r>      s*     GGGGTYGGGGGGr9   c                 &    | j         }|t          |S r;   )is_nonpositiver   rB   s      r6   r>   r>      r^   r9   c                     | j         rCt          t          | |                    }|r"t          t	          j        |           |          S |S d S r;   )r<   r
   _PositivePredicate_numberr   r   rF   )r2   r3   notpositives      r6   r>   r>      r[   r9   c                 (   |                                  \  }}|s(|                    d          }|j        dk    r|dk    S d S |                    d          }|j        dk    r.|dk    rdS |                    d          }|j        dk    r|dk    S d S d S 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 d S r;   )r<   r~   r=   s     r6   r>   r>   	  r?   r9   c                     | j         rt          | |          S d}| j        D ]O}t          t	          j        |          |          r%t          t	          j        |          |          r|dz  }M d S |S rn   )r<   r~   rG   r   r   rI   rH   rO   s       r6   r>   r>     s    ~ <({;;;Fy  qz#,, 	C+.. 	d]FFFFMr9   c                 r   | j         rt          | |          S t          t          j        |           |          }|dur|S d}| j        D ]S}t          t          j        |          |          dur-t          t          j        |          |          du r|dz  }P d S T|t          | j                  k     rdS d S )NTr   Fr,   )	r<   r~   r   r   rF   rG   rI   rH   rJ   )r2   r3   r4   nonnegrL   s        r6   r>   r>     s    ~ <({;;;AF4LL+&&A}}Fy  qz#,,D881:c??K00E99!	 9 C	NN""4 #"r9   c                    | j         t          k    rt          t          j        | j                  |          rdS t          t          j        | j                  |          r7t          t          j        | j        t          t          z  z            |          S d S | j
        rt          | |          S t          t          j        | j                   |          r)t          t          j        | j                  |          rdS t          t          j        | j                   |          rRt          t          j        | j                  |          rdS t          t          j        | j                  |          rdS d S d S )NTF)rR   r   r   r   rF   r   	imaginaryrS   r   r   r<   r~   rI   rH   rT   r=   s     r6   r>   r>   0  sH   yA~~qvdh-- 	4q{48$$k22 	=qvdh"o..<<<~ <({;;;
1:di  +.. qvdh-- 	4
1:di  +.. qvdh-- 	4quTX,, 	5	 	 	r9   c                    t          t          j        | j                  |          rdS t          t          j        | j                  |          r7t          t          j        | j        t          t          z  z            |          S d S rn   )r   r   rF   r   r   rS   r   r   r=   s     r6   r>   r>   D  sq    
16$([)) t
1;tx  +.. 916$(AbD/**K8889 9r9   c                 4   t          t          j        | j        d                   |          }|dur|S t          t          j        | j        d         dz
            |          rdS t          t          j        | j        d         dz
            |          rdS d S )Nr   Tr,   F)r   r   rF   rG   rI   rH   )r2   r3   r4   s      r6   r>   r>   K  s    AF49Q<  +..A}}
1:dilQ&''55 t
1:dilQ&''55 u r9   c                     | j         d         }t          t          j        |          t          j        |          z  |          rdS d S )Nr   T)rG   r   r   integerrI   r2   r3   rj   s      r6   r>   r>   U  sC    	!A
19Q<<!*Q--'55 4 r9   c                     dS rN   rV   r=   s     r6   r>   r>   [  rW   r9   c                 F    t          t          j        |           |          S r;   )r   r   ro   r=   s     r6   r>   r>   _  s    qy,,,r9   c                 X    t          t          j        | j                  |          rdS d S rn   r   r   positive_definiterL   r=   s     r6   r>   r>   c  0    
1tx((+66 t r9   c                 X    t          t          j        | j                  |          rdS d S rn   r   r=   s     r6   r>   r>   h  r   r9   c                 |    | j         | j        k    r)t          t          j        | j                  |          rdS d S d S rn   )r5   jr   r   r   parentr=   s     r6   r>   r>   m  sC    $&A'44kBB 	t 	r9   c                 \    t          t          j        | j        d                   |          S rr   )r   r   rI   rG   r=   s     r6   r>   r>   s  s"    qz$)A,''555r9   c                    | j         d         }t          t          j        |          t          j        |dz
            z  |          rdS t          t          j        |          t          j        |dz             z  |          rdS d S )Nr   r,   TF)rG   r   r   rI   nonpositiverH   nonnegativer   s      r6   r>   r>   w  s{    	!A
1:a==1=Q///== t
1:a==1=Q///== u r9   c                     | j         d         }t          t          j        |dz
            t          j        |dz             z  |          rdS d S )Nr   r,   T)rG   r   r   r   r   r   s      r6   r>   r>     sO    	!A
1=Q!-A"6"66DD t r9   c                 \    t          t          j        | j        d                   |          S rr   )r   r   rF   rG   r=   s     r6   r>   r>     s"    qvdil##[111r9   c                     d S r;   rV   r=   s     r6   r>   r>     rt   r9   c                 p    t          t          j        |           t          j        |           z  |          S r;   )r   r   rH   negative_infiniter=   s     r6   r>   r>     ,    qz$!"5d";";;[IIIr9   c                 p    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>     sT    	D!!AJt$4$44qz$7G7GG!J]^bJcJcc  r9   c                     t          t          j        |           t          j        |           z  t          j        |           z  |          S r;   )r   r   r   rH   rz   r=   s     r6   r>   r>     sA    	D!!AJt$4$44qvd||C  r9   c                     t          t          j        |           t          j        |           z  t          j        |           z  |          S r;   )r   r   rz   rI   r   r=   s     r6   r>   r>     sA    	tqz$'''!*=d*C*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 1 1 1 1 1 1 1 1 1 1 1 1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; L L L L L L L L L L L L L L L L L L L L - - - - - - - - < < < < < < 8 8 8 8 8 8                                                     & E""< < #"< D!!  "! C    ! . C    !  C  ; ; ! ;. ! m44  54 C      !   u%%  &% t$$  %$ 4    !  5!!	; 	; "!	; 3   
 3    32 2  2 35 5  5 3       ) ) ) H H H t$$  %$ u%%  &%  & D!!  "! E""< < #"< C    !  C    ! & C    ! & C  9 9 ! 9 C    !  I&&  '&
 M**  +* C  - - ! - E""  #" K((  )( M**  +*
 D!!6 6 "!6 D!!  "! D!!  "!
 D!!2 2 "!2 C    !  $#F++J J ,+J $#F++J J ,+J #"6**  +* '&v..  /. '&v..  /.  r9   