U
    ZÊ¹ja  ã                   @   s\   d dl mZ d dlmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZdS )é    )Ú	Predicate)Ú
Dispatcherc                   @   s    e Zd ZdZdZeddd�ZdS )ÚFinitePredicateaÝ  
    Finite number predicate.

    Explanation
    ===========

    ``Q.finite(x)`` is true if ``x`` is a number but neither an infinity
    nor a ``NaN``. In other words, ``ask(Q.finite(x))`` is true for all
    numerical ``x`` having a bounded absolute value.

    Examples
    ========

    >>> from sympy import Q, ask, S, oo, I, zoo
    >>> from sympy.abc import x
    >>> ask(Q.finite(oo))
    False
    >>> ask(Q.finite(-oo))
    False
    >>> ask(Q.finite(zoo))
    False
    >>> ask(Q.finite(1))
    True
    >>> ask(Q.finite(2 + 3*I))
    True
    >>> ask(Q.finite(x), Q.positive(x))
    True
    >>> print(ask(Q.finite(S.NaN)))
    None

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Finite

    ZfiniteZFiniteHandlerzVHandler for Q.finite. Test that an expression is bounded respect to all its variables.©ÚdocN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   Úhandler© r   r   úd/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/assumptions/predicates/calculus.pyr      s   $þr   c                   @   s    e Zd ZdZdZeddd�ZdS )ÚInfinitePredicatezu
    Infinite number predicate.

    ``Q.infinite(x)`` is true iff the absolute value of ``x`` is
    infinity.

    ZinfiniteZInfiniteHandlerzHandler for Q.infinite key.r   Nr   r   r   r   r   r   1   s   þr   c                   @   s   e Zd ZdZdZedƒZdS )ÚPositiveInfinitePredicatezu
    Positive infinity predicate.

    ``Q.positive_infinite(x)`` is true iff ``x`` is positive infinity ``oo``.
    Zpositive_infiniteZPositiveInfiniteHandlerNr   r   r   r   r   r   A   s   r   c                   @   s   e Zd ZdZdZedƒZdS )ÚNegativeInfinitePredicatezv
    Negative infinity predicate.

    ``Q.negative_infinite(x)`` is true iff ``x`` is negative infinity ``-oo``.
    Znegative_infiniteZNegativeInfiniteHandlerNr   r   r   r   r   r   K   s   r   N)Zsympy.assumptionsr   Zsympy.multipledispatchr   r   r   r   r   r   r   r   r   Ú<module>   s
   -
