# Exponential

Exponential distribution constructor.

## Usage

``````var Exponential = require( '@stdlib/math/base/dists/exponential/ctor' );
``````

#### Exponential( [lambda] )

Returns an exponential distribution object.

``````var exponential = new Exponential();

var mu = exponential.mean;
// returns 1.0
``````

By default, `lambda = 1.0`. To create a distribution having a different rate parameter `lambda`, provide a parameter value.

``````var exponential = new Exponential( 4.0 );

var mu = exponential.mean;
// returns 0.25
``````

## exponential

An exponential distribution object has the following properties and methods...

### Writable Properties

#### exponential.lambda

Rate parameter of the distribution. `lambda` must be a positive number.

``````var exponential = new Exponential( 2.0 );

var lambda = exponential.lambda;
// returns 2.0

exponential.lambda = 3.0;

lambda = exponential.lambda;
// returns 3.0
``````

### Computed Properties

#### Exponential.prototype.entropy

Returns the differential entropy.

``````var exponential = new Exponential( 4.0 );

var entropy = exponential.entropy;
// returns ~-0.386
``````

#### Exponential.prototype.kurtosis

Returns the excess kurtosis.

``````var exponential = new Exponential( 4.0 );

var kurtosis = exponential.kurtosis;
// returns 6.0
``````

#### Exponential.prototype.mean

Returns the expected value.

``````var exponential = new Exponential( 4.0 );

var mu = exponential.mean;
// returns 0.25
``````

#### Exponential.prototype.median

Returns the median.

``````var exponential = new Exponential( 4.0 );

var median = exponential.median;
// returns ~0.173
``````

#### Exponential.prototype.mode

Returns the mode.

``````var exponential = new Exponential( 4.0 );

var mode = exponential.mode;
// returns 0.0
``````

#### Exponential.prototype.skewness

Returns the skewness.

``````var exponential = new Exponential( 4.0 );

var skewness = exponential.skewness;
// returns 2.0
``````

#### Exponential.prototype.stdev

Returns the standard deviation.

``````var exponential = new Exponential( 4.0 );

var s = exponential.stdev;
// returns ~0.251
``````

#### Exponential.prototype.variance

Returns the variance.

``````var exponential = new Exponential( 4.0 );

var s2 = exponential.variance;
// returns ~0.063
``````

### Methods

#### Exponential.prototype.cdf( x )

Evaluates the cumulative distribution function (CDF).

``````var exponential = new Exponential( 2.0 );

var y = exponential.cdf( 0.5 );
// returns ~0.632
``````

#### Exponential.prototype.logcdf( x )

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

``````var exponential = new Exponential( 2.0 );

var y = exponential.logcdf( 0.5 );
// returns ~-0.459
``````

#### Exponential.prototype.logpdf( x )

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

``````var exponential = new Exponential( 2.0 );

var y = exponential.logpdf( 0.8 );
// returns ~-0.906
``````

#### Exponential.prototype.mgf( t )

Evaluates the moment-generating function (MGF).

``````var exponential = new Exponential( 2.0 );

var y = exponential.mgf( 0.5 );
// returns ~1.333
``````

#### Exponential.prototype.pdf( x )

Evaluates the probability density function (PDF).

``````var exponential = new Exponential( 2.0 );

var y = exponential.pdf( 0.8 );
// returns ~0.404
``````

#### Exponential.prototype.quantile( p )

Evaluates the quantile function at probability `p`.

``````var exponential = new Exponential( 2.0 );

var y = exponential.quantile( 0.5 );
// returns ~0.347

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

## Examples

``````var Exponential = require( '@stdlib/math/base/dists/exponential/ctor' );

var exponential = new Exponential( 2.0 );

var mu = exponential.mean;
// returns 0.5

var mode = exponential.mode;
// returns 0.0

var s2 = exponential.variance;
// returns 0.25

var y = exponential.cdf( 0.8 );
// returns ~0.798
``````