assert/is-almost-equal-float64array at main · stdlib-js/assert · GitHub
Skip to content

Latest commit

 

History

History

Folders and files

README.md

isAlmostEqualFloat64Array

Test if two arguments are both Float64Arrays and contain respective elements which are approximately equal within a specified number of ULPs (units in the last place).

Usage

var isAlmostEqualFloat64Array = require( '@stdlib/assert/is-almost-equal-float64array' );

isAlmostEqualFloat64Array( v1, v2, maxULP )

Tests if two arguments are both Float64Arrays and contain respective elements which are approximately equal within a specified number of ULPs (units in the last place).

var EPS = require( '@stdlib/constants/float64/eps' );
var Float64Array = require( '@stdlib/array/float64' );

var x = new Float64Array( [ 1.0, 2.0 ] );
var y = new Float64Array( [ 1.0+EPS, 2.0 ] );

var bool = isAlmostEqualFloat64Array( x, y, 0 );
// returns false

bool = isAlmostEqualFloat64Array( x, y, 1 );
// returns true

bool = isAlmostEqualFloat64Array( x, [ 1.0, 2.0 ], 1 );
// returns false

Notes

  • The function returns false if either input value is a Float64Array containing NaN.
  • The function does not distinguish between -0 and +0, treating them as equal.

Examples

var Float64Array = require( '@stdlib/array/float64' );
var isAlmostEqualFloat64Array = require( '@stdlib/assert/is-almost-equal-float64array' );

var x = new Float64Array( [ 1.0, 2.0, 3.0 ] );
var y = new Float64Array( [ 1.0, 2.0, 3.0 ] );
var out = isAlmostEqualFloat64Array( x, y, 0 );
// returns true

x = new Float64Array( [ -0.0, 0.0, -0.0 ] );
y = new Float64Array( [ 0.0, -0.0, 0.0 ] );
out = isAlmostEqualFloat64Array( x, y, 1 );
// returns true

x = new Float64Array( [ NaN, NaN, NaN ] );
y = new Float64Array( [ NaN, NaN, NaN ] );
out = isAlmostEqualFloat64Array( x, y, 0 );
// returns false