# Kumaraswamy

Kumaraswamy's double bounded distribution constructor.

## Usage

``````var Kumaraswamy = require( '@stdlib/math/base/dists/kumaraswamy/ctor' );
``````

#### Kumaraswamy( [a, b] )

Returns a Kumaraswamy's double bounded distribution object.

``````var kumaraswamy = new Kumaraswamy();

var mu = kumaraswamy.mean;
// returns 0.5
``````

By default, `a = 1.0` and `b = 1.0`. To create a distribution having a different `a` (first shape parameter) and `b` (second shape parameter), provide parameter values.

``````var kumaraswamy = new Kumaraswamy( 2.0, 4.0 );

var mu = kumaraswamy.mean;
// returns ~0.406
``````

## kumaraswamy

A Kumaraswamy's double bounded distribution object has the following properties and methods...

### Writable Properties

#### kumaraswamy.a

First shape parameter of the distribution. `a` must be a positive number.

``````var kumaraswamy = new Kumaraswamy();

var a = kumaraswamy.a;
// returns 1.0

kumaraswamy.a = 3.0;

a = kumaraswamy.a;
// returns 3.0
``````

#### kumaraswamy.b

Second shape parameter of the distribution. `b` must be a positive number.

``````var kumaraswamy = new Kumaraswamy( 2.0, 4.0 );

var b = kumaraswamy.b;
// returns 4.0

kumaraswamy.b = 3.0;

b = kumaraswamy.b;
// returns 3.0
``````

### Computed Properties

#### Kumaraswamy.prototype.kurtosis

Returns the excess kurtosis.

``````var kumaraswamy = new Kumaraswamy( 4.0, 12.0 );

var kurtosis = kumaraswamy.kurtosis;
// returns ~2.704
``````

#### Kumaraswamy.prototype.mean

Returns the expected value.

``````var kumaraswamy = new Kumaraswamy( 4.0, 12.0 );

var mu = kumaraswamy.mean;
// returns ~0.481
``````

#### Kumaraswamy.prototype.mode

Returns the mode.

``````var kumaraswamy = new Kumaraswamy( 4.0, 12.0 );

var mode = kumaraswamy.mode;
// returns ~0.503
``````

#### Kumaraswamy.prototype.skewness

Returns the skewness.

``````var kumaraswamy = new Kumaraswamy( 4.0, 12.0 );

var skewness = kumaraswamy.skewness;
// returns ~-0.201
``````

#### Kumaraswamy.prototype.stdev

Returns the standard deviation.

``````var kumaraswamy = new Kumaraswamy( 4.0, 12.0 );

var s = kumaraswamy.stdev;
// returns ~0.13
``````

#### Kumaraswamy.prototype.variance

Returns the variance.

``````var kumaraswamy = new Kumaraswamy( 4.0, 12.0 );

var s2 = kumaraswamy.variance;
// returns ~0.017
``````

### Methods

#### Kumaraswamy.prototype.cdf( x )

Evaluates the cumulative distribution function (CDF).

``````var kumaraswamy = new Kumaraswamy( 2.0, 4.0 );

var y = kumaraswamy.cdf( 0.5 );
// returns ~0.684
``````

#### Kumaraswamy.prototype.logcdf( x )

Evaluates the natural logarithm of the cumulative distribution function (CDF).

``````var kumaraswamy = new Kumaraswamy( 2.0, 4.0 );

var y = kumaraswamy.logcdf( 0.5 );
// returns ~-0.38
``````

#### Kumaraswamy.prototype.logpdf( x )

Evaluates the natural logarithm of the probability density function (PDF).

``````var kumaraswamy = new Kumaraswamy( 2.0, 4.0 );

var y = kumaraswamy.logpdf( 0.8 );
// returns ~-1.207
``````

#### Kumaraswamy.prototype.pdf( x )

Evaluates the probability density function (PDF).

``````var kumaraswamy = new Kumaraswamy( 2.0, 4.0 );

var y = kumaraswamy.pdf( 0.8 );
// returns ~0.299
``````

#### Kumaraswamy.prototype.quantile( p )

Evaluates the quantile function at probability `p`.

``````var kumaraswamy = new Kumaraswamy( 2.0, 4.0 );

var y = kumaraswamy.quantile( 0.5 );
// returns ~0.399

y = quantile( 1.9 );
// returns NaN
``````

## Examples

``````var Kumaraswamy = require( '@stdlib/math/base/dists/kumaraswamy/ctor' );

var kumaraswamy = new Kumaraswamy( 2.0, 4.0 );

var mu = kumaraswamy.mean;
// returns ~0.406

var mode = kumaraswamy.mode;
// returns ~0.378

var s2 = kumaraswamy.variance;
// returns ~0.035

var y = kumaraswamy.cdf( 0.8 );
// returns ~0.983
``````