
    Цic                     p   S r SSKJrJr  SSKJrJrJrJrJ	r	J
r
Jr  SSKJrJrJrJrJrJrJrJr  SSKJrJrJr  SSKJr  SSKJr  SS	KJrJrJ r J!r!  S
 r"\RF                  " \5      S 5       r$\RF                  " \5      S 5       r$\RF                  " \	5      S 5       r$\RF                  " \
5      S 5       r$\RF                  " \5      S 5       r$\RJ                  " \\\\5      S 5       r$\RF                  " \5      S 5       r$\RF                  " \5      S 5       r$\RF                  " \5      S 5       r$\RF                  " \5      S 5       r$\RF                  " \5      S 5       r$S r&\ RF                  " \5      S 5       r$\ RF                  " \5      S 5       r$\ RF                  " \	5      S 5       r$\ RF                  " \5      S 5       r$\ RF                  " \
5      S 5       r$\ RF                  " \5      S 5       r$\ RJ                  " \\\\5      S 5       r$\ RF                  " \5      S 5       r$\ RF                  " \5      S 5       r$\ RF                  " \5      S  5       r$\ RF                  " \5      S! 5       r$\ RF                  " \5      S" 5       r$\!RF                  " \5      S# 5       r$\!RF                  " \5      S$ 5       r$g%)&zD
Handlers for keys related to number theory: prime, even, odd, etc.
    )Qask)AddBasicExprFloatMulPowS)ImaginaryUnitInfinityIntegerNaNNegativeInfinityNumberSymbolRational
int_valued)Absimreisprime)MDNotImplementedError   )PrimePredicateCompositePredicateEvenPredicateOddPredicatec                     U R                  [        5      (       + n [        U R                  5       5      nX-
  R	                  S5      SL a  [
        e U(       a  [        U5      $ g ! [
         a     gf = f)Nr   F)atomsr   introundequals	TypeErrorr   )exprassumptionsexactis       a/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/sympy/assumptions/handlers/ntheory.py_PrimePredicate_numberr*      so    

5!!E

HQ5(O ) qz   s   5A% %
A21A2c                 0    U R                   nUc  [        eU$ N)is_primer   r%   r&   rets      r)   _r0   "   s    
--C
{##J    c                 <    U R                   (       a  [        X5      $ g r,   )	is_numberr*   r%   r&   s     r)   r0   r0   )   s    ~~%d88 r1   c                 "   U R                   (       a  [        X5      $ U R                   H*  n[        [        R
                  " U5      U5      (       a  M*    g    U R                   H)  nUR                   (       d  M  UR                  (       d  M)    g   g NF)r3   r*   argsr   r   integeris_composite)r%   r&   args      r)   r0   r0   .   sa    ~~%d88yy199S>;//  yy===S--- r1   c                     U R                   (       a  [        X5      $ [        [        R                  " U R
                  5      U5      (       a1  [        [        R                  " U R                  5      U5      (       a  ggg)z 
Integer**Integer     -> !Prime
FN)r3   r*   r   r   r8   expbaser4   s     r)   r0   r0   9   sW    
 ~~%d88
199TXX,,		$))$k22 3 -r1   c                     [        U 5      $ r,   r   r4   s     r)   r0   r0   D   s    4=r1   c                     gr6    r4   s     r)   r0   r0   H       r1   c                     [        X5      $ r,   r*   r4   s     r)   r0   r0   L       !$44r1   c                     [        X5      $ r,   rC   r4   s     r)   r0   r0   P   rD   r1   c                     g r,   r@   r4   s     r)   r0   r0   T       r1   c                 0    U R                   nUc  [        eU$ r,   )r9   r   r.   s      r)   r0   r0   [   s    


C
{##Jr1   c                 *   [        [        R                  " U 5      U5      nU(       ak  [        [        R                  " U 5      U5      nU(       aB  [        [        R                  " U 5      U5      nUc  g U R                  S5      (       a  gU(       + $ U$ U$ )N   F)r   r   positiver8   primer#   )r%   r&   	_positive_integer_primes        r)   r0   r0   b   sr    AJJt$k2Iqyy44F~ {{1~~:Or1   c                     [        U [        [        45      (       a  [        U 5      (       a  g g [	        U R                  5       5      nX-
  R                  S5      (       d  gUS-  S:H  $ ! [         a     gf = f)NFr   r   )
isinstancefloatr   r   r!   r"   r$   r#   )r%   r&   r(   s      r)   _EvenPredicate_numberrS   x   ss    $''d

 HQq5A:	  s   A) )
