Compute the number of representable half-precision floating-point values that separate two half-precision floating-point numbers along the real number line.
var ulpdiff = require( '@stdlib/number/float16/base/ulp-difference' );Computes the number of representable half-precision floating-point values that separate two half-precision floating-point numbers along the real number line.
var EPS = require( '@stdlib/constants/float16/eps' );
var d = ulpdiff( 1.0, 1.0+EPS );
// returns 1.0
d = ulpdiff( 1.0+EPS, 1.0 );
// returns 1.0
d = ulpdiff( 1.0, 1.0+EPS+EPS );
// returns 2.0
d = ulpdiff( 1.0, NaN );
// returns NaN
d = ulpdiff( NaN, 1.0 );
// returns NaN
d = ulpdiff( NaN, NaN );
// returns NaN- Adjacent half-precision floating-point numbers differ by
1ulp (unit in the last place). - Signed zeros differ only in the sign bit but are considered numerically equal, and thus their ULP difference is
0.
var EPS = require( '@stdlib/constants/float16/eps' );
var SMALLEST_SUBNORMAL = require( '@stdlib/constants/float16/smallest-subnormal' );
var ulpdiff = require( '@stdlib/number/float16/base/ulp-difference' );
var d = ulpdiff( 1.0, 1.0+EPS );
console.log( d );
// => 1.0
d = ulpdiff( 5.96e-8, 3.97e-7 );
console.log( d );
// => 6.0
d = ulpdiff( 0.0, SMALLEST_SUBNORMAL );
console.log( d );
// => 1.0
d = ulpdiff( 0.0, -0.0 );
console.log( d );
// => 0.0
d = ulpdiff( SMALLEST_SUBNORMAL, -SMALLEST_SUBNORMAL );
console.log( d );
// => 2.0