Skip to content

Latest commit

 

History

History
117 lines (72 loc) · 2.66 KB

File metadata and controls

117 lines (72 loc) · 2.66 KB

isAlmostSameValue

Test if two half-precision floating-point numbers are approximately the same value within a specified number of ULPs (units in the last place).

Usage

var isAlmostSameValue = require( '@stdlib/number/float16/base/assert/is-almost-same-value' );

isAlmostSameValue( a, b, maxULP )

Tests if two half-precision floating-point numbers are approximately the same value within a specified number of ULPs (units in the last place).

var EPS = require( '@stdlib/constants/float16/eps' );

var bool = isAlmostSameValue( 1.0, 1.0+EPS, 1 );
// returns true

bool = isAlmostSameValue( 1.0, 1.0+EPS, 0 );
// returns false

The function differs from the === operator in that the function treats -0 and +0 as distinct and NaNs as the same.

var bool = isAlmostSameValue( 0.0, -0.0, 0 );
// returns false

bool = isAlmostSameValue( NaN, NaN, 1 );
// returns true

Examples

var EPS = require( '@stdlib/constants/float16/eps' );
var isAlmostSameValue = require( '@stdlib/number/float16/base/assert/is-almost-same-value' );

var bool = isAlmostSameValue( 1.0, 1.0+EPS, 1 );
// returns true

bool = isAlmostSameValue( 1.0+EPS, 1.0, 1 );
// returns true

bool = isAlmostSameValue( 1.0, 1.0+EPS+EPS, 1 );
// returns false

bool = isAlmostSameValue( 1.0, 1.0+EPS, 0 );
// returns false

bool = isAlmostSameValue( -0.0, 0.0, 0 );
// returns false

bool = isAlmostSameValue( 1.0, NaN, 1 );
// returns false

bool = isAlmostSameValue( NaN, NaN, 1 );
// returns true