time-to-botec/squiggle/node_modules/@stdlib/number/float32/base/to-word
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00
..
docs feat: add the node modules 2022-12-03 12:44:49 +00:00
include/stdlib/number/float32/base feat: add the node modules 2022-12-03 12:44:49 +00:00
lib feat: add the node modules 2022-12-03 12:44:49 +00:00
src feat: add the node modules 2022-12-03 12:44:49 +00:00
binding.gyp feat: add the node modules 2022-12-03 12:44:49 +00:00
include.gypi feat: add the node modules 2022-12-03 12:44:49 +00:00
manifest.json feat: add the node modules 2022-12-03 12:44:49 +00:00
package.json feat: add the node modules 2022-12-03 12:44:49 +00:00
README.md feat: add the node modules 2022-12-03 12:44:49 +00:00

toWord

Return an unsigned 32-bit integer corresponding to the IEEE 754 binary representation of a single-precision floating-point number.

Usage

var toWordf = require( '@stdlib/number/float32/base/to-word' );

toWordf( x )

Returns an unsigned 32-bit integer corresponding to the IEEE 754 binary representation of a single-precision floating-point number.

var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );

var f32 = float64ToFloat32( 1.337 );
// returns 1.3370000123977661

var w = toWordf( f32 ); // => 0 01111111 01010110010001011010001
// returns 1068180177

Notes

  • The equivalent of this function in C/C++,

    unsigned int toWordf(float x) {
        return *(unsigned int*)&x;
    }
    

Examples

var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );
var randu = require( '@stdlib/random/base/randu' );
var toWordf = require( '@stdlib/number/float32/base/to-word' );

var word;
var f64;
var f32;
var i;

// Convert single-precision floating-point numbers to integers representing the binary literal...
for ( i = 0; i < 1000; i++ ) {
    f64 = (randu()*100.0) - 50.0;
    f32 = float64ToFloat32( f64 );
    word = toWordf( f32 );
    console.log( 'float64: %d => float32: %d => word: %d', f64, f32, word );
}

C APIs

Usage

#include "stdlib/number/float32/base/to_word.h"

stdlib_base_float32_to_word( x, *word )

Converts a single-precision floating-point number to an unsigned 32-bit integer corresponding to the number's IEEE 754 binary representation.

#include <stdint.h>

uint32_t word;
stdlib_base_float32_to_word( 3.14f, &word );

The function accepts the following arguments:

  • x: [in] float input value.
  • word: [out] uint32_t* destination.
void stdlib_base_float32_to_word( const float x, uint32_t *word );

stdlib_base_float32_word_t

An opaque type definition for a union for converting between a single-precision floating-point number and an unsigned 32-bit integer.

#include <stdint.h>

stdlib_base_float32_word_t w;

// Assign a single-precision floating-point number:
w.value = 3.14f;

// Retrieve the word:
uint32_t word = w.word;

The union has the following members:

Examples

#include "stdlib/number/float32/base/to_word.h"
#include <stdint.h>
#include <stdio.h>

int main() {
    float x[] = { 3.14f, -3.14f, 0.0f, 0.0f/0.0f };

    uint32_t word;
    int i;
    for ( i = 0; i < 4; i++ ) {
        stdlib_base_float32_to_word( x[ i ], &word );
        printf( "%f => word: %u\n", x[ i ], word );
    }
}