cljs.math/next-up
function | since v1.11.50 | Edit |
(next-up d)
Source docstring:
Returns the adjacent double of d in the direction of ##Inf.
If d is ##NaN => ##NaN
If d is ##Inf => ##Inf
If d is zero => Number/MIN_VALUE
See: https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#nextUp-double-
(defn ^number next-up
{:added "1.11.10"}
[d]
(if (< d js/Number.POSITIVE_INFINITY)
(let [a (js/ArrayBuffer. 8)
f (js/Float64Array. a)
i (js/Uint32Array. a)
_ (aset f 0 (+ d 0.0))
ht (aget i HI)
lt (aget i LO)
[hr lr] (if (zero? (bit-and ht INT32-NON-SIGN-BIT))
(add64 ht lt 0 1)
(add64 ht lt 0xFFFFFFFF 0xFFFFFFFF))]
(aset i HI hr)
(aset i LO lr)
(aget f 0))
d))