
    Xh/                     	   d Z ddlmZmZ ddlmZ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/m0Z0 d Z1 e&j2        e          d             Z3 e&j2        e          d             Z3 e&j2        e          d             Z3 e&j2        e          d             Z3 e&j2        e	          d             Z3 e&j4        ee          d             Z3 e&j2        e          d             Z3 e'j2        e          d             Z3 e'j2        e          d             Z3 e(j2        e          d             Z3 e(j2        e          d             Z3 e(j2        e          d             Z3 e(j2        e          d             Z3 e(j2        e	          d             Z3 e(j2        e          d             Z3 e(j2        e          d             Z3 e)j2        e          d             Z3 e)j2        e          d             Z3 e)j2        e          d             Z3 e*j2        e          d              Z3 e*j2        e          d!             Z3d" Z5 e+j2        e          d#             Z3 e+j2        e          d$             Z3 e+j2        e          d%             Z3 e+j2        e          d&             Z3 e+j2        e	          d'             Z3 e+j2        e          d(             Z3 e+j2        e          d)             Z3 e+j2        e          d*             Z3 e+j2        e          d+             Z3 e+j2        e          d,             Z3 e+j2        e           d-             Z3 e+j2        e          d.             Z3 e+j2        e"          d/             Z3 e+j2        e          d0             Z3 e+j2        e          d1             Z3 e+j2        e          d2             Z3 e+j2        e          d3             Z3 e+j2        e          d4             Z3 e,j2        e6          d5             Z3 e0j2        e6          d6             Z3 e/j2        e6          d7             Z3 e.j2        e6          d8             Z3 e-j2        e6          d9             Z3d:S );z?
Handlers related to order relations: positive, negative, etc.
    )Qask)AddBasicExprMulPowS)	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                 l   |                                  \  }}|t          j        k    s|t          j        k    rd S |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_imagr
   r   evalf_precexprassumptionsris       r/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/sympy/assumptions/handlers/order.py_NegativePredicate_numberr7      s    DAqAEzzQ!%ZZt  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=   /   &    ~ <({;;;< <r8   c                 &    | j         }|t          |S r:   )is_negativer   r2   r3   rets      r6   r=   r=   4       

C
{##Jr8   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=   ;   s     ~ <({;;;AF4LL+&&A}}Fy  qz#,,D881:c??K00E99!	 9 C	NN""4 #"r8   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   rF   r   r   rG   rH   r2   r3   resultrK   s       r6   r=   r=   S   s    ~ <({;;;Fy  >Fqz#,, 	ZFFC+.. 	FFMr8   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   rE   r   r;   r7   rH   evenoddrG   r<   s     r6   r=   r=   c   s    yA~~qvdh-- 	5~ <({;;;
16$)k** ;qz$)$$k22 	16$(##[11 uqvdh-- 	5quTX,, 	;qz$),,k:::; ;	; 	;r8   c                     dS rM    r<   s     r6   r=   r=   {       5r8   c                 b    t          t          j        | j                  |          rdS t          rM   )r   r   rE   r   r   r<   s     r6   r=   r=      s+    
16$([)) u
r8   c                     | j         rCt          t          | |                    }|r"t          t	          j        |           |          S |S d S r:   )r;   r   r7   r   r   rE   )r2   r3   notnegatives      r6   r=   r=      T    ~  9$ L LMM 	qvd||[111 r8   c                 &    | j         }|t          |S r:   )is_nonnegativer   rA   s      r6   r=   r=          

C
{##Jr8   c                 &    | j         }|t          |S r:   )
is_nonzeror   rA   s      r6   r=   r=      s    
/C
{##Jr8   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 |r8   c              3   .   K   | ]} |          V  d S r:   rU   ).0r5   rb   s     r6   	<genexpr>z_.<locals>.<genexpr>   s+      ::AQ::::::r8   )r   r   rE   r;   r/   r   r.   )r2   r3   r5   rb   s      @r6   r=   r=      s    
16$<<E!!u~ ;JJqMM	 	 	 ::::)9)9::::::; ;r8   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   rH   rd   xr3   s     r6   re   z_.<locals>.<genexpr>   s5      
>
>q3qz!}}k**
>
>
>
>
>
>r8   c              3   \   K   | ]&}t          t          j        |                    V  'd S r:   )r   r   rG   rh   s     r6   re   z_.<locals>.<genexpr>   s5      FFq3qz!}}k22FFFFFFr8   T)allrF   r<   s    `r6   r=   r=      s`    