A65A6c                 0    U R                   nUc  [        eU$ r,   )is_evenr   r.   s      r)   r0   r0      s    
,,C
{##Jr1   c                 <    U R                   (       a  [        X5      $ g r,   )r3   rS   r4   s     r)   r0   r0      s    ~~$T77 r1   c                    U R                   (       a  [        X5      $ Su  p#pEU R                   H  n[        [        R
                  " U5      U5      (       a  [        [        R                  " U5      U5      (       a  SnO[        [        R                  " U5      U5      (       a  US-  nOjU(       d/  US:w  a)  [        [        R                  " XV-   5      U5      (       a  SnO3[        [        R                  " U5      U5      (       a  U(       a    gSnO  gUnM     U(       a  gU(       a  gU[        U R                  5      :X  a  gg)z
Even * Integer    -> Even
Even * Odd        -> Even
Integer * Odd     -> ?
Odd * Odd         -> Odd
Even * Even       -> Even
Integer * Integer -> Even if Integer + Integer = Odd
otherwise         -> ?
)Fr   FrJ   TrJ   FN)
r3   rS   r7   r   r   r8   evenodd
irrationallen)r%   r&   rX   rY   rZ   accr:   s          r)   r0   r0      s     ~~$T77!3Dzyyqyy~{++166#;,,QUU3Z--qcQhquuSY'55Dc"K00 J% ( #dii.  !r1   c                    U R                   (       a  [        X5      $ SnU R                   HX  n[        [        R
                  " U5      U5      (       a  M*  [        [        R                  " U5      U5      (       a	  U(       + nMX    g   U$ )z=
Even + Odd  -> Odd
Even + Even -> Even
Odd  + Odd  -> Even

TN)r3   rS   r7   r   r   rX   rY   )r%   r&   _resultr:   s       r)   r0   r0      sg     ~~$T77Gyyqvvc{K((s[))!kG  r1   c                 .   U R                   (       a  [        X5      $ [        [        R                  " U R
                  5      U5      (       a  [        [        R                  " U R
                  5      U5      (       a*  [        [        R                  " U R                  5      U5      $ [        [        R                  " U R
                  5      ) [        R                  " U R                  5      -  U5      (       a  gU R                  [        R                  L a  gg g r6   )r3   rS   r   r   r8   r<   rK   rX   r=   negativerY   r   NegativeOner4   s     r)   r0   r0      s    ~~$T77
199TXX,,qzz$((#[11qvvdii(+66!**TXX&&tyy)99;GGYY!--' ( -r1   c                 <    [        U R                  S-  5      (       + $ )NrJ   )boolpr4   s     r)   r0   r0      s    DFFQJr1   c                     gr6   r@   r4   s     r)   r0   r0      rA   r1   c                     [        X5      $ r,   )rS   r4   s     r)   r0   r0      s     33r1   c                     [        [        R                  " U R                  S   5      U5      (       a-  [        [        R                  " U R                  S   5      U5      $ g Nr   r   r   realr7   rX   r4   s     r)   r0   r0      C    
166$))A,--166$))A,'55 .r1   c                     [        [        R                  " U R                  S   5      U5      (       a-  [        [        R                  " U R                  S   5      U5      $ g rh   ri   r4   s     r)   r0   r0      rk   r1   c                 j    [        [        R                  " U R                  S   5      U5      (       a  gg )Nr   T)r   r   rj   r7   r4   s     r)   r0   r0      s(    
166$))A,-- .r1   c                     g r,   r@   r4   s     r)   r0   r0      rG   r1   c                 0    U R                   nUc  [        eU$ r,   )is_oddr   r.   s      r)   r0   r0      s    
++C
{##Jr1   c                     [        [        R                  " U 5      U5      nU(       a+  [        [        R                  " U 5      U5      nUc  g U(       + $ U$ r,   )r   r   r8   rX   )r%   r&   rN   _evens       r)   r0   r0     sB    199T?K0HAFF4L+.=yOr1   N)'__doc__sympy.assumptionsr   r   
sympy.corer   r   r   r   r	   r
   r   sympy.core.numbersr   r   r   r   r   r   r   r   sympy.functionsr   r   r   sympy.ntheoryr   sympy.multipledispatchr   predicates.ntheoryr   r   r   r   r*   registerr0   register_manyrS   r@   r1   r)   <module>r}      s_   % ; ; ;: : : ' ' ! 8! !
   9  9     ! " h2BMR S 5  5 &5 '5   T" # U# $*   8 8 & &P  ( 	 	    !  Xx1A=Q R %4 &4 6 6 6 6     t  u r1   