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 );
    }
}
Did you find this page helpful?