Create a function for applying a unary function to each element in an input array.
var factory = require( '@stdlib/math/array/tools/unary-factory' );
Returns a function for applying a unary function to each element in an input array.
var abs = require( '@stdlib/math/base/special/abs' );
var dtypes = [ 'float64', 'float32', 'generic' ];
var policy = 'same';
var unary = factory( abs, dtypes, dtypes, policy );
The function has the following parameters:
- fcn: unary function to apply.
- idtypes: list of supported input data types.
- odtypes: list of supported input data types.
- policy: output data type policy.
Applies a unary function to each element in a provided input array.
var abs = require( '@stdlib/math/base/special/abs' );
var dtypes = [ 'float64', 'float32', 'generic' ];
var policy = 'same';
var unary = factory( abs, dtypes, dtypes, policy );
var v = unary( [ -1.0, 2.0, -3.0, 4.0 ] );
// returns [ 1.0, 2.0, 3.0, 4.0 ]
The function has the following parameters:
- x: input array.
- options: function options.
The function accepts the following options:
- dtype: output array data type. Setting this option, overrides the output data type policy.
By default, the function returns an array having a data type determined by the output data type policy. To override the default behavior, set the dtype
option.
var abs = require( '@stdlib/math/base/special/abs' );
var dtypes = [ 'float64', 'float32', 'generic' ];
var policy = 'same';
var unary = factory( abs, dtypes, dtypes, policy );
var v = unary( [ -1.0, 2.0, -3.0, 4.0 ], {
'dtype': 'float64'
});
// returns <Float64Array>[ 1.0, 2.0, 3.0, 4.0 ]
Applies a unary function to each element in a provided input array and assigns results to a provided output array.
var abs = require( '@stdlib/math/base/special/abs' );
var zeros = require( '@stdlib/array/zeros' );
var dtypes = [ 'float64', 'float32', 'generic' ];
var policy = 'same';
var unary = factory( abs, dtypes, dtypes, policy );
var out = zeros( 4, 'float64' );
// returns <Float64Array>[ 0.0, 0.0, 0.0, 0.0 ]
var v = unary.assign( [ -1.0, 2.0, -3.0, 4.0 ], out );
// returns <Float64Array>[ 1.0, 2.0, 3.0, 4.0 ]
var bool = ( v === out );
// returns true
The method has the following parameters:
- x: input array.
- out: output array.
- The output data type policy only applies to the function returned by
factory
. For theassign
method, the output array is allowed to be any array-like object, including accessor arrays.
var base = require( '@stdlib/math/base/special/sin' );
var uniform = require( '@stdlib/random/array/uniform' );
var dtypes = require( '@stdlib/array/dtypes' );
var dtype = require( '@stdlib/array/dtype' );
var logEach = require( '@stdlib/console/log-each' );
var factory = require( '@stdlib/math/array/tools/unary-factory' );
// Define the supported input and output data types:
var idt = dtypes( 'real_and_generic' );
var odt = dtypes( 'real_floating_point_and_generic' );
// Define the policy mapping an input data type to an output data type:
var policy = 'real_floating_point_and_generic';
// Create an interface for computing the element-wise sine:
var sin = factory( base, idt, odt, policy );
// Generate an array of random numbers:
var x = uniform( 10, -1.0, 1.0, {
'dtype': 'generic'
});
// Compute the element-wise sine:
var y = sin( x );
// Resolve the output array data type:
var dt = dtype( y );
console.log( dt );
// Print the results:
logEach( 'sin(%0.5f) = %0.5f', x, y );