§
    OŠtjzW  ã                  ó´  — d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZ d dlmZmZ d dl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 d dlm Z m!Z! d dl"m#Z#  G d„ de¦  «        Z$ G d„ de$¦  «        Z% e#e%e¦  «        d„ ¦   «         Z& G d„ de$¦  «        Z' e#e'e¦  «        d„ ¦   «         Z& G d„ de¦  «        Z( e#e(e¦  «        d„ ¦   «         Z&dS )é    )Ú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                  ó\   — e Zd ZU dZded<   ed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d	S )
ÚRoundFunctionz+Abstract base class for rounding functions.ztuple[Expr]Úargsc                ó¼  — |                       |¦  «        x}�|S |                      |¦  «        x}�|S |j        s	|j        du r|S |j        st
          j        |z  j        rSt          |¦  «        }| 	                    t
          j        ¦  «        s | |¦  «        t
          j        z  S  | |d¬¦  «        S t
          j
        x}x}}d„ }t          j        |¦  «        D ][}|j        r- |t          |¦  «        ¦  «        x}�||t
          j        z  z  }Œ6 ||¦  «        x}�||z  }ŒI|j        r||z  }ŒV||z  }Œ\|s|s|S |r¡|r0|j        r|j        s"t
          j        |z  j        s|j        rv|j        ro	 t          || j        i d¬¦  «        \  }	}|t!          |	¦  «        t!          |¦  «        t
          j        z  z   z  }t
          j
        }n# t"          t$          f$ r Y nw xY w||z  }|s|S |j        st
          j        |z  j        r*| | t          |¦  «        d¬¦  «        t
          j        z  z   S t'          |t(          t*          f¦  «        r||z   S | | |d¬¦  «        z   S )NF©Úevaluatec                óT   — t          | ¦  «        rt          | ¦  «        n
