Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Epsilon

Difference between one and the smallest value greater than one that can be represented as a half-precision floating-point number.

Epsilon is defined as

$$\epsilon = b^{-(p-1)}$$

where b is the radix (base) and p is the precision (number of radix bits in the significand). For half-precision floating-point numbers, b is 2 and p is 11.

Usage

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

FLOAT16_EPSILON

Difference between one and the smallest value greater than one that can be represented as a half-precision floating-point number.

var bool = ( FLOAT16_EPSILON === 0.0009765625 );
// returns true

Examples

var abs = require( '@stdlib/math/base/special/abs' );
var maxabs = require( '@stdlib/math/base/special/maxabs' );
var randu = require( '@stdlib/random/base/randu' );
var FLOAT16_EPSILON = require( '@stdlib/constants/float16/eps' );

var bool;
var a;
var b;
var i;

function isApprox( a, b ) {
    var delta;
    var tol;

    delta = abs( a - b );
    tol = FLOAT16_EPSILON * maxabs( a, b );

    return ( delta <= tol );
}

for ( i = 0; i < 100; i++ ) {
    a = randu() * 10.0;
    b = a + (randu()*2.0e-3) - 1.0e-3;
    bool = isApprox( a, b );
    console.log( '%d %s approximately equal to %d', a, ( bool ) ? 'is' : 'is not', b );
}

See Also

  • @stdlib/constants/float32/eps: difference between one and the smallest value greater than one that can be represented as a single-precision floating-point number.
  • @stdlib/constants/float64/eps: difference between one and the smallest value greater than one that can be represented as a double-precision floating-point number.