Constructor for creating ndarrays filled with pseudorandom values drawn from a unary PRNG.
var Random = require( '@stdlib/random/tools/unary' );Returns an interface for creating ndarrays filled with pseudorandom values drawn from a unary PRNG.
var dtypes = require( '@stdlib/ndarray/dtypes' );
var exponential = require( '@stdlib/random/base/exponential' );
var idt = dtypes( 'real_and_generic' );
var odt = dtypes( 'real_floating_point_and_generic' );
var policies = {
'output': 'real_floating_point_and_generic'
};
var options = {
'order': 'row-major'
};
var rand = new Random( exponential, idt, odt, policies, options );The constructor has the following parameters:
-
prng: unary pseudorandom value generator.
-
idtypes: list of supported input data types.
-
odtypes: list of supported output data types.
-
policies: interface policies. Must have the following properties:
- output: output data type policy.
-
options: function options (optional).
The constructor supports the following options:
- order: default memory layout.
Returns an ndarray filled with pseudorandom values drawn from a unary PRNG.
var dtypes = require( '@stdlib/ndarray/dtypes' );
var exponential = require( '@stdlib/random/base/exponential' );
var idt = dtypes( 'real_and_generic' );
var odt = dtypes( 'real_floating_point_and_generic' );
var policies = {
'output': 'real_floating_point_and_generic'
};
var options = {
'order': 'row-major'
};
var rand = new Random( exponential, idt, odt, policies, options );
var v = rand.generate( [ 2, 2 ], 2.0 );
// returns <ndarray>The method has the following parameters:
- shape: output ndarray shape.
- param1: PRNG parameter. May be either a scalar or an ndarray. If an ndarray, must be broadcast compatible with the specified output ndarray shape.
- options: function options (optional).
The method accepts the following options:
- dtype: output ndarray data type. Setting this option overrides the output data type policy.
- order: memory layout. Setting this option overrides the default memory layout.
- mode: specifies how to handle indices which exceed ndarray dimensions.
- submode: specifies how to handle subscripts which exceed ndarray dimensions on a per dimension basis.
- readonly: boolean indicating whether an ndarray should be read-only.
By default, the method returns an ndarray having a data type determined by the output data type policy. To override the default behavior, set the dtype option.
var dtypes = require( '@stdlib/ndarray/dtypes' );
var getDType = require( '@stdlib/ndarray/dtype' );
var exponential = require( '@stdlib/random/base/exponential' );
var idt = dtypes( 'real_and_generic' );
var odt = dtypes( 'real_floating_point_and_generic' );
var policies = {
'output': 'real_floating_point_and_generic'
};
var options = {
'order': 'row-major'
};
var rand = new Random( exponential, idt, odt, policies, options );
var v = rand.generate( [ 2, 2 ], 2.0, {
'dtype': 'generic'
});
// returns <ndarray>
var dt = String( getDType( v ) );
// returns 'generic'Fills an ndarray with pseudorandom values drawn from a unary PRNG.
var dtypes = require( '@stdlib/ndarray/dtypes' );
var ndzeros = require( '@stdlib/ndarray/zeros' );
var exponential = require( '@stdlib/random/base/exponential' );
var idt = dtypes( 'real_and_generic' );
var odt = dtypes( 'real_floating_point_and_generic' );
var policies = {
'output': 'real_floating_point_and_generic'
};
var options = {
'order': 'row-major'
};
var rand = new Random( exponential, idt, odt, policies, options );
var out = ndzeros( [ 2, 2 ] );
var v = rand.assign( 2.0, out );
// returns <ndarray>
var bool = ( v === out );
// returns trueThe method has the following parameters:
- param1: PRNG parameter. May be either a scalar or an ndarray. If an ndarray, must be broadcast compatible with the output ndarray.
- out: output ndarray.
- The output data type policy only applies to the
generatemethod. For theassignmethod, the output ndarray is allowed to have any supported output data type.
var exponential = require( '@stdlib/random/base/exponential' );
var dtypes = require( '@stdlib/ndarray/dtypes' );
var ndarray = require( '@stdlib/ndarray/ctor' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var Random = require( '@stdlib/random/tools/unary' );
// Create a new PRNG instance...
var idt = dtypes( 'real_and_generic' );
var odt = dtypes( 'real_floating_point_and_generic' );
var policies = {
'output': 'real_floating_point_and_generic'
};
var random = new Random( exponential, idt, odt, policies );
// Generate a 3x3 matrix of pseudorandom numbers:
var x = random.generate( [ 3, 3 ], 2.0 );
console.log( ndarray2array( x ) );
// Generate another matrix with a specified data type:
x = random.generate( [ 3, 3 ], 2.0, {
'dtype': 'float32'
});
console.log( ndarray2array( x ) );
// Define an array of distribution parameters:
var param = new ndarray( 'generic', [ 2.0, 20.0, 200.0 ], [ 3, 1 ], [ 1, 1 ], 0, 'row-major' );
// Broadcast the parameters to generate another 3x3 matrix of pseudorandom numbers:
x = random.generate( [ 3, 3 ], param );
console.log( ndarray2array( x ) );