o
    W۷i                     @  s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 ej
ddgedd	d
dR dddZeddddZej
ddgeddddedddddR dddZej
ddgeddd d!R d"e	jrod#nd$d%dZed&dd'd(Zd)S )*    )annotations)_core)ufunc)	bf16_loop)runtimecupy_signbitze->?   ?zf->?zd->?zout0 = signbit(in0)zmTests elementwise if the sign bit is set (i.e. less than zero).

    .. seealso:: :data:`numpy.signbit`

    )doccopysign   cupy_copysignzvReturns the first argument with the sign bit of the second elementwise.

    .. seealso:: :data:`numpy.copysign`

    
cupy_ldexpzei->e)Nizfi->fzel->e)Nlzfl->fzdi->dzdq->dzout0 = ldexp(in0, in1)zRComputes ``x1 * 2 ** x2`` elementwise.

    .. seealso:: :data:`numpy.ldexp`

    
cupy_frexpze->eizf->fizd->diz,int nptr; out0 = {}(in0, &nptr); out1 = nptrfrexpffrexpzDecomposes each element to mantissa and two's exponent.

    This ufunc outputs two arrays of the input dtype and the ``int`` dtype.

    .. seealso:: :data:`numpy.frexp`

    	nextaftercupy_nextafteraR  Computes the nearest neighbor float values towards the second argument.

    .. note::
        For values that are close to zero (or denormal numbers),
        results of :func:`cupy.nextafter` may be different from those of
        :func:`numpy.nextafter`, because CuPy sets ``-ftz=true``.

    .. seealso:: :data:`numpy.nextafter`

    N)
__future__r   cupyr   
cupy._mathr   
cupy._utilr   cupy_backends.cuda.apir   create_ufuncsignbitcreate_math_ufuncr   ldexpformatis_hipr   r    r!   r!   I/home/ubuntu/vllm_env/lib/python3.10/site-packages/cupy/_math/floating.py<module>   sV    	