time-to-botec/squiggle/node_modules/@stdlib/math/base/special/imul
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
lib 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

imul

Perform C-like multiplication of two signed 32-bit integers.

Usage

var imul = require( '@stdlib/math/base/special/imul' );

imul( a, b )

Performs C-like multiplication of two signed 32-bit integers.

var v = imul( -10|0, 4|0 );
// returns -40

v = imul( 1073741824|0, -5|0 ); // 2^30 * -5 = -5368709120 => 32-bit integer overflow
// returns -1073741824

Notes

  • The function emulates C-like multiplication of two signed 32-bit integers.

Examples

var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
var INT32_MIN = require( '@stdlib/constants/int32/min' );
var INT32_MAX = require( '@stdlib/constants/int32/max' );
var imul = require( '@stdlib/math/base/special/imul' );

var randi;
var a;
var b;
var y;
var i;

randi = discreteUniform( INT32_MIN, INT32_MAX );

for ( i = 0; i < 100; i++ ) {
    a = randi()|0;
    b = randi()|0;
    y = imul( a, b );
    console.log( '%d x %d = %d', a, b, y );
}