Skip to content

Latest commit

 

History

History
110 lines (70 loc) · 2.78 KB

File metadata and controls

110 lines (70 loc) · 2.78 KB

toInt32

Convert a half-precision floating-point number to a signed 32-bit integer.

Usage

var float16ToInt32 = require( '@stdlib/number/float16/base/to-int32' );

float16ToInt32( x )

Converts a half-precision floating-point number to a signed 32-bit integer.

var float64ToFloat16 = require( '@stdlib/number/float64/base/to-float16' );

var y = float16ToInt32( float64ToFloat16( 4294967295.0 ) );
// returns 0

y = float16ToInt32( float64ToFloat16( 3.14 ) );
// returns 3

y = float16ToInt32( float64ToFloat16( -3.14 ) );
// returns -3

y = float16ToInt32( float64ToFloat16( NaN ) );
// returns 0

y = float16ToInt32( float64ToFloat16( Infinity ) );
// returns 0

y = float16ToInt32( float64ToFloat16( -Infinity ) );
// returns 0

Examples

var uniform = require( '@stdlib/random/array/uniform' );
var map = require( '@stdlib/array/base/map' );
var naryFunction = require( '@stdlib/utils/nary-function' );
var pickArguments = require( '@stdlib/utils/pick-arguments' );
var logEachMap = require( '@stdlib/console/log-each-map' );
var float64ToFloat16 = require( '@stdlib/number/float64/base/to-float16' );
var float16ToInt32 = require( '@stdlib/number/float16/base/to-int32' );

// Generate an array of random numbers:
var f64 = uniform( 100, 0.0, 100.0, {
    'dtype': 'float64'
});

// Convert each value to a half-precision floating-point number:
var f16 = map( f64, naryFunction( float64ToFloat16, 1 ) );

// Convert each half-precision floating-point number to the nearest signed 32-bit integer:
logEachMap( 'float16: %f => int32: %d', f16, pickArguments( float16ToInt32, [ 1 ] ) );