>
>
>
>DI
>
>
>>> FFFFDIFFFFFt r8   c                 j    | j         D ]*}t          t          j        |          |          }|r'|c S dS NT)rF   r   r   nonzero)r2   r3   rK   rO   s       r6   r=   r=      sC    y  QYs^^[11 	4r8   c                 P    t          t          j        | j                  |          S r:   )r   r   rn   rQ   r<   s     r6   r=   r=      s    qy##[111r8   c                 \    t          t          j        | j        d                   |          S Nr   )r   r   rn   rF   r<   s     r6   r=   r=      s"    qy1&&444r8   c                     d S r:   rU   r<   s     r6   r=   r=          4r8   c                 &    | j         }|t          |S r:   )is_zeror   rA   s      r6   r=   r=      s    
,C
{##Jr8   c           	          t          t          t          t          j        |           |                    t          t          j        |           |          g          S r:   )r   r   r   r   rn   rE   r<   s     r6   r=   r=      sJ    iAIdOO[ A ABBAF4LL+&&( ) ) )r8   c                 D    t          fd| j        D                       S )Nc              3   \   K   | ]&}t          t          j        |                    V  'd S r:   )r   r   zero)rd   rK   r3   s     r6   re   z_.<locals>.<genexpr>   s5      GGcCs[11GGGGGGr8   )r   rF   r<   s    `r6   r=   r=      s*     GGGGTYGGGGGGr8   c                 &    | j         }|t          |S r:   )is_nonpositiver   rA   s      r6   r=   r=      r]   r8   c                     | j         rCt          t          | |                    }|r"t          t	          j        |           |          S |S d S r:   )r;   r   _PositivePredicate_numberr   r   rE   )r2   r3   notpositives      r6   r=   r=      rZ   r8   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.   r/   r0   r1   s       r6   r}   r}      s    DAq
  GGAJJ7a<<q5L < GGAJJ7a<<Avvu

Aw!||1u < |r8   c                 &    | j         }|t          |S r:   )is_positiver   rA   s      r6   r=   r=     rC   r8   c                 4    | j         rt          | |          S d S r:   )r;   r}   r<   s     r6   r=   r=     r>   r8   c                     | j         rt          | |          S d}| j        D ]O}t          t	          j        |          |          r%t          t	          j        |          |          r|dz  }M d S |S rm   )r;   r}   rF   r   r   rH   rG   rN   s       r6   r=   r=     s    ~ <({;;;Fy  qz#,, 	C+.. 	d]FFFFMr8   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   rE   rF   rH   rG   rI   )r2   r3   r4   nonnegrK   s        r6   r=   r=      s    ~ <({;;;AF4LL+&&A}}Fy  qz#,,D881:c??K00E99!	 9 C	NN""4 #"r8   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)rQ   r   r   r   rE   r   	imaginaryrR   r   r   r;   r}   rH   rG   rS   r<   s     r6   r=   r=   4  sH   yA~~qvdh-- 	4q{48$$k22 	=qvdh"o..<<<~ <({;;;
1:di  +.. qvdh-- 	4
1:di  +.. qvdh-- 	4quTX,, 	5	 	 	r8   c                    t          t          j        | j                  |          rdS t          t          j        | j                  |          r7t          t          j        | j        t          t          z  z            |          S d S rm   )r   r   rE   r   r   rR   r   r   r<   s     r6   r=   r=   H  sq    
16$([)) t
1;tx  +.. 916$(AbD/**K8889 9r8   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   rE   rF   rH   rG   )r2   r3   r4   s      r6   r=   r=   O  s    AF49Q<  +..A}}
1:dilQ&''55 t
1:dilQ&''55 u r8   c                     | j         d         }t          t          j        |          t          j        |          z  |          rdS d S )Nr   T)rF   r   r   integerrH   r2   r3   ri   s      r6   r=   r=   Y  sC    	!A
19Q<<!*Q--'55 4 r8   c                     dS rM   rU   r<   s     r6   r=   r=   _  rV   r8   c                 F    t          t          j        |           |          S r:   )r   r   rn   r<   s     r6   r=   r=   c  s    qy,,,r8   c                 X    t          t          j        | j                  |          rdS d S rm   r   r   positive_definiterK   r<   s     r6   r=   r=   g  0    
1tx((+66 t r8   c                 X    t          t          j        | j                  |          rdS d S rm   r   r<   s     r6   r=   r=   l  r   r8   c                 |    | j         | j        k    r)t          t          j        | j                  |          rdS d S d S rm   )r5   jr   r   r   parentr<   s     r6   r=   r=   q  sC    $&A'44kBB 	t 	r8   c                 \    t          t          j        | j        d                   |          S rq   )r   r   rH   rF   r<   s     r6   r=   r=   w  s"    qz$)A,''555r8   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)rF   r   r   rH   nonpositiverG   nonnegativer   s      r6   r=   r=   {  s{    	!A
1:a==1=Q///== t
1:a==1=Q///== u r8   c                     | j         d         }t          t          j        |dz
            t          j        |dz             z  |          rdS d S )Nr   r-   T)rF   r   r   r   r   r   s      r6   r=   r=     sO    	!A
1=Q!-A"6"66DD t r8   c                 \    t          t          j        | j        d                   |          S rq   )r   r   rE   rF   r<   s     r6   r=   r=     s"    qvdil##[111r8   c                     d S r:   rU   r<   s     r6   r=   r=     rs   r8   c                 p    t          t          j        |           t          j        |           z  |          S r:   )r   r   rG   negative_infiniter<   s     r6   r=   r=     ,    qz$!"5d";";;[IIIr8   c                 p    t          t          j        |           t          j        |           z  |          S r:   )r   r   rH   positive_infiniter<   s     r6   r=   r=     r   r8   c                     t          t          j        |           t          j        |           z  t          j        |           z  t          j        |           z  |          S r:   )r   r   r   rG   rH   r   r<   s     r6   r=   r=     sT    	D!!AJt$4$44qz$7G7GG!J]^bJcJcc  r8   c                     t          t          j        |           t          j        |           z  t          j        |           z  |          S r:   )r   r   r   rG   ry   r<   s     r6   r=   r=     sA    	D!!AJt$4$44qvd||C  r8   c                     t          t          j        |           t          j        |           z  t          j        |           z  |          S r:   )r   r   ry   rH   r   r<   s     r6   r=   r=     sA    	tqz$'''!*=d*C*CC  r8   N)7__doc__sympy.assumptionsr   r   
sympy.corer   r   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}   objectrU   r8   r6   <module>r      s	    % $ $ $ $ $ $ $ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 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..  /.  r8   