Low Word
Return an unsigned 32-bit integer corresponding to the less significant 32 bits of a double-precision floating-point number.
Usage
var getLowWord = require( '@stdlib/number/float64/base/get-low-word' );
getLowWord( x )
Returns an unsigned 32-bit integer
corresponding to the less significant 32 bits of a double-precision floating-point number.
var w = getLowWord( 3.14e201 ); // => 10010011110010110101100010000010
// returns 2479577218
Examples
var floor = require( '@stdlib/math/base/special/floor' );
var randu = require( '@stdlib/random/base/randu' );
var pow = require( '@stdlib/math/base/special/pow' );
var getLowWord = require( '@stdlib/number/float64/base/get-low-word' );
var frac;
var exp;
var w;
var x;
var i;
for ( i = 0; i < 100; i++ ) {
frac = randu() * 10.0;
exp = -floor( randu()*324.0 );
x = frac * pow( 10.0, exp );
w = getLowWord( x );
console.log( 'x: %d. low word: %d.', x, w );
}
C APIs
Usage
#include "stdlib/number/float64/base/get_low_word.h"
stdlib_base_float64_get_low_word( x, *low )
Extracts the unsigned 32-bit integer corresponding to the less significant 32 bits of a double-precision floating-point number.
#include <stdint.h>
uint32_t low;
stdlib_base_float64_get_low_word( 3.14, &low );
The function accepts the following arguments:
- x:
[in] double
input value. - low:
[out] uint32_t*
destination for lower order word.
void stdlib_base_float64_get_low_word( const double x, uint32_t *low );
Examples
#include "stdlib/number/float64/base/get_low_word.h"
#include <stdint.h>
#include <stdio.h>
int main( void ) {
double x[] = { 3.14, -3.14, 0.0, 0.0/0.0 };
uint32_t low;
int i;
for ( i = 0; i < 4; i++ ) {
stdlib_base_float64_get_low_word( x[ i ], &low );
printf( "%lf => low: %u\n", x[ i ], low );
}
}