def METHOD_NAME(
    x: Array, *, bin_density: int = 3326400, offset: float = 5413 / 15629
) -> Array:
    """
    Casts a floating point input to integer-indexed bins that are safe to compare
    or hash.
    Arguments:
        x: the float array to be converted
        bin_density: the inverse width of each bin. When binning rational numbers,
            it's best to use a multiple of all expected denominators `bin_density`.
            The default is :math:`3326400 = 2^6\times 3^3\times 5^2\times 7\times 11`.
        offset: constant offset added to `bin_density * x` before rounding. To minimise
            the chances of "interesting" numbers appearing on bin boundaries, it's
            best to use a rational number with a large prime denominator.
            The default is 5413/15629, both are primes.
    Returns:
        `x * bin_density + offset` rounded to an integer
    Example:
        >>> comparable([0.0, 0.3, 0.30000001, 1.3])
        array([      0,  997920,  997920, 4324320])
    """
    return np.asarray(np.rint(np.asarray(x) * bin_density + offset), dtype=int)