def isreal(x: ndarray | npt.NDArray[Any]) -> ndarray:
    """

    Returns a bool array, where True if input element is real.

    If element has complex type with zero complex part, the return value
    for that element is True.

    Parameters
    ----------
    x : array_like
        Input array.

    Returns
    -------
    out : ndarray, bool
        Boolean array of same shape as `x`.


    See Also
    --------
    numpy.isreal

    Availability
    --------
    Multiple GPUs, Multiple CPUs

    """
    x = convert_to_cupynumeric_ndarray(x)
    if x.dtype.kind != "c":
        return full(x.shape, True, dtype=bool)
    else:
        return x.imag == 0


    Returns a bool array, where True if input element is real.

    If element has complex type with zero complex part, the return value
    for that element is True.

    Parameters
    ----------
    x : array_like
        Input array.

    Returns
    -------
    out : ndarray, bool
        Boolean array of same shape as `x`.


    See Also
    --------
    numpy.isreal

    Availability
    --------
    Multiple GPUs, Multiple CPUs

    
cupynumeric/_module/logic_array_type.py