Skip to content

Latest commit

 

History

History
110 lines (70 loc) · 2.81 KB

File metadata and controls

110 lines (70 loc) · 2.81 KB

toUint32

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

Usage

var float16ToUint32 = require( '@stdlib/number/float16/base/to-uint32' );

float16ToUint32( x )

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

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

var y = float16ToUint32( float64ToFloat16( 4294967297.0 ) );
// returns 0

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

y = float16ToUint32( float64ToFloat16( -3.14 ) );
// returns 4294967293

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

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

y = float16ToUint32( 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 float16ToUint32 = require( '@stdlib/number/float16/base/to-uint32' );

// 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 unsigned 32-bit integer:
logEachMap( 'float16: %f => uint32: %d', f16, pickArguments( float16ToUint32, [ 0 ] ) );