Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
/* eslint-disable max-lines */

import isAlmostEqual = require( '@stdlib/number/float64/base/assert/is-almost-equal' );
import isAlmostSameValue = require( '@stdlib/number/float64/base/assert/is-almost-same-value' );
import isSameValue = require( '@stdlib/number/float64/base/assert/is-same-value' );
import isSameValueZero = require( '@stdlib/number/float64/base/assert/is-same-value-zero' );

Expand Down Expand Up @@ -67,6 +68,44 @@ interface Namespace {
*/
isAlmostEqual: typeof isAlmostEqual;

/**
* Tests if two double-precision floating-point numbers are approximately the same value within a specified number of ULPs (units in the last place).
*
* ## Notes
*
* - The function differs from the `===` operator in that the function treats `-0` and `+0` as distinct and `NaNs` as the same.
*
* @param a - first input value
* @param b - second input value
* @param maxULP - maximum allowed ULP difference
* @returns boolean indicating whether two double-precision floating-point numbers are approximately the same value within a specified number of ULPs
*
* @example
* var EPS = require( '@stdlib/constants/float64/eps' );
*
* var bool = ns.isAlmostSameValue( 1.0, 1.0+EPS, 1 );
* // returns true
*
* bool = ns.isAlmostSameValue( 1.0+EPS, 1.0, 1 );
* // returns true
*
* bool = ns.isAlmostSameValue( 1.0, 1.0+EPS+EPS, 1 );
* // returns false
*
* bool = ns.isAlmostSameValue( 1.0, 1.0+EPS, 0 );
* // returns false
*
* bool = ns.isAlmostSameValue( 0.0, -0.0, 0 );
* // returns false
*
* bool = ns.isAlmostSameValue( 1.0, NaN, 1 );
* // returns false
*
* bool = ns.isAlmostSameValue( NaN, NaN, 1 );
* // returns true
*/
isAlmostSameValue: typeof isAlmostSameValue;

/**
* Tests if two double-precision floating-point numbers are the same value.
*
Expand Down