Operators
Base (i.e., lower-level) math operators.
Usage
var ns = require( '@stdlib/math/base/ops' );
ns
Namespace for "base" (i.e., lower-level) math operators.
var operators = ns;
// returns {...}
The namespace contains the following functions:
add( x, y )
: compute the sum of two double-precision floating-point numbers.add3( x, y, z )
: compute the sum of three double-precision floating-point numbers.add4( x, y, z, w )
: compute the sum of four double-precision floating-point numbers.add5( x, y, z, w, u )
: compute the sum of five double-precision floating-point numbers.addf( x, y )
: compute the sum of two single-precision floating-point numbers.cdiv( z1, z2 )
: divide two double-precision complex floating-point numbers.cneg( z )
: negate a double-precision complex floating-point number.cnegf( z )
: negate a single-precision complex floating-point number.csub( z1, z2 )
: subtract two double-precision complex floating-point numbers.csubf( z1, z2 )
: subtract two single-precision complex floating-point numbers.div( x, y )
: divide two double-precision floating-point numbers.divf( x, y )
: divide two single-precision floating-point numbers.imul( a, b )
: perform C-like multiplication of two signed 32-bit integers.imuldw( a, b )
: compute the double word product of two signed 32-bit integers.mul( x, y )
: multiply two double-precision floating-point numbers.mulf( x, y )
: multiply two single-precision floating-point numbers.sub( x, y )
: subtract two double-precision floating-point numbers.subf( x, y )
: subtract two single-precision floating-point numbers.umul( a, b )
: perform C-like multiplication of two unsigned 32-bit integers.umuldw( a, b )
: compute the double word product of two unsigned 32-bit integers.
Examples
var Complex128 = require( '@stdlib/complex/float64/ctor' );
var ns = require( '@stdlib/math/base/ops' );
// Operations for double-precision floating point numbers:
console.log( ns.add( 1.25, 0.45 ) );
// => 1.7
console.log( ns.sub( 1.25, 0.45 ) );
// => 0.8
// Operations for single-precision floating point numbers:
console.log( ns.mulf( 1.3, 1.2 ) );
// => ~1.56
console.log( ns.divf( 1.2, 0.4 ) );
// => 3.0
// Operations for complex numbers:
var z1 = new Complex128( 5.0, 3.0 );
var z2 = new Complex128( -2.0, 1.0 );
console.log( ns.cmul( z1, z2 ) ); // { 're': -13.0, 'im': -1.0 }
// => <Complex128>
// Operations for signed 32-bit integers:
// 2^30 * -5 = -5368709120 => 32-bit integer overflow
console.log( ns.imul( 1073741824|0, -5|0 ) );
// => -1073741824
// Operations for unsigned 32-bit integers:
// 2^31 * 5 = 10737418240 => 32-bit integer overflow
console.log( ns.umul( 2147483648>>>0, 5>>>0 ) );
// => 2147483648
// Operations for double word product:
// -(2^31) * 2^30 = -2305843009213694000 => 32-bit integer overflow
console.log( ns.imuldw( 0x80000000|0, 0x40000000|0 ) );
// => [ -536870912, 0 ]