
    \hzW                    v   S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
Jr  S SKJr  S SKJrJ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Jr  S S
KJr  S SKJ r J!r!  S SK"J#r#   " S S\5      r$ " S S\$5      r%\#" \%\5      S 5       r& " S S\$5      r'\#" \'\5      S 5       r& " S S\5      r(\#" \(\5      S 5       r&g)    )annotations)Basic)Expr)AddS)get_integer_partPrecisionExhausted)DefinedFunction)fuzzy_or	fuzzy_and)Integer
int_valued)GtLtGeLe
Relationalis_eqis_leis_lt)_sympify)imre)dispatchc                  V    \ rS rSr% SrS\S'   \S 5       r\S 5       rS r	S r
S	 rS
rg)RoundFunction   z+Abstract base class for rounding functions.ztuple[Expr]argsc                   U R                  U5      =nb  U$ U R                  U5      =nb  U$ UR                  (       d  UR                  SL a  U$ UR                  (       d"  [
        R                  U-  R                  (       aO  [        U5      nUR                  [
        R                  5      (       d  U " U5      [
        R                  -  $ U " USS9$ [
        R                  =n=pVS n[        R                  " U5       Hk  nUR                  (       a+  U" [        U5      5      =nb  XC[
        R                  -  -  nM?  U" U5      =nb  XC-  nMP  UR                  (       a  XX-  nMg  Xh-  nMm     U(       d	  U(       d  U$ U(       a  U(       af  UR                  (       a3  UR                  (       dD  [
        R                  U-  R                  (       d"  UR                  (       ad  UR                  (       aS   [        XPR                  0 SS9u  pU[!        U	5      [!        U5      [
        R                  -  -   -  n[
        R                  nXe-  nU(       d  U$ UR                  (       d"  [
        R                  U-  R                  (       a#  X@" [        U5      SS9[
        R                  -  -   $ ['        U[(        [*        45      (       a  XF-   $ X@" USS9-   $ ! ["        [$        4 a     Nf = f)NFevaluatec                b    [        U 5      (       a  [        U 5      $ U R                  (       a  U $ S $ N)r   int
is_integer)xs    [/var/www/auris/envauris/lib/python3.13/site-packages/sympy/functions/elementary/integers.py<lambda>$RoundFunction.eval.<locals>.<lambda>-   s+    JqMM#a& )A)#')    T)return_ints)_eval_number_eval_const_numberr%   	is_finiteis_imaginaryr   ImaginaryUnitis_realr   hasZeror   	make_args	is_numberr   _dirr   r	   NotImplementedError
isinstancefloorceiling)
clsargviipartnpartspartintoftrs
             r'   evalRoundFunction.eval   s>   !!#&&A3H'',,A9H>>S]]e3J 3<<3A55))1vaoo--sU++ !"&&)s#A~~be#41"A1??**Qx-!,


 $ L MMu11aooe6K5T5T""u}}'88RT;gaj&@@@ 	LAOOE$9#B#B3r%y59!//IIIw/00= 3uu555 '(;< s   1AK K! K!c                    [        5       er#   )r7   r;   r<   s     r'   r,   RoundFunction._eval_numberS   s    !##r*   c                4    U R                   S   R                  $ Nr   )r   r.   selfs    r'   _eval_is_finiteRoundFunction._eval_is_finiteW   s    yy|%%%r*   c                4    U R                   S   R                  $ rK   r   r1   rL   s    r'   _eval_is_realRoundFunction._eval_is_realZ       yy|###r*   c                4    U R                   S   R                  $ rK   rQ   rL   s    r'   _eval_is_integerRoundFunction._eval_is_integer]   rT   r*    N)__name__
__module____qualname____firstlineno____doc____annotations__classmethodrE   r,   rN   rR   rV   __static_attributes__rX   r*   r'   r   r      sA    5
66 66p $ $&$$r*   r   c                  |    \ rS rSrSrSr\S 5       r\S 5       rS r	SS jr
S rS	 rS
 rS rS rS rS rS rSrg)r9   a   a|  
Floor is a univariate function which returns the largest integer
value not greater than its argument. This implementation
generalizes floor to complex numbers by taking the floor of the
real and imaginary parts separately.

Examples
========

>>> from sympy import floor, E, I, S, Float, Rational
>>> floor(17)
17
>>> floor(Rational(23, 10))
2
>>> floor(2*E)
5
>>> floor(-Float(0.567))
-1
>>> floor(-I/2)
-I
>>> floor(S(5)/2 + 5*I/2)
2 + 2*I

See Also
========

sympy.functions.elementary.integers.ceiling

References
==========

.. [1] "Concrete mathematics" by Graham, pp. 87
.. [2] https://mathworld.wolfram.com/FloorFunction.html

c                    UR                   (       a  UR                  5       $ [        S X* 4 5       5      (       a  U$ UR                  (       a  UR	                  [
        5      S   $ g )Nc              3  `   #    U  H$  n[         [        4  H  n[        X5      v   M     M&     g 7fr#   r9   r:   r8   .0r>   js      r'   	<genexpr>%floor._eval_number.<locals>.<genexpr>   1      @$Aug.> !.>  $   ,.r   )	is_Numberr9   anyis_NumberSymbolapproximation_intervalr   rH   s     r'   r,   floor._eval_number   s`    ==99; @t@ @ @J--g6q99 r*   c                   UR                   (       GaO  UR                  (       a  [        R                  $ UR                  (       a  UR                  5       u  p#UR                  nUc  g U(       a  U* U* p2[        X#5      (       a  [        R                  $ [        [        X25      [        USU-  5      /5      (       a  [        R                  $ UR                  (       a  UR                  5       u  p#UR                  nUc  g U(       a  U* U* p2[        U* U5      (       a  [        R                  $ [        [        SU-  U5      [        X#* 5      /5      (       a  [        S5      $ g g g N   )r1   is_zeror   r3   is_positiveas_numer_denomis_negativer   r   r   OneNegativeOner   r;   r<   numdenss        r'   r-   floor._eval_const_number   s   ;;;{{vv--/OO9 #tcT??66MeCouS!C%/@ABB55L--/OO9 #tcT#s##==(eBsFC0%T2BCDD"2;& E ! r*   c                   SSK Jn  U R                  S   nUR                  US5      nU R                  US5      nU[        R
                  L d  [        Xd5      (       a8  UR                  US[        U5      R                  (       a  SOSS9n[        U5      nUR                  (       aU  Xg:X  aN  UR                  XS:w  a  UOSS9nUR                  (       a  US-
  $ UR                  (       a  U$ [        SU-  5      eU$ UR                  XUS	9$ 
Nr   AccumBounds-+dir   cdirNot sure of sign of %slogxr   )!sympy.calculus.accumulationboundsr   r   subsr   NaNr8   limitr   rz   r9   r.   r   rx   r7   as_leading_term	rM   r&   r   r   r   r<   arg0rD   ndirs	            r'   _eval_as_leading_termfloor._eval_as_leading_term   s    Aiilxx1~IIaO155=Jt9999Qbh.B.Bs9LDdA>>ywwqqytaw@##q5L%%H-.F.MNN""1d";;r*   c                B   U R                   S   nUR                  US5      nU R                  US5      nU[        R                  L a8  UR	                  US[        U5      R                  (       a  SOSS9n[        U5      nUR                  (       a<  SSK	J
n  SSKJn	  UR                  XX45      n
US::  a  U	" SUS45      OU" SS5      nX-   $ Xg:X  aN  UR                  XS:w  a  UOSS	9nUR                  (       a  US-
  $ UR                  (       a  U$ [!        S
U-  5      eU$ )Nr   r   r   r   r   Orderr   rc   r   r   )r   r   r   r   r   r   rz   r9   is_infiniter   r   sympy.series.orderr   _eval_nseriesr   rx   r7   rM   r&   nr   r   r<   r   rD   r   r   r   or   s                r'   r   floor._eval_nseries   s    iilxx1~IIaO155=99Qbh.B.Bs9LDdAE0!!!3A$%Fa!Q B0BA5L9771194!7<D1u!!)*BT*IJJHr*   c                4    U R                   S   R                  $ rK   )r   rz   rL   s    r'   _eval_is_negativefloor._eval_is_negative       yy|'''r*   c                4    U R                   S   R                  $ rK   )r   is_nonnegativerL   s    r'   _eval_is_nonnegativefloor._eval_is_nonnegative       yy|***r*   c                    [        U* 5      * $ r#   r:   rM   r<   kwargss      r'   _eval_rewrite_as_ceilingfloor._eval_rewrite_as_ceiling   s    ~r*   c                    U[        U5      -
  $ r#   fracr   s      r'   _eval_rewrite_as_fracfloor._eval_rewrite_as_frac   s    T#Yr*   c                   [        U5      nU R                  S   R                  (       ac  UR                  (       a  U R                  S   US-   :  $ UR                  (       a,  UR                  (       a  U R                  S   [        U5      :  $ U R                  S   U:X  a!  UR                  (       a  [         R                  $ U[         R                  L a!  U R                  (       a  [         R                  $ [        XSS9$ Nr   r   Fr    )
r   r   r1   r%   r5   r:   trueInfinityr.   r   rM   others     r'   __le__floor.__le__   s    %99Q<yy|eai//5==yy|gen4499Q<5 U]]66MAJJ4>>66M$..r*   c                   [        U5      nU R                  S   R                  (       a`  UR                  (       a  U R                  S   U:  $ UR                  (       a,  UR                  (       a  U R                  S   [        U5      :  $ U R                  S   U:X  a2  UR                  (       a!  UR                  (       a  [         R                  $ U[         R                  L a!  U R                  (       a  [         R                  $ [        XSS9$ Nr   Fr    )r   r   r1   r%   r5   r:   is_nonintegerfalseNegativeInfinityr.   r   r   r   s     r'   __ge__floor.__ge__   s    %99Q<yy|u,,5==yy|wu~5599Q<5 U]]u7J7J77NA&&&4>>66M$..r*   c                   [        U5      nU R                  S   R                  (       ac  UR                  (       a  U R                  S   US-   :  $ UR                  (       a,  UR                  (       a  U R                  S   [        U5      :  $ U R                  S   U:X  a!  UR                  (       a  [         R                  $ U[         R                  L a!  U R                  (       a  [         R                  $ [        XSS9$ r   )r   r   r1   r%   r5   r:   r   r   r.   r   r   r   s     r'   __gt__floor.__gt__  s    %99Q<yy|uqy005==yy|wu~5599Q<5 U]]77NA&&&4>>66M$..r*   c                   [        U5      nU R                  S   R                  (       a`  UR                  (       a  U R                  S   U:  $ UR                  (       a,  UR                  (       a  U R                  S   [        U5      :  $ U R                  S   U:X  a2  UR                  (       a!  UR                  (       a  [         R                  $ U[         R                  L a!  U R                  (       a  [         R                  $ [        XSS9$ r   )r   r   r1   r%   r5   r:   r   r   r   r.   r   r   s     r'   __lt__floor.__lt__  s    %99Q<yy|e++5==yy|gen4499Q<5 U]]u7J7J66MAJJ4>>66M$..r*   rX   Nr   )rY   rZ   r[   r\   r]   r6   r_   r,   r-   r   r   r   r   r   r   r   r   r   r   r`   rX   r*   r'   r9   r9   a   sg    "F D: : ' '><*0(+////r*   r9   c                    [        U R                  [        5      U5      =(       d    [        U R                  [        5      U5      $ r#   )r   rewriter:   r   lhsrhss     r'   _eval_is_eqr   #  s2    W%s+ %ckk$$%r*   c                  |    \ rS rSrSrSr\S 5       r\S 5       rS r	SS jr
S rS	 rS
 rS rS rS rS rS rSrg)r:   i)  a  
Ceiling is a univariate function which returns the smallest integer
value not less than its argument. This implementation
generalizes ceiling to complex numbers by taking the ceiling of the
real and imaginary parts separately.

Examples
========

>>> from sympy import ceiling, E, I, S, Float, Rational
>>> ceiling(17)
17
>>> ceiling(Rational(23, 10))
3
>>> ceiling(2*E)
6
>>> ceiling(-Float(0.567))
0
>>> ceiling(I/2)
I
>>> ceiling(S(5)/2 + 5*I/2)
3 + 3*I

See Also
========

sympy.functions.elementary.integers.floor

References
==========

.. [1] "Concrete mathematics" by Graham, pp. 87
.. [2] https://mathworld.wolfram.com/CeilingFunction.html

r   c                    UR                   (       a  UR                  5       $ [        S X* 4 5       5      (       a  U$ UR                  (       a  UR	                  [
        5      S   $ g )Nc              3  `   #    U  H$  n[         [        4  H  n[        X5      v   M     M&     g 7fr#   rf   rg   s      r'   rj   'ceiling._eval_number.<locals>.<genexpr>S  rl   rm   r   )rn   r:   ro   rp   rq   r   rH   s     r'   r,   ceiling._eval_numberO  s`    ==;;=  @t@ @ @J--g6q99 r*   c                   UR                   (       GaO  UR                  (       a  [        R                  $ UR                  (       a  UR                  5       u  p#UR                  nUc  g U(       a  U* U* p2[        X#5      (       a  [        R                  $ [        [        X25      [        USU-  5      /5      (       a  [        S5      $ UR                  (       a  UR                  5       u  p#UR                  nUc  g U(       a  U* U* p2[        U* U5      (       a  [        R                  $ [        [        SU-  U5      [        X#* 5      /5      (       a  [        R                  $ g g g rt   )r1   rw   r   r3   rx   ry   rz   r   r{   r   r   r   r|   r}   s        r'   r-   ceiling._eval_const_numberY  s   ;;;{{vv--/OO9 #tcT??55LeCouS!C%/@ABB"1:%--/OO9 #tcT#s##66MeBsFC0%T2BCDD==( E ! r*   c                   SSK Jn  U R                  S   nUR                  US5      nU R                  US5      nU[        R
                  L d  [        Xd5      (       a8  UR                  US[        U5      R                  (       a  SOSS9n[        U5      nUR                  (       aU  Xg:X  aN  UR                  XS:w  a  UOSS9nUR                  (       a  U$ UR                  (       a  US-   $ [        SU-  5      eU$ UR                  XUS	9$ r   )r   r   r   r   r   r   r8   r   r   rz   r:   r.   r   rx   r7   r   r   s	            r'   r   ceiling._eval_as_leading_termy  s    Aiilxx1~IIaO155=Jt9999Qbh.B.Bs9LDA>>ywwqqytaw@##H%%q5L-.F.MNN""1d";;r*   c                B   U R                   S   nUR                  US5      nU R                  US5      nU[        R                  L a8  UR	                  US[        U5      R                  (       a  SOSS9n[        U5      nUR                  (       a<  SSK	J
n  SSKJn	  UR                  XX45      n
US::  a  U	" SUS45      OU" SS5      nX-   $ Xg:X  aN  UR                  XS:w  a  UOSS9nUR                  (       a  U$ UR                  (       a  US-   $ [!        S	U-  5      eU$ )
Nr   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   rz   r:   r   r   r   r   r   r   r   rx   r7   r   s                r'   r   ceiling._eval_nseries  s    iilxx1~IIaO155=99Qbh.B.Bs9LDAE0!!!3A$%Fa!Q Aq0AA5L9771194!7<D!!1u)*BT*IJJHr*   c                    [        U* 5      * $ r#   r9   r   s      r'   _eval_rewrite_as_floorceiling._eval_rewrite_as_floor  s    sd|r*   c                     U[        U* 5      -   $ r#   r   r   s      r'   r   ceiling._eval_rewrite_as_frac  s    T3$Zr*   c                4    U R                   S   R                  $ rK   )r   rx   rL   s    r'   _eval_is_positiveceiling._eval_is_positive  r   r*   c                4    U R                   S   R                  $ rK   )r   is_nonpositiverL   s    r'   _eval_is_nonpositiveceiling._eval_is_nonpositive  r   r*   c                   [        U5      nU R                  S   R                  (       ac  UR                  (       a  U R                  S   US-
  :*  $ UR                  (       a,  UR                  (       a  U R                  S   [        U5      :*  $ U R                  S   U:X  a!  UR                  (       a  [         R                  $ U[         R                  L a!  U R                  (       a  [         R                  $ [        XSS9$ r   )r   r   r1   r%   r5   r9   r   r   r.   r   r   r   s     r'   r   ceiling.__lt__  s    %99Q<yy|uqy005==yy|uU|3399Q<5 U]]77NAJJ4>>66M$..r*   c                   [        U5      nU R                  S   R                  (       a`  UR                  (       a  U R                  S   U:  $ UR                  (       a,  UR                  (       a  U R                  S   [        U5      :  $ U R                  S   U:X  a2  UR                  (       a!  UR                  (       a  [         R                  $ U[         R                  L a!  U R                  (       a  [         R                  $ [        XSS9$ r   )r   r   r1   r%   r5   r9   r   r   r   r.   r   r   s     r'   r   ceiling.__gt__  s    %99Q<yy|e++5==yy|eEl2299Q<5 U]]u7J7J66MA&&&4>>66M$..r*   c                   [        U5      nU R                  S   R                  (       ac  UR                  (       a  U R                  S   US-
  :  $ UR                  (       a,  UR                  (       a  U R                  S   [        U5      :  $ U R                  S   U:X  a!  UR                  (       a  [         R                  $ U[         R                  L a!  U R                  (       a  [         R                  $ [        XSS9$ r   )
r   r   r1   r%   r5   r9   r   r   r.   r   r   s     r'   r   ceiling.__ge__  s    %99Q<yy|eai//5==yy|eEl2299Q<5 U]]66MA&&&4>>66M$..r*   c                   [        U5      nU R                  S   R                  (       a`  UR                  (       a  U R                  S   U:*  $ UR                  (       a,  UR                  (       a  U R                  S   [        U5      :*  $ U R                  S   U:X  a2  UR                  (       a!  UR                  (       a  [         R                  $ U[         R                  L a!  U R                  (       a  [         R                  $ [        XSS9$ r   )r   r   r1   r%   r5   r9   r   r   r   r.   r   r   r   s     r'   r   ceiling.__le__  s    %99Q<yy|u,,5==yy|uU|3399Q<5 U]]u7J7J77NAJJ4>>66M$..r*   rX   Nr   )rY   rZ   r[   r\   r]   r6   r_   r,   r-   r   r   r   r   r   r   r   r   r   r   r`   rX   r*   r'   r:   r:   )  sg    "F D: : ) )><*0 (+////r*   r:   c                    [        U R                  [        5      U5      =(       d    [        U R                  [        5      U5      $ r#   )r   r   r9   r   r   s     r'   r   r     s-    U#S)IU3;;t3DS-IIr*   c                      \ rS rSrSr\S 5       rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rSS jrSrg)r   i  a  Represents the fractional part of x

For real numbers it is defined [1]_ as

.. math::
    x - \left\lfloor{x}\right\rfloor

Examples
========

>>> from sympy import Symbol, frac, Rational, floor, I
>>> frac(Rational(4, 3))
1/3
>>> frac(-Rational(4, 3))
2/3

returns zero for integer arguments

>>> n = Symbol('n', integer=True)
>>> frac(n)
0

rewrite as floor

>>> x = Symbol('x')
>>> frac(x).rewrite(floor)
x - floor(x)

for complex arguments

>>> r = Symbol('r', real=True)
>>> t = Symbol('t', real=True)
>>> frac(t + I*r)
I*frac(r) + frac(t)

See Also
========

sympy.functions.elementary.integers.floor
sympy.functions.elementary.integers.ceiling

References
===========

.. [1] https://en.wikipedia.org/wiki/Fractional_part
.. [2] https://mathworld.wolfram.com/FractionalPart.html

c                  ^ ^ SSK Jm  UU 4S jn[        R                  [        R                  pC[        R
                  " U5       Hu  nUR                  (       d"  [        R                  U-  R                  (       a;  [        U5      nUR                  [        R                  5      (       d  XF-  nMk  X5-  nMq  X5-  nMw     U" U5      nU" U5      nU[        R                  U-  -   $ )Nr   r   c                x  > U [         R                  [         R                  4;   a	  T" SS5      $ U R                  (       a  [         R                  $ U R
                  (       aT  U [         R                  L a  [         R                  $ U [         R                  L a  [         R                  $ U [        U 5      -
  $ T" U SS9$ r   )	r   r   r   r%   r3   r5   r   ComplexInfinityr9   )r<   r   r;   s    r'   _evalfrac.eval.<locals>._eval%  s    qzz1#5#566"1a((~~vv}}!%%<55LA---55Ls++sU++r*   )r   r   r   r3   r   r4   r/   r0   r1   r   r2   )r;   r<   r   realimagrC   r>   r   s   `      @r'   rE   	frac.eval!  s    A	, VVQVVds#A ~~!//!"3!<!<qEuuQ__--IDID	 $ T{T{aood***r*   c                    U[        U5      -
  $ r#   r   r   s      r'   r   frac._eval_rewrite_as_floorD  s    U3Zr*   c                     U[        U* 5      -   $ r#   r   r   s      r'   r   frac._eval_rewrite_as_ceilingG  s    WcT]""r*   c                    g)NTrX   rL   s    r'   rN   frac._eval_is_finiteJ  s    r*   c                4    U R                   S   R                  $ rK   )r   is_extended_realrL   s    r'   rR   frac._eval_is_realM  s    yy|,,,r*   c                4    U R                   S   R                  $ rK   )r   r/   rL   s    r'   _eval_is_imaginaryfrac._eval_is_imaginaryP  s    yy|(((r*   c                4    U R                   S   R                  $ rK   )r   r%   rL   s    r'   rV   frac._eval_is_integerS  s    yy|&&&r*   c                x    [        U R                  S   R                  U R                  S   R                  /5      $ rK   )r   r   rw   r%   rL   s    r'   _eval_is_zerofrac._eval_is_zeroV  s.    1--tyy|/F/FGHHr*   c                    g)NFrX   rL   s    r'   r   frac._eval_is_negativeY  s    r*   c                    U R                   (       aG  [        U5      nUR                  (       a  [        R                  $ U R                  U5      nUb  U(       + $ [        XSS9$ NFr    )r  r   is_extended_nonpositiver   r   _value_one_or_morer   rM   r   ress      r'   r   frac.__ge__\  sO      UOE,,vv))%0Cx$..r*   c                    U R                   (       aG  [        U5      nU R                  U5      nUb  U(       + $ UR                  (       a  [        R
                  $ [        XSS9$ r  )r  r   r  is_extended_negativer   r   r   r  s      r'   r   frac.__gt__h  sO      UOE))%0Cx))vv$..r*   c                    U R                   (       aB  [        U5      nUR                  (       a  [        R                  $ U R                  U5      nUb  U$ [        XSS9$ r  )r  r   r  r   r   r  r   r  s      r'   r   frac.__le__t  sM      UOE))ww))%0C
$..r*   c                    U R                   (       aB  [        U5      nUR                  (       a  [        R                  $ U R                  U5      nUb  U$ [        XSS9$ r  )r  r   r  r   r   r  r   r  s      r'   r   frac.__lt__  sM      UOE,,ww))%0C
$..r*   c                   UR                   (       av  UR                  (       a1  US:  nU(       a%  [        U[        5      (       d  [        R
                  $ UR                  (       a"  UR                  (       a  [        R
                  $ g g g )Nr   )r  r5   r8   r   r   r   r%   rx   r  s      r'   r  frac._value_one_or_more  sZ    !!qjz#z::66ME$5$5vv %6 "r*   c                   SSK Jn  U R                  S   nUR                  US5      nU R                  US5      nUR                  (       aU  UR
                  (       aB  UR                  XS9nUR                  (       a  [        R                  $ XV-
  R                  XUS9$ U$ U[        R                  [        R                  [        R                  4;   a	  U" SS5      $ UR                  XUS9$ )Nr   r   r   r   r   )r   r   r   r   r.   rw   r   rz   r   r{   r   r   r   r   r   s	            r'   r   frac._eval_as_leading_term  s    Aiilxx1~IIaO>>yywwqw,##55L
33At3LLa''Q5G5GHHq!$$""1d";;r*   c                   SSK Jn  U R                  S   nUR                  US5      nU R                  US5      nUR                  (       a2  SSKJn	  US::  a  U" SUS45      n
U
$ U	" SS5      U" X-  US45      -   n
U
$ Xg-
  R                  XX4S9nUR                  (       aD  UR                  XS9nXR                  (       a  [        R                  O[        R                  -  nU$ X-  nU$ )Nr   r   r   r   r   r   )r   r   r   r   r   r   r   r   rw   r   rz   r   r{   r3   )rM   r&   r   r   r   r   r<   r   rD   r   r   r  r   s                r'   r   frac._eval_nseries  s    ,iilxx1~IIaOE$%Fa!Q AH 1<Aq0AE!$QRTUPVDW0WAH:,,Q,HCyywwqw, 0 0quuaff< J Jr*   rX   Nr   )rY   rZ   r[   r\   r]   r_   rE   r   r   rN   rR   r  rV   r  r   r   r   r   r   r  r   r   r`   rX   r*   r'   r   r     si    /`  +  +D #-)'I
/
/
/
/<$r*   r   c                    U R                  [        5      U:X  d  U R                  [        5      U:X  a  gUR                  (       a  gU R	                  U5      nUb  gg )NTF)r   r9   r:   r  r  )r   r   r  s      r'   r   r     sP    Ec!	W		$


 
 
%C
 r*   N))
__future__r   sympy.core.basicr   sympy.core.exprr   
sympy.corer   r   sympy.core.evalfr   r	   sympy.core.functionr
   sympy.core.logicr   r   sympy.core.numbersr   r   sympy.core.relationalr   r   r   r   r   r   r   r   sympy.core.sympifyr   $sympy.functions.elementary.complexesr   r   sympy.multipledispatchr   r   r9   r   r:   r   rX   r*   r'   <module>r2     s    " "    A / 0 2 Q Q Q ' 7 +I$O I$X/M /D 
%% %
/m /D 
'5J JH? HV 
$
 
r*   