Skip to content

Latest commit

 

History

History
209 lines (129 loc) · 6.86 KB

File metadata and controls

209 lines (129 loc) · 6.86 KB

abs

Compute the absolute value for each element in an ndarray.

Usage

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

abs( x[, options] )

Computes the absolute value for each element in an ndarray.

var array = require( '@stdlib/ndarray/array' );

var x = array( [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] );
var y = abs( x );
// returns <ndarray>[ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]

The function accepts the following arguments:

  • x: input ndarray.
  • options: function options (optional).

The function accepts the following options:

  • dtype: output ndarray data type. Must be a real-valued or generic data type.
  • order: output ndarray order (i.e., memory layout).

By default, the function returns an ndarray having a data type determined by the function's output data type policy. To override the default behavior, set the dtype option.

var array = require( '@stdlib/ndarray/array' );
var getDType = require( '@stdlib/ndarray/dtype' );

var x = array( [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] );
var y = abs( x, {
    'dtype': 'generic'
});
// returns <ndarray>[ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]

var dt = getDType( y );
// returns 'generic'

By default, the function returns an ndarray having the same order as the input ndarray. To return an ndarray having a specific memory layout irrespective of the memory layout of the input ndarray, set the order option.

var array = require( '@stdlib/ndarray/array' );
var getOrder = require( '@stdlib/ndarray/order' );

var x = array( [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] );
var y = abs( x, {
    'order': 'column-major'
});
// returns <ndarray>[ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]

var ord = getOrder( y );
// returns 'column-major'

abs.assign( x, y )

Computes the absolute value for each element in an ndarray and assigns results to a provided output ndarray.

var array = require( '@stdlib/ndarray/array' );

var x = array( [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] );
var y = array( [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] );

var out = abs.assign( x, y );
// returns <ndarray>[ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]

var bool = ( out === y );
// returns true

The function accepts the following arguments:

The function supports broadcasting an input ndarray to the shape of the output ndarray without performing a physical copy of the input ndarray's underlying data.

var zeros = require( '@stdlib/ndarray/zeros' );
var array = require( '@stdlib/ndarray/array' );

// Create a 2x2 input ndarray:
var x = array( [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] );

// Create a 2x2x2 output ndarray:
var y = zeros( [ 2, 2, 2 ] );

var out = abs.assign( x, y );
// returns <ndarray>[ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ]

Notes

  • The output data type policy only applies to the main function and specifies that, by default, the function must return an ndarray having a real-valued or "generic" data type. For the assign method, the output ndarray is allowed to have any supported output data type.

Examples

var uniform = require( '@stdlib/random/uniform' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var abs = require( '@stdlib/math/special/abs' );

var x = uniform( [ 5, 5 ], -10.0, 10.0 );
console.log( ndarray2array( x ) );

var y = abs( x );
console.log( ndarray2array( y ) );