6.6 KiB
abs
Compute the absolute value.
The absolute value is defined as
Usage
var abs = require( '@stdlib/math/special/abs' );
abs( x[, options] )
Computes the absolute value.
var y = abs( -1.0 );
// returns 1.0
The function accepts the following arguments:
- x: input
ndarray
, array-like object, or number. If provided anndarray
or array-like object, the function performs element-wise computation. - options: function options.
If provided an ndarray
, the function returns an ndarray
having the same shape and data type as x
.
var array = require( '@stdlib/ndarray/array' );
var x = array( [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] ); // 2x2
var y = abs( x );
// returns <ndarray>
var v = y.get( 0, 1 );
// returns 2.0
If provided an array-like object, the function returns an array-like object having the same length and data type as x
.
var Float64Array = require( '@stdlib/array/float64' );
var x = new Float64Array( [ -1.0, -2.0 ] );
var y = abs( x );
// returns <Float64Array>[ 1.0, 2.0 ]
x = [ -1.0, -2.0 ];
y = abs( x );
// returns [ 1.0, 2.0 ]
The function accepts the following options
:
- dtype: output array data type. Only applicable when
x
is either anndarray
or array-like object. By default, the output array data type is inferred from the input array. - order: output array order. Only applicable when
x
is anndarray
. By default, the output array order is inferred from the input array.
By default, when provided either an ndarray
or an array-like object, the function returns an object of the same "kind" (either an ndarray
or array-like object, respectively) having the same underlying data type. To specify a different output array data type, set the dtype
option.
var Float32Array = require( '@stdlib/array/float32' );
var x = new Float32Array( [ -1.0, -2.0 ] );
var y = abs( x );
// returns <Float32Array>[ 1.0, 2.0 ]
x = new Float32Array( [ -1.0, -2.0 ] );
y = abs( x, {
'dtype': 'float64'
});
// returns <Float64Array>[ 1.0, 2.0 ]
abs.assign( x, y )
Computes the absolute value and assigns results to a provided output array.
var array = require( '@stdlib/ndarray/array' );
var x = array( [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] ); // 2x2
var y = array( [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] ); // 2x2
var out = abs.assign( x, y );
// returns <ndarray>
var bool = ( out === y );
// returns true
var v = y.get( 0, 1 );
// returns 2.0
The output array must be the same data "kind" (i.e., ndarray
or array-like object) as the input array. For example, if x
is an ndarray
, y
must also be an ndarray
. Similarly, if x
is an array-like object, y
must also be an array-like object.
TODO: broadcasting discussion and example(s).
Examples
var Float64Array = require( '@stdlib/array/float64' );
var array = require( '@stdlib/ndarray/array' );
var ind2sub = require( '@stdlib/ndarray/ind2sub' );
var abs = require( '@stdlib/math/special/abs' );
// Provide a number...
var v = abs( -1.0 );
console.log( 'x = %d => abs(x) = %d', -1.0, v );
// Provide an array-like object...
var x = new Float64Array( [ -1.0, -2.0, -3.0 ] );
var y = abs( x );
var i;
for ( i = 0; i < x.length; i++ ) {
console.log( 'x_%d = %d => abs(x_%d) = %d', i, x[ i ], i, y[ i ] );
}
// Provide an ndarray...
x = array( [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] );
y = abs( x );
var sh = x.shape;
var sub;
for ( i = 0; i < x.length; i++ ) {
sub = ind2sub( sh, i );
console.log( 'x_%d%d = %d => abs(x_%d%d) = %d', sub[ 0 ], sub[ 1 ], x.iget( i ), sub[ 0 ], sub[ 1 ], y.iget( i ) );
}