| j        r| nd S ©N)r   ÚintÚ
is_integer)Úxs    úa/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/functions/elementary/integers.pyú<lambda>z$RoundFunction.eval.<locals>.<lambda>-   s,   € ¥J¨q¡M¤Mð )�#˜a™&œ&˜&Ø”Ð'ˆAˆA 4ð ó    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&   ÚevalzRoundFunction.eval   sß  € à×!Ò! #Ñ&Ô&Ð&ˆAÐ3ØˆHØ×'Ò'¨Ñ,Ô,Ð,ˆAÐ9ØˆHàŒ>ð 	˜Sœ]¨eÐ3Ð3ØˆJØÔð 	,¥¤°Ñ 3Ô<ð 	,Ý�3‘”ˆAØ—5’5�œÑ)Ô)ð .Ø�s˜1‘v”v�aœoÑ-Ð-Ø�3�s UÐ+Ñ+Ô+Ð+õ !"¤Ð&ˆÐ&�˜ð)ð )ˆå”˜sÑ#Ô#ð 	ð 	ˆAØŒ~ð ¨¨­b°©e¬e©¬Ð#4 1Ð"AØ˜�1œ?Ñ*Ñ*��Ø�u˜Q‘x”x�-�!Ð,Ø˜‘
��Ø”ð Ø˜‘
��à˜‘
��àð 	˜ð 	ØˆLð ð 
	Øð
	àŒMð
	à$Ô1ð
	å67´oÀeÑ6KÔ5Tð
	ð Ô"ð
	ð (-¤}ð
	ðÝ'Ø˜3œ8 R°Tð;ñ ;ô ;‘��1à� ™œ¥g¨a¡j¤jµ´Ñ&@Ñ@Ñ@�Ýœ��øÝ&Õ(;Ð<ð ð ð Ø�ðøøøð 	�‰ˆØð 	6ØˆLØÔð 	6¥A¤O°EÑ$9Ô#Bð 	6Ø˜3˜3�r %™yœy°5Ð9Ñ9Ô9½!¼/ÑIÑIÐIÝ˜¥¥wÐ/Ñ0Ô0ð 	6Ø˜5‘=Ð à˜3˜3˜u¨uÐ5Ñ5Ô5Ñ5Ð5s   Å1AG ÇGÇGc                ó   — t          ¦   «         ‚r"   )r5   ©r9   r:   s     r&   r*   zRoundFunction._eval_numberS   s   € å!Ñ#Ô#Ð#r(   c                ó&   — | j         d         j        S ©Nr   )r   r,   ©Úselfs    r&   Ú_eval_is_finitezRoundFunction._eval_is_finiteW   s   € ØŒy˜Œ|Ô%Ð%r(   c                ó&   — | j         d         j        S rG   ©r   r/   rH   s    r&   Ú_eval_is_realzRoundFunction._eval_is_realZ   ó   € ØŒy˜Œ|Ô#Ð#r(   c                ó&   — | j         d         j        S rG   rL   rH   s    r&   Ú_eval_is_integerzRoundFunction._eval_is_integer]   rN   r(   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__ÚclassmethodrC   r*   rJ   rM   rP   © r(   r&   r   r      sŠ   € € € € € € Ø5Ð5àÐÐÑàð66ð 66ñ „[ð66ðp ð$ð $ñ „[ð$ð&ð &ð &ð$ð $ð $ð$ð $ð $ð $ð $r(   r   c                  ó€   — e Zd ZdZdZed„ ¦   «         Zed„ ¦   «         Zd„ Zdd„Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r7   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                óÆ   — |j         r|                     ¦   «         S t          d„ || fD ¦   «         ¦  «        r|S |j        r |                     t
          ¦  «        d         S d S )Nc              3  óX   K  — | ]%}t           t          fD ]}t          ||¦  «        V — ŒŒ&d S r"   ©r7   r8   r6   ©Ú.0r<   Újs      r&   ú	<genexpr>z%floor._eval_number.<locals>.<genexpr>‹   ód   è è € ð @ð @Ø­uµgÐ.>ð@ð @Ø)*õ ˜!˜QÑÔð @ð @ð @ð @ð @ð @ð @r(   r   )Ú	is_Numberr7   ÚanyÚis_NumberSymbolÚapproximation_intervalr   rE   s     r&   r*   zfloor._eval_number‡   sˆ   € àŒ=ð 	Ø—9’9‘;”;ÐÝð @ð @Ø ˜t˜ð@ñ @ô @ñ @ô @ð 	àˆJØÔð 	:Ø×-Ò-­gÑ6Ô6°qÔ9Ð9ð	:ð 	:r(   c                ór  — |j         �r*|j        rt          j        S |j        r‚|                     ¦   «         \  }}|j        }|€d S |r| | }}t          ||¦  «        rt          j        S t          t          ||¦  «        t          |d|z  ¦  «        g¦  «        rt          j
        S |j        r‰|                     ¦   «         \  }}|j        }|€d S |r| | }}t          | |¦  «        rt          j        S t          t          d|z  |¦  «        t          || ¦  «        g¦  «        rt          d¦  «        S d S d S d S ©Né   éþÿÿÿ)r/   Úis_zeror   r1   Úis_positiveÚas_numer_denomÚis_negativer   r   r   ÚOneÚNegativeOner   ©r9   r:   ÚnumÚdenÚss        r&   r+   zfloor._eval_const_number‘   se  € àŒ;ñ 	'ØŒ{ð Ý”v�ØŒð !Ø×-Ò-Ñ/Ô/‘��SØ”O�Ø�9Ø˜4Øð *Ø #˜t c T˜�Cå˜˜c‘?”?ð "Ýœ6�Må�e C¨™oœo­u°S¸!¸C¹%Ñ/@Ô/@ÐAÑBÔBð !Ýœ5�LØŒð 'Ø×-Ò-Ñ/Ô/‘��SØ”O�Ø�9Ø˜4Øð *Ø #˜t c T˜�Cå˜#˜˜sÑ#Ô#ð )Ýœ=Ð(å�e B s¡F¨CÑ0Ô0µ%¸¸c¸TÑ2BÔ2BÐCÑDÔDð 'Ý" 2™;œ;Ð&ð9	'ð 	'ð 'ð 'ð'ð 'r(   c                ó  — ddl m} | j        d         }|                     |d¦  «        }|                      |d¦  «        }|t          j        u st          ||¦  «        r=|                     |dt          |¦  «        j	        rdnd¬¦  «        }t          |¦  «        }|j        rN||k    rF|                     ||dk    r|nd¬¦  «        }|j	        r|dz
  S |j        r|S t          d|z  ¦  «        ‚|S |                     |||¬	¦  «        S ©
Nr   ©ÚAccumBoundsú-ú+©Údiré   ©ÚcdirúNot sure of sign of %s©Úlogxr~   )Ú!sympy.calculus.accumulationboundsrw   r   Úsubsr   ÚNaNr6   Úlimitr   rm   r7   r,   r{   rk   r5   Úas_leading_term©	rI   r%   r�   r~   rw   r:   Úarg0rB   Úndirs	            r&   Ú_eval_as_leading_termzfloor._eval_as_leading_term±   s  € ØAÐAÐAÐAÐAÐAØŒi˜ŒlˆØ�xŠx˜˜1‰~Œ~ˆØ�IŠI�a˜‰OŒOˆØ•1”5ˆ=ˆ=�J t¨[Ñ9Ô9ˆ=Ø—9’9˜Q ­b°©h¬hÔ.BÐ'K s sÈ�9ÑLÔLˆDÝ�d‘”ˆAØŒ>ð 
	Ø�qŠyˆyØ—w’w˜q¨t°qªy¨y t t¸a�wÑ@Ô@�ØÔ#ð OØ˜q™5�LØÔ%ð OØ�Hå-Ð.FÈÑ.MÑNÔNÐNà�Ø×"Ò" 1¨4°dÐ"Ñ;Ô;Ð;r(   r   c                óF  — | j         d         }|                     |d¦  «        }|                      |d¦  «        }|t          j        u r=|                     |dt          |¦  «        j        rdnd¬¦  «        }t          |¦  «        }|j        rIddl	m
} ddlm}	 |                     ||||¦  «        }
|dk    r |	d|df¦  «        n |dd¦  «        }|
|z   S ||k    rF|                     ||dk    r|nd¬	¦  «        }|j        r|dz
  S |j        r|S t!          d
|z  ¦  «        ‚|S )Nr   rx   ry   rz   rv   ©ÚOrderr|   rY   r}   r   )r   rƒ   r   r„   r…   r   rm   r7   Úis_infiniter‚   rw   Úsympy.series.orderr�   Ú_eval_nseriesr{   rk   r5   ©rI   r%   Únr�   r~   r:   rˆ   rB   rw   r�   rs   Úor‰   s                r&   r�   zfloor._eval_nseriesÆ   sV  € ØŒi˜ŒlˆØ�xŠx˜˜1‰~Œ~ˆØ�IŠI�a˜‰OŒOˆØ•1”5ˆ=ˆ=Ø—9’9˜Q ­b°©h¬hÔ.BÐ'K s sÈ�9ÑLÔLˆDÝ�d‘”ˆAØÔð 	ØEÐEÐEÐEÐEÐEØ0Ð0Ð0Ð0Ð0Ð0Ø×!Ò! ! Q¨¨dÑ3Ô3ˆAØ$%¨¢F F���a˜!˜Q˜Ñ Ô Ð °°¸BÀÑ0BÔ0BˆAØ�q‘5ˆLØ�1Š9ˆ9Ø—7’7˜1¨4°1ª9¨9 4 4¸!�7Ñ<Ô<ˆDØÔð KØ˜1‘u�ØÔ!ð KØ�å)Ð*BÀTÑ*IÑJÔJÐJàˆHr(   c                ó&   — | j         d         j        S rG   )r   rm   rH   s    r&   Ú_eval_is_negativezfloor._eval_is_negativeÞ   ó   € ØŒy˜Œ|Ô'Ð'r(   c                ó&   — | j         d         j        S rG   )r   Úis_nonnegativerH   s    r&   Ú_eval_is_nonnegativezfloor._eval_is_nonnegativeá   ó   € ØŒy˜Œ|Ô*Ð*r(   c                ó$   — t          | ¦  «         S r"   ©r8   ©rI   r:   Úkwargss      r&   Ú_eval_rewrite_as_ceilingzfloor._eval_rewrite_as_ceilingä   s   € Ý˜˜‘”ˆ~Ðr(   c                ó&   — |t          |¦  «        z
  S r"   ©Úfracr�   s      r&   Ú_eval_rewrite_as_fraczfloor._eval_rewrite_as_fracç   s   € Ø•T˜#‘Y”Y‰Ðr(   c                ó€  — t          |¦  «        }| j        d         j        rG|j        r| j        d         |dz   k     S |j        r%|j        r| j        d         t          |¦  «        k     S | j        d         |k    r|j        rt           j        S |t           j        u r| j        rt           j        S t          | |d¬¦  «        S ©Nr   r|   Fr   )
r   r   r/   r$   r3   r8   ÚtrueÚInfinityr,   r   ©rI   Úothers     r&   Ú__le__zfloor.__le__ê   s·   € Ý�%‘”ˆØŒ9�QŒ<Ôð 	5ØÔð 0Ø”y ”| e¨a¡iÒ/Ð/ØŒð 5 5¤=ð 5Ø”y ”|¥g¨e¡n¤nÒ4Ð4ØŒ9�QŒ<˜5Ò Ð  U¤]Ð Ý”6ˆMØ•A”JÐÐ 4¤>ÐÝ”6ˆMå�$˜¨Ð.Ñ.Ô.Ð.r(   c                óˆ  — t          |¦  «        }| j        d         j        rD|j        r| j        d         |k    S |j        r%|j        r| j        d         t          |¦  «        k    S | j        d         |k    r|j        r|j        rt           j        S |t           j        u r| j	        rt           j
        S t          | |d¬¦  «        S ©Nr   Fr   )r   r   r/   r$   r3   r8   Úis_nonintegerÚfalseÚNegativeInfinityr,   r¦   r   r¨   s     r&   Ú__ge__zfloor.__ge__ø   s¼   € Ý�%‘”ˆØŒ9�QŒ<Ôð 	6ØÔð -Ø”y ”| uÒ,Ð,ØŒð 6 5¤=ð 6Ø”y ”|¥w¨u¡~¤~Ò5Ð5ØŒ9�QŒ<˜5Ò Ð  U¤]Ð °uÔ7JÐ Ý”7ˆNØ•AÔ&Ð&Ð&¨4¬>Ð&Ý”6ˆMå�$˜¨Ð.Ñ.Ô.Ð.r(   c                ó€  — t          |¦  «        }| j        d         j        rG|j        r| j        d         |dz   k    S |j        r%|j        r| j        d         t          |¦  «        k    S | j        d         |k    r|j        rt           j        S |t           j        u r| j        rt           j	        S t          | |d¬¦  «        S r¥   )r   r   r/   r$   r3   r8   r®   r¯   r,   r¦   r   r¨   s     r&   Ú__gt__zfloor.__gt__  s¸   € Ý�%‘”ˆØŒ9�QŒ<Ôð 	6ØÔð 1Ø”y ”| u¨q¡yÒ0Ð0ØŒð 6 5¤=ð 6Ø”y ”|¥w¨u¡~¤~Ò5Ð5ØŒ9�QŒ<˜5Ò Ð  U¤]Ð Ý”7ˆNØ•AÔ&Ð&Ð&¨4¬>Ð&Ý”6ˆMå�$˜¨Ð.Ñ.Ô.Ð.r(   c                óˆ  — t          |¦  «        }| j        d         j        rD|j        r| j        d         |k     S |j        r%|j        r| j        d         t          |¦  «        k     S | j        d         |k    r|j        r|j        rt           j        S |t           j        u r| j	        rt           j        S t          | |d¬¦  «        S r¬   )r   r   r/   r$   r3   r8   r­   r¦   r§   r,   r   r¨   s     r&   Ú__lt__zfloor.__lt__  s»   € Ý�%‘”ˆØŒ9�QŒ<Ôð 	5ØÔð ,Ø”y ”| eÒ+Ð+ØŒð 5 5¤=ð 5Ø”y ”|¥g¨e¡n¤nÒ4Ð4ØŒ9�QŒ<˜5Ò Ð  U¤]Ð °uÔ7JÐ Ý”6ˆMØ•A”JÐÐ 4¤>ÐÝ”6ˆMå�$˜¨Ð.Ñ.Ô.Ð.r(   N©r   )rQ   rR   rS   rT   r4   rV   r*   r+   rŠ   r�   r•   r™   rŸ   r£   rª   r°   r²   r´   rW   r(   r&   r7   r7   a   sõ   € € € € € ð"ð "ðF €Dàð:ð :ñ „[ð:ð ð'ð 'ñ „[ð'ð><ð <ð <ð*ð ð ð ð0(ð (ð (ð+ð +ð +ðð ð ðð ð ð/ð /ð /ð/ð /ð /ð/ð /ð /ð/ð /ð /ð /ð /r(   r7   c                ó¢   — t          |                      t          ¦  «        |¦  «        p't          |                      t          ¦  «        |¦  «        S r"   )r   Úrewriter8   r¢   ©ÚlhsÚrhss     r&   Ú_eval_is_eqr»   #  s>   € å�—’�WÑ%Ô% sÑ+Ô+ð %Ýˆc�kŠk�$ÑÔ Ñ$Ô$ð%r(   c                  ó€   — e Zd ZdZdZed„ ¦   «         Zed„ ¦   «         Zd„ Zdd„Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r8   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                óÆ   — |j         r|                     ¦   «         S t          d„ || fD ¦   «         ¦  «        r|S |j        r |                     t
          ¦  «        d         S d S )Nc              3  óX   K  — | ]%}t           t          fD ]}t          ||¦  «        V — ŒŒ&d S r"   r\   r]   s      r&   r`   z'ceiling._eval_number.<locals>.<genexpr>S  ra   r(   r|   )rb   r8   rc   rd   re   r   rE   s     r&   r*   zceiling._eval_numberO  sˆ   € àŒ=ð 	!Ø—;’;‘=”=Ð Ýð @ð @Ø ˜t˜ð@ñ @ô @ñ @ô @ð 	àˆJØÔð 	:Ø×-Ò-­gÑ6Ô6°qÔ9Ð9ð	:ð 	:r(   c                ór  — |j         �r*|j        rt          j        S |j        r…|                     ¦   «         \  }}|j        }|€d S |r| | }}t          ||¦  «        rt          j        S t          t          ||¦  «        t          |d|z  ¦  «        g¦  «        rt          d¦  «        S |j        r†|                     ¦   «         \  }}|j        }|€d S |r| | }}t          | |¦  «        rt          j        S t          t          d|z  |¦  «        t          || ¦  «        g¦  «        rt          j        S d S d S d S rg   )r/   rj   r   r1   rk   rl   rm   r   rn   r   r   r   ro   rp   s        r&   r+   zceiling._eval_const_numberY  se  € àŒ;ñ 	)ØŒ{ð Ý”v�ØŒð &Ø×-Ò-Ñ/Ô/‘��SØ”O�Ø�9Ø˜4Øð *Ø #˜t c T˜�Cå˜˜c‘?”?ð !Ýœ5�Lå�e C¨™oœo­u°S¸!¸C¹%Ñ/@Ô/@ÐAÑBÔBð &Ý" 1™:œ:Ð%ØŒð )Ø×-Ò-Ñ/Ô/‘��SØ”O�Ø�9Ø˜4Øð *Ø #˜t c T˜�Cå˜#˜˜sÑ#Ô#ð "Ýœ6�Må�e B s¡F¨CÑ0Ô0µ%¸¸c¸TÑ2BÔ2BÐCÑDÔDð )Ýœ=Ð(ð9	)ð 	)ð )ð )ð)ð )r(   c                ó  — ddl m} | j        d         }|                     |d¦  «        }|                      |d¦  «        }|t          j        u st          ||¦  «        r=|                     |dt          |¦  «        j	        rdnd¬¦  «        }t          |¦  «        }|j        rN||k    rF|                     ||dk    r|nd¬¦  «        }|j	        r|S |j        r|dz   S t          d|z  ¦  «        ‚|S |                     |||¬	¦  «        S ru   )r‚   rw   r   rƒ   r   r„   r6   r…   r   rm   r8   r,   r{   rk   r5   r†   r‡   s	            r&   rŠ   zceiling._eval_as_leading_termy  s  € ØAÐAÐAÐAÐAÐAØŒi˜ŒlˆØ�xŠx˜˜1‰~Œ~ˆØ�IŠI�a˜‰OŒOˆØ•1”5ˆ=ˆ=�J t¨[Ñ9Ô9ˆ=Ø—9’9˜Q ­b°©h¬hÔ.BÐ'K s sÈ�9ÑLÔLˆDÝ˜‘”ˆAØŒ>ð 
	Ø�qŠyˆyØ—w’w˜q¨t°qªy¨y t t¸a�wÑ@Ô@�ØÔ#ð OØ�HØÔ%ð OØ˜q™5�Lå-Ð.FÈÑ.MÑNÔNÐNà�Ø×"Ò" 1¨4°dÐ"Ñ;Ô;Ð;r(   r   c                óF  — | j         d         }|                     |d¦  «        }|                      |d¦  «        }|t          j        u r=|                     |dt          |¦  «        j        rdnd¬¦  «        }t          |¦  «        }|j        rIddl	m
} ddlm}	 |                     ||||¦  «        }
|dk    r |	d|df¦  «        n |dd¦  «        }|
|z   S ||k    rF|                     ||dk    r|nd¬¦  «        }|j        r|S |j        r|dz   S t!          d	|z  ¦  «        ‚|S )
Nr   rx   ry   rz   rv   rŒ   r|   r}   r   )r   rƒ   r   r„   r…   r   rm   r8   rŽ   r‚   rw   r�   r�   r�   r{   rk   r5   r‘   s                r&   r�   zceiling._eval_nseriesŽ  sV  € ØŒi˜ŒlˆØ�xŠx˜˜1‰~Œ~ˆØ�IŠI�a˜‰OŒOˆØ•1”5ˆ=ˆ=Ø—9’9˜Q ­b°©h¬hÔ.BÐ'K s sÈ�9ÑLÔLˆDÝ˜‘”ˆAØÔð 	ØEÐEÐEÐEÐEÐEØ0Ð0Ð0Ð0Ð0Ð0Ø×!Ò! ! Q¨¨dÑ3Ô3ˆAØ$%¨¢F F���a˜!˜Q˜Ñ Ô Ð °°¸A¸qÑ0AÔ0AˆAØ�q‘5ˆLØ�1Š9ˆ9Ø—7’7˜1¨4°1ª9¨9 4 4¸!�7Ñ<Ô<ˆDØÔð KØ�ØÔ!ð KØ˜1‘u�å)Ð*BÀTÑ*IÑJÔJÐJàˆHr(   c                ó$   — t          | ¦  «         S r"   ©r7   r�   s      r&   Ú_eval_rewrite_as_floorzceiling._eval_rewrite_as_floor¦  s   € Ý�s�d‘”ˆ|Ðr(   c                ó(   — |t          | ¦  «        z   S r"   r¡   r�   s      r&   r£   zceiling._eval_rewrite_as_frac©  s   € Ø•T˜3˜$‘Z”ZÑÐr(   c                ó&   — | j         d         j        S rG   )r   rk   rH   s    r&   Ú_eval_is_positivezceiling._eval_is_positive¬  r–   r(   c                ó&   — | j         d         j        S rG   )r   Úis_nonpositiverH   s    r&   Ú_eval_is_nonpositivezceiling._eval_is_nonpositive¯  rš   r(   c                ó€  — t          |¦  «        }| j        d         j        rG|j        r| j        d         |dz
  k    S |j        r%|j        r| j        d         t          |¦  «        k    S | j        d         |k    r|j        rt           j        S |t           j        u r| j        rt           j	        S t          | |d¬¦  «        S r¥   )r   r   r/   r$   r3   r7   r®   r§   r,   r¦   r   r¨   s     r&   r´   zceiling.__lt__²  s·   € Ý�%‘”ˆØŒ9�QŒ<Ôð 	4ØÔð 1Ø”y ”| u¨q¡yÒ0Ð0ØŒð 4 5¤=ð 4Ø”y ”|¥u¨U¡|¤|Ò3Ð3ØŒ9�QŒ<˜5Ò Ð  U¤]Ð Ý”7ˆNØ•A”JÐÐ 4¤>ÐÝ”6ˆMå�$˜¨Ð.Ñ.Ô.Ð.r(   c                óˆ  — t          |¦  «        }| j        d         j        rD|j        r| j        d         |k    S |j        r%|j        r| j        d         t          |¦  «        k    S | j        d         |k    r|j        r|j        rt           j        S |t           j        u r| j	        rt           j        S t          | |d¬¦  «        S r¬   )r   r   r/   r$   r3   r7   r­   r¦   r¯   r,   r   r¨   s     r&   r²   zceiling.__gt__À  s¼   € Ý�%‘”ˆØŒ9�QŒ<Ôð 	3ØÔð ,Ø”y ”| eÒ+Ð+ØŒð 3 5¤=ð 3Ø”y ”|¥e¨E¡l¤lÒ2Ð2ØŒ9�QŒ<˜5Ò Ð  U¤]Ð °uÔ7JÐ Ý”6ˆMØ•AÔ&Ð&Ð&¨4¬>Ð&Ý”6ˆMå�$˜¨Ð.Ñ.Ô.Ð.r(   c                ó€  — t          |¦  «        }| j        d         j        rG|j        r| j        d         |dz
  k    S |j        r%|j        r| j        d         t          |¦  «        k    S | j        d         |k    r|j        rt           j        S |t           j        u r| j        rt           j        S t          | |d¬¦  «        S r¥   )
r   r   r/   r$   r3   r7   r¦   r¯   r,   r   r¨   s     r&   r°   zceiling.__ge__Î  s¸   € Ý�%‘”ˆØŒ9�QŒ<Ôð 	3ØÔð 0Ø”y ”| e¨a¡iÒ/Ð/ØŒð 3 5¤=ð 3Ø”y ”|¥e¨E¡l¤lÒ2Ð2ØŒ9�QŒ<˜5Ò Ð  U¤]Ð Ý”6ˆMØ•AÔ&Ð&Ð&¨4¬>Ð&Ý”6ˆMå�$˜¨Ð.Ñ.Ô.Ð.r(   c                óˆ  — t          |¦  «        }| j        d         j        rD|j        r| j        d         |k    S |j        r%|j        r| j        d         t          |¦  «        k    S | j        d         |k    r|j        r|j        rt           j        S |t           j        u r| j	        rt           j
        S t          | |d¬¦  «        S r¬   )r   r   r/   r$   r3   r7   r­   r®   r§   r,   r¦   r   r¨   s     r&   rª   zceiling.__le__Ü  s»   € Ý�%‘”ˆØŒ9�QŒ<Ôð 	4ØÔð -Ø”y ”| uÒ,Ð,ØŒð 4 5¤=ð 4Ø”y ”|¥u¨U¡|¤|Ò3Ð3ØŒ9�QŒ<˜5Ò Ð  U¤]Ð °uÔ7JÐ Ý”7ˆNØ•A”JÐÐ 4¤>ÐÝ”6ˆMå�$˜¨Ð.Ñ.Ô.Ð.r(   Nrµ   )rQ   rR   rS   rT   r4   rV   r*   r+   rŠ   r�   rÄ   r£   rÇ   rÊ   r´   r²   r°   rª   rW   r(   r&   r8   r8   )  sõ   € € € € € ð"ð "ðF €Dàð:ð :ñ „[ð:ð ð)ð )ñ „[ð)ð><ð <ð <ð*ð ð ð ð0ð ð ð ð  ð  ð(ð (ð (ð+ð +ð +ð/ð /ð /ð/ð /ð /ð/ð /ð /ð/ð /ð /ð /ð /r(   r8   c                ó¢   — t          |                      t          ¦  «        |¦  «        p't          |                      t          ¦  «        |¦  «        S r"   )r   r·   r7   r¢   r¸   s     r&   r»   r»   ë  s9   € å�—’�UÑ#Ô# SÑ)Ô)ÐI­U°3·;²;½tÑ3DÔ3DÀSÑ-IÔ-IÐIr(   c                  ó„   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„ZdS )r¢   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                ó€  ‡ ‡— ddl mŠ ˆˆ fd„}t          j        t          j        }}t	          j        |¦  «        D ]\}|j        st          j        |z  j        r:t          |¦  «        }| 
                    t          j        ¦  «        s||z  }ŒQ||z  }ŒW||z  }Œ] ||¦  «        } ||¦  «        }|t          j        |z  z   S )Nr   rv   c                ó*  •— | t           j        t           j        fv r ‰dd¦  «        S | j        rt           j        S | j        rF| t           j        u rt           j        S | t           j        u rt           j        S | t          | ¦  «        z
  S  ‰| d¬¦  «        S r¥   )	r   r§   r¯   r$   r1   r3   r„   ÚComplexInfinityr7   )r:   rw   r9   s    €€r&   Ú_evalzfrac.eval.<locals>._eval%  s’   ø€ Ø•q”z¥1Ô#5Ð6Ð6Ð6Ø"�{ 1 aÑ(Ô(Ð(ØŒ~ð Ý”v�ØŒ}ð ,Ø�!œ%�<�<Ýœ5�LØ�AÔ-Ð-Ð-Ýœ5�Là¥ s¡¤Ñ+Ð+Ø�3�s UÐ+Ñ+Ô+Ð+r(   )r‚   rw   r   r1   r   r2   r-   r.   r/   r   r0   )r9   r:   rÔ   ÚrealÚimagrA   r<   rw   s   `      @r&   rC   z	frac.eval!  sç   øø€ àAÐAÐAÐAÐAÐAð	,ð 	,ð 	,ð 	,ð 	,ð 	,õ ”V�QœVˆdˆÝ”˜sÑ#Ô#ð 
	ð 
	ˆAð Œ~ð ¥!¤/°!Ñ"3Ô!<ð Ý�q‘E”E�Ø—u’u�Qœ_Ñ-Ô-ð Ø˜A‘I�D�Dà˜A‘I�D�Dà˜‘	��àˆu�T‰{Œ{ˆØˆu�T‰{Œ{ˆØ•a”o dÑ*Ñ*Ð*r(   c                ó&   — |t          |¦  «        z
  S r"   rÃ   r�   s      r&   rÄ   zfrac._eval_rewrite_as_floorD  s   € Ø•U˜3‘Z”ZÑÐr(   c                ó(   — |t          | ¦  «        z   S r"   rœ   r�   s      r&   rŸ   zfrac._eval_rewrite_as_ceilingG  s   € Ø•W˜c˜T‘]”]Ñ"Ð"r(   c                ó   — dS )NTrW   rH   s    r&   rJ   zfrac._eval_is_finiteJ  s   € Øˆtr(   c                ó&   — | j         d         j        S rG   )r   Úis_extended_realrH   s    r&   rM   zfrac._eval_is_realM  s   € ØŒy˜Œ|Ô,Ð,r(   c                ó&   — | j         d         j        S rG   )r   r-   rH   s    r&   Ú_eval_is_imaginaryzfrac._eval_is_imaginaryP  s   € ØŒy˜Œ|Ô(Ð(r(   c                ó&   — | j         d         j        S rG   )r   r$   rH   s    r&   rP   zfrac._eval_is_integerS  s   € ØŒy˜Œ|Ô&Ð&r(   c                ód   — t          | j        d         j        | j        d         j        g¦  «        S rG   )r   r   rj   r$   rH   s    r&   Ú_eval_is_zerozfrac._eval_is_zeroV  s'   € Ý˜œ 1œÔ-¨t¬y¸¬|Ô/FÐGÑHÔHÐHr(   c                ó   — dS )NFrW   rH   s    r&   r•   zfrac._eval_is_negativeY  s   € Øˆur(   c                ó¬   — | j         r<t          |¦  «        }|j        rt          j        S |                      |¦  «        }|�| S t          | |d¬¦  «        S ©NFr   )rÛ   r   Úis_extended_nonpositiver   r¦   Ú_value_one_or_morer   ©rI   r©   Úress      r&   r°   zfrac.__ge__\  s^   € ØÔ ð 	 Ý˜U‘O”OˆEàÔ,ð Ý”v�à×)Ò)¨%Ñ0Ô0ˆCØˆØ�x�Ý�$˜¨Ð.Ñ.Ô.Ð.r(   c                ó¬   — | j         r<t          |¦  «        }|                      |¦  «        }|�| S |j        rt          j        S t          | |d¬¦  «        S rã   )rÛ   r   rå   Úis_extended_negativer   r¦   r   ræ   s      r&   r²   zfrac.__gt__h  s^   € ØÔ ð 	Ý˜U‘O”OˆEà×)Ò)¨%Ñ0Ô0ˆCØˆØ�x�àÔ)ð Ý”v�Ý�$˜¨Ð.Ñ.Ô.Ð.r(   c                óª   — | j         r;t          |¦  «        }|j        rt          j        S |                      |¦  «        }|�|S t          | |d¬¦  «        S rã   )rÛ   r   ré   r   r®   rå   r   ræ   s      r&   rª   zfrac.__le__t  s\   € ØÔ ð 	Ý˜U‘O”OˆEàÔ)ð Ý”w�à×)Ò)¨%Ñ0Ô0ˆCØˆØ�
Ý�$˜¨Ð.Ñ.Ô.Ð.r(   c                óª   — | j         r;t          |¦  «        }|j        rt          j        S |                      |¦  «        }|�|S t          | |d¬¦  «        S rã   )rÛ   r   rä   r   r®   rå   r   ræ   s      r&   r´   zfrac.__lt__€  s\   € ØÔ ð 	Ý˜U‘O”OˆEàÔ,ð Ý”w�à×)Ò)¨%Ñ0Ô0ˆCØˆØ�
Ý�$˜¨Ð.Ñ.Ô.Ð.r(   c                ó°   — |j         rJ|j        r)|dk    }|r!t          |t          ¦  «        st          j        S |j        r|j        rt          j        S d S d S d S )Nr|   )rÛ   r3   r6   r   r   r¦   r$   rk   ræ   s      r&   rå   zfrac._value_one_or_moreŒ  sz   € ØÔ!ð 	ØŒð "Ø˜q’j�Øð "�z¨#­zÑ:Ô:ð "Ýœ6�MØÔð  EÔ$5ð Ý”v�ð	ð 	ð
ð ð ð r(   c                ó¼  — ddl m} | j        d         }|                     |d¦  «        }|                      |d¦  «        }|j        rN|j        rE|                     ||¬¦  «        }|j        rt          j	        S ||z
   
                    |||¬¦  «        S |S |t          j        t          j        t          j        fv r |dd¦  «        S | 
                    |||¬¦  «        S )Nr   rv   r}   r€   r|   )r‚   rw   r   rƒ   r,   rj   r{   rm   r   rn   r†   rÓ   r§   r¯   r‡   s	            r&   rŠ   zfrac._eval_as_leading_term•  sç   € ØAÐAÐAÐAÐAÐAØŒi˜ŒlˆØ�xŠx˜˜1‰~Œ~ˆØ�IŠI�a˜‰OŒOˆàŒ>ð 		%ØŒyð Ø—w’w˜q t�wÑ,Ô,�ØÔ#ð !Ýœ5�LØ˜d™
×3Ò3°A¸DÀtÐ3ÑLÔLÐLà�Ø•aÔ'­¬µQÔ5GÐHÐHÐHØ�;˜q !Ñ$Ô$Ð$Ø×"Ò" 1¨4°dÐ"Ñ;Ô;Ð;r(   r   c                óÊ  — ddl m} | j        d         }|                     |d¦  «        }|                      |d¦  «        }|j        r:ddlm}	 |dk    r |d|df¦  «        n |	dd¦  «         |||z  |df¦  «        z   }
|
S ||z
                       ||||¬¦  «        }|j        r:| 	                    ||¬¦  «        }||j
        rt          j        nt          j        z  }n||z  }|S )Nr   rŒ   rv   r|   r€   r}   )r�   r�   r   rƒ   rŽ   r‚   rw   r�   rj   r{   rm   r   rn   r1   )rI   r%   r’   r�   r~   r�   r:   rˆ   rB   rw   r“   rç   r‰   s                r&   r�   zfrac._eval_nseries§  s  € Ø,Ð,Ð,Ð,Ð,Ð,ØŒi˜ŒlˆØ�xŠx˜˜1‰~Œ~ˆØ�IŠI�a˜‰OŒOˆàÔð 	ØEÐEÐEÐEÐEÐEØ$%¨¢F F���a˜!˜Q˜Ñ Ô Ð °°¸A¸qÑ0AÔ0AÀEÀEÈ!ÈQÉ$ÐQRÐTUÐPVÑDWÔDWÑ0WˆAØˆHà˜‘:×,Ò,¨Q°¸À4Ð,ÑHÔHˆCØŒyð Ø—w’w˜q t�wÑ,Ô,�Ø Ô 0Ð<•q”u�uµa´fÑ<��à�q‘�ØˆJr(   Nrµ   )rQ   rR   rS   rT   rV   rC   rÄ   rŸ   rJ   rM   rÝ   rP   rà   r•   r°   r²   rª   r´   rå   rŠ   r�   rW   r(   r&   r¢   r¢   ð  s$  € € € € € ð/ð /ð` ð +ð  +ñ „[ð +ðD ð  ð  ð#ð #ð #ðð ð ð-ð -ð -ð)ð )ð )ð'ð 'ð 'ðIð Ið Iðð ð ð
/ð 
/ð 
/ð
/ð 
/ð 
/ð
/ð 
/ð 
/ð
/ð 
/ð 
/ðð ð ð<ð <ð <ð$ð ð ð ð ð r(   r¢   c                óÆ   — |                       t          ¦  «        |k    s|                       t          ¦  «        |k    rdS |j        rdS |                      |¦  «        }|�dS d S )NTF)r·   r7   r8   ré   rå   )r¹   rº   rç   s      r&   r»   r»   »  si   € à�Š•EÑÔ˜cÒ!Ð!Ø	�Š•WÑ	Ô	 Ò	$Ð	$Øˆtà
Ôð Øˆuà
×
 Ò
  Ñ
%Ô
%€CØ
€Øˆuð €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   r7   r»   r8   r¢   rW   r(   r&   ú<module>rü      sv  ðØ "Ð "Ð "Ð "Ð "Ð "à "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ /Ð /Ð /Ð /Ð /Ð /Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø +Ð +Ð +Ð +Ð +Ð +ðI$ð I$ð I$ð I$ð I$�Oñ I$ô I$ð I$ðX/ð /ð /ð /ð /ˆMñ /ô /ð /ðD 
€ˆ%�ÑÔð%ð %ñ Ôð%ð
/ð /ð /ð /ð /ˆmñ /ô /ð /ðD 
€ˆ'�5ÑÔðJð Jñ ÔðJðHð Hð Hð Hð Hˆ?ñ Hô Hð HðV 
€ˆ$�ÑÔð
ð 
ñ Ôð
ð 
ð 
r(   