Skip to content

Latest commit

 

History

History

kumaraswamy

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Kumaraswamy's Double Bounded Random Numbers

Kumaraswamy's double bounded distributed pseudorandom numbers.

Usage

var kumaraswamy = require( '@stdlib/math/base/random/kumaraswamy' );

kumaraswamy( a, b )

Returns a pseudorandom number drawn from a Kumaraswamy's double bounded distribution with parameters a (first shape parameter) and b (second shape parameter).

var r = kumaraswamy( 2.0, 5.0 );
// returns <number>

If a <= 0 or b <= 0, the function returns NaN.

var r = kumaraswamy( 2.0, -2.0 );
// returns NaN

r = kumaraswamy( -2.0, 2.0 );
// returns NaN

If a or b is NaN, the function returns NaN.

var r = kumaraswamy( NaN, 5.0 );
// returns NaN

r = kumaraswamy( 2.0, NaN );
// returns NaN

kumaraswamy.factory( [a, b, ][options] )

Returns a pseudorandom number generator (PRNG) for generating pseudorandom numbers drawn from a Kumaraswamy's double bounded distribution.

var rand = kumaraswamy.factory();

var r = rand( 1.5, 1.5 );
// returns <number>

If provided a and b, the returned generator returns random variates from the specified distribution.

// Draw from Kumaraswamy( 1.5, 1.5 ) distribution:
var rand = kumaraswamy.factory( 1.5, 1.5 );

var r = rand();
// returns <number>

r = rand();
// returns <number>

If not provided a and b, the returned generator requires that both parameters be provided at each invocation.

var rand = kumaraswamy.factory();

var r = rand( 1.0, 1.0 );
// returns <number>

r = rand( 3.14, 2.25 );
// returns <number>

The function accepts the following options:

  • seed: pseudorandom number generator seed.

To seed a pseudorandom number generator, set the seed option.

var rand = kumaraswamy.factory({
    'seed': 12345
});

var r = rand( 2.0, 3.0 );
// returns 0.7581491186188297

rand = kumaraswamy.factory( 1.0, 2.0, {
    'seed': 12345
});

r = rand();
// returns 0.7227286017174674

kumaraswamy.NAME

The generator name.

var name = kumaraswamy.NAME;
// returns 'kumaraswamy'

kumaraswamy.PRNG

The underlying pseudorandom number generator.

var prng = kumaraswamy.PRNG;
// returns <Function>

kumaraswamy.SEED

The value used to seed kumaraswamy().

var rand;
var r;
var i;

// Generate pseudorandom values...
for ( i = 0; i < 100; i++ ) {
    r = kumaraswamy( 2.0, 2.0 );
}

// Generate the same pseudorandom values...
rand = kumaraswamy.factory( 2.0, 2.0, {
    'seed': kumaraswamy.SEED
});
for ( i = 0; i < 100; i++ ) {
    r = rand();
}

Examples

var kumaraswamy = require( '@stdlib/math/base/random/kumaraswamy' );

var seed;
var rand;
var i;

// Generate pseudorandom numbers...
console.log( '\nseed: %d', kumaraswamy.SEED );
for ( i = 0; i < 100; i++ ) {
    console.log( kumaraswamy( 2.0, 2.0 ) );
}

// Create a new pseudorandom number generator...
seed = 1234;
rand = kumaraswamy.factory( 6.0, 2.0, {
    'seed': seed
});
console.log( '\nseed: %d', seed );
for ( i = 0; i < 100; i++ ) {
    console.log( rand() );
}

// Create another pseudorandom number generator using a previous seed...
rand = kumaraswamy.factory( 2.0, 2.0, {
    'seed': kumaraswamy.SEED
});
console.log( '\nseed: %d', kumaraswamy.SEED );
for ( i = 0; i < 100; i++ ) {
    console.log( rand() );
}