# Fréchet

Fréchet distribution constructor.

## Usage

``````var Frechet = require( '@stdlib/math/base/dists/frechet/ctor' );
``````

#### Frechet( [alpha, s, m] )

Returns a Fréchet distribution object.

``````var frechet = new Frechet();

var mu = frechet.mean;
// returns Infinity
``````

By default, `alpha = 1.0`, `s = 1.0`, and `m = 0.0`. To create a distribution having a different `alpha` (shape), `s` (scale), and `m` (location), provide parameter values.

``````var frechet = new Frechet( 2.0, 4.0, 3.5 );

var mu = frechet.mean;
// returns ~10.59
``````

## frechet

An Fréchet distribution object has the following properties and methods...

### Writable Properties

#### frechet.alpha

Shape parameter of the distribution. `alpha` must be a positive number.

``````var frechet = new Frechet();

var alpha = frechet.alpha;
// returns 1.0

frechet.alpha = 0.5;

alpha = frechet.alpha;
// returns 0.5
``````

#### frechet.s

Scale parameter of the distribution. `s` must be a positive number.

``````var frechet = new Frechet( 2.0, 4.0, 1.5 );

var s = frechet.s;
// returns 4.0

frechet.s = 3.0;

s = frechet.s;
// returns 3.0
``````

#### frechet.m

Location parameter of the distribution.

``````var frechet = new Frechet( 2.0, 2.0, 4.0 );

var m = frechet.m;
// returns 4.0

frechet.m = 3.0;

m = frechet.m;
// returns 3.0
``````

### Computed Properties

#### Frechet.prototype.entropy

Returns the differential entropy.

``````var frechet = new Frechet( 4.0, 12.0, 2.0 );

var entropy = frechet.entropy;
// returns ~2.82
``````

#### Frechet.prototype.kurtosis

Returns the excess kurtosis.

``````var frechet = new Frechet( 4.0, 12.0, 2.0 );

var kurtosis = frechet.kurtosis;
// returns Infinity
``````

#### Frechet.prototype.mean

Returns the expected value.

``````var frechet = new Frechet( 4.0, 12.0, 2.0 );

var mu = frechet.mean;
// returns ~16.705
``````

#### Frechet.prototype.median

Returns the median.

``````var frechet = new Frechet( 4.0, 12.0, 2.0 );

var median = frechet.median;
// returns ~15.151
``````

#### Frechet.prototype.mode

Returns the mode.

``````var frechet = new Frechet( 4.0, 12.0, 2.0 );

var mode = frechet.mode;
// returns ~13.349
``````

#### Frechet.prototype.skewness

Returns the skewness.

``````var frechet = new Frechet( 4.0, 12.0, 2.0 );

var skewness = frechet.skewness;
// returns ~5.605
``````

#### Frechet.prototype.stdev

Returns the standard deviation.

``````var frechet = new Frechet( 4.0, 12.0, 2.0 );

var s = frechet.stdev;
// returns ~6.245
``````

#### Frechet.prototype.variance

Returns the variance.

``````var frechet = new Frechet( 4.0, 12.0, 2.0 );

var s2 = frechet.variance;
// returns ~38.996
``````

### Methods

#### Frechet.prototype.cdf( x )

Evaluates the cumulative distribution function (CDF).

``````var frechet = new Frechet( 2.0, 4.0, 3.0 );

var y = frechet.cdf( 2.5 );
// returns 0.0
``````

#### Frechet.prototype.logcdf( x )

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

``````var frechet = new Frechet( 2.0, 4.0, 3.0 );

var y = frechet.logcdf( 2.5 );
// returns -Infinity
``````

#### Frechet.prototype.logpdf( x )

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

``````var frechet = new Frechet( 2.0, 4.0, 3.0 );

var y = frechet.logpdf( 5.5 );
// returns ~-1.843
``````

#### Frechet.prototype.pdf( x )

Evaluates the probability density function (PDF).

``````var frechet = new Frechet( 2.0, 4.0, 3.0 );

var y = frechet.pdf( 5.5 );
// returns ~0.158
``````

#### Frechet.prototype.quantile( p )

Evaluates the quantile function at probability `p`.

``````var frechet = new Frechet( 2.0, 4.0, 3.0 );

var y = frechet.quantile( 0.5 );
// returns ~7.804

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

## Examples

``````var Frechet = require( '@stdlib/math/base/dists/frechet/ctor' );

var frechet = new Frechet( 2.0, 4.0, 3.0 );

var mu = frechet.mean;
// returns ~10.09

var median = frechet.median;
// returns ~7.804

var s2 = frechet.variance;
// returns Infinity

var y = frechet.cdf( 2.5 );
// returns ~0.018
``````