Skip to content

Latest commit

 

History

History

README.md

mul

Multiply two unsigned 32-bit integers.

Usage

var mul = require( '@stdlib/number/uint32/base/mul' );

mul( x, y )

Multiplies two unsigned 32-bit integers.

var v = mul( 10>>>0, 4>>>0 );
// returns 40

v = mul( 2147483648>>>0, 5>>>0 ); // 2^31 * 5 = 10737418240 => 32-bit integer overflow
// returns 2147483648

Notes

  • The function performs C-like multiplication of two unsigned 32-bit integers, including wraparound semantics.

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var logEachMap = require( '@stdlib/console/log-each-map' );
var mul = require( '@stdlib/number/uint32/base/mul' );

var opts = {
    'dtype': 'uint32'
};

// Create arrays of random values:
var x = discreteUniform( 100, 0, 50, opts );
var y = discreteUniform( 100, 0, 50, opts );

// Perform element-wise multiplication:
logEachMap( '%d * %d = %d', x, y, mul );

C APIs

Usage

#include "stdlib/number/uint32/base/mul.h"

stdlib_base_uint32_mul( x, y )

Multiplies two unsigned 32-bit integers.

#include <stdint.h>

uint32_t v = stdlib_base_uint32_mul( 5, 2 );
// returns 10

The function accepts the following arguments:

  • x: [in] uint32_t first input value.
  • y: [in] uint32_t second input value.
uint32_t stdlib_base_uint32_mul( const uint32_t x, const uint32_t y );

Examples

#include "stdlib/number/uint32/base/mul.h"
#include <stdint.h>
#include <stdio.h>

int main( void ) {
    const uint32_t x[] = { 3, 5, 10, 12 };
    const uint32_t y[] = { 6, 2, 11, 24 };

    uint32_t z;
    int i;
    for ( i = 0; i < 4; i++ ) {
        z = stdlib_base_uint32_mul( x[ i ], y[ i ] );
        printf( "%u * %u = %u\n", x[ i ], y[ i ], z );
    }
}

See Also