jax.numpy.nextafter(x1, x2)

Return the next floating-point value after x1 towards x2, element-wise.

LAX-backend implementation of nextafter(). Note that in some environments flush-denormal-to-zero semantics is used. This means that, around zero, this function returns strictly non-zero values which appear as zero in any operations. Consider this example:

>>> jnp.nextafter(0, 1)  # denormal numbers are representable
DeviceArray(1.e-45, dtype=float32)
>>> jnp.nextafter(0, 1) * 1  # but are flushed to zero
DeviceArray(0., dtype=float32)

For the smallest usable (i.e. normal) float, use tiny of jnp.finfo. Original docstring below.

nextafter(x1, x2, /, out=None, *, where=True, casting=’same_kind’, order=’K’, dtype=None, subok=True[, signature, extobj])

  • x1 (array_like) – Values to find the next representable value of.

  • x2 (array_like) – The direction where to look for the next representable value of x1. If x1.shape != x2.shape, they must be broadcastable to a common shape (which becomes the shape of the output).


out – The next representable values of x1 in the direction of x2. This is a scalar if both x1 and x2 are scalars.

Return type

ndarray or scalar


>>> eps = np.finfo(np.float64).eps
>>> np.nextafter(1, 2) == eps + 1
>>> np.nextafter([1, 2], [2, 1]) == [eps + 1, 2 - eps]
array([ True,  True])