o
    W۷i                     @  sj   d dl mZ d dlmZ d dlmZ d dlZdd ZeddZed	d
ZeddZ	dddZ
dddZdS )    )annotations)_core)	bf16_loopNc                 C  s8   t jd|  dgtddddddR d	|  |d
S )Ncupy_ze->?   ?zf->?zd->?zF->?zD->?zout0 = %s(in0))doc)r   create_ufuncr   )namer    r   I/home/ubuntu/vllm_env/lib/python3.10/site-packages/cupy/_logic/content.py_create_float_test_ufunc	   s    r   isfinitezTests finiteness elementwise.

    Each element of returned array is ``True`` only if the corresponding
    element of the input is finite (i.e. not an infinity nor NaN).

    .. seealso:: :data:`numpy.isfinite`

    isinfzgTests if each element is the positive or negative infinity.

    .. seealso:: :data:`numpy.isinf`

    isnanzKTests if each element is a NaN.

    .. seealso:: :data:`numpy.isnan`

    c              
   C  sX   t | }zt| }W n ty# } z| j}td| d|d}~ww tj|||dS )a  Test element-wise for negative infinity, return result as bool array.

    Parameters
    ----------
    x : cupy.ndarray
        Input array.
    out : cupy.ndarray, optional
        A location into which the result is stored. If provided,
        it should have a shape that input broadcasts to.
        By default, None, a freshly- allocated boolean array,
        is returned.

    Returns
    -------
    y : cupy.ndarray
        Boolean array of same shape as ``x``.

    Examples
    --------
    >>> cupy.isneginf(0)
    array(False)
    >>> cupy.isneginf(-cupy.inf)
    array(True)
    >>> cupy.isneginf(cupy.array([-cupy.inf, -4, cupy.nan, 0, 4, cupy.inf]))
    array([ True, False, False, False, False, False])

    See Also
    --------
    numpy.isneginf

    $This operation is not supported for & values because it would be ambiguous.Noutr   cupysignbit	TypeErrordtypelogical_andxr   is_infr   er   r   r   r   isneginf/   s   !r   c              
   C  sZ   t | }zt|  }W n ty$ } z| j}td| d|d}~ww tj|||dS )a  Test element-wise for positive infinity, return result as bool array.

    Parameters
    ----------
    x : cupy.ndarray
        Input array.
    out : cupy.ndarray
        A location into which the result is stored. If provided,
        it should have a shape that input broadcasts to.
        By default, None, a freshly- allocated boolean array,
        is returned.

    Returns
    -------
    y : cupy.ndarray
        Boolean array of same shape as ``x``.

    Examples
    --------
    >>> cupy.isposinf(0)
    array(False)
    >>> cupy.isposinf(cupy.inf)
    array(True)
    >>> cupy.isposinf(cupy.array([-cupy.inf, -4, cupy.nan, 0, 4, cupy.inf]))
    array([False, False, False, False, False,  True])

    See Also
    --------
    numpy.isposinf

    r   r   Nr   r   r   r   r   r   isposinf\   s   !r    )N)
__future__r   r   r   
cupy._utilr   r   r   r   r   r   r    r   r   r   r   <module>   s&    	
	-