# Triangular

Triangular distribution constructor.

## Usage

``````var Triangular = require( '@stdlib/math/base/dists/triangular/ctor' );
``````

#### Triangular( [a, b, c] )

Returns a triangular distribution object.

``````var triangular = new Triangular();

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

By default, `a = 0.0`, `b = 1.0`, and `c = 0.5`. To create a distribution having a different `a` (minimum support), `b` (maximum support), and `c` (mode), provide parameter values.

``````var triangular = new Triangular( 2.0, 4.0, 3.5 );

var mu = triangular.mean;
// returns ~3.167
``````

## triangular

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

### Writable Properties

#### triangular.a

Minimum support of the distribution. `a` must be a number smaller than or equal to `b` and `c`.

``````var triangular = new Triangular();

var a = triangular.a;
// returns 0.0

triangular.a = 0.5;

a = triangular.a;
// returns 0.5
``````

#### triangular.b

Maximum support of the distribution. `b` must be a number larger than or equal to `a` and `c`.

``````var triangular = new Triangular( 2.0, 4.0, 2.5 );

var b = triangular.b;
// returns 4.0

triangular.b = 3.0;

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

#### triangular.c

Mode of the distribution. `c` must be a number larger than or equal to `a` and smaller than or equal to `b`.

``````var triangular = new Triangular( 2.0, 5.0, 4.0 );

var c = triangular.c;
// returns 4.0

triangular.c = 3.0;

c = triangular.c;
// returns 3.0
``````

### Computed Properties

#### Triangular.prototype.entropy

Returns the differential entropy.

``````var triangular = new Triangular( 4.0, 12.0, 10.0 );

var entropy = triangular.entropy;
// returns ~1.886
``````

#### Triangular.prototype.kurtosis

Returns the excess kurtosis.

``````var triangular = new Triangular( 4.0, 12.0, 10.0 );

var kurtosis = triangular.kurtosis;
// returns -0.6
``````

#### Triangular.prototype.mean

Returns the expected value.

``````var triangular = new Triangular( 4.0, 12.0, 10.0 );

var mu = triangular.mean;
// returns ~8.667
``````

#### Triangular.prototype.median

Returns the median.

``````var triangular = new Triangular( 4.0, 12.0, 10.0 );

var median = triangular.median;
// returns ~8.899
``````

#### Triangular.prototype.mode

Returns the mode.

``````var triangular = new Triangular( 4.0, 12.0, 10.0 );

var mode = triangular.mode;
// returns 10.0
``````

#### Triangular.prototype.skewness

Returns the skewness.

``````var triangular = new Triangular( 4.0, 12.0, 10.0 );

var skewness = triangular.skewness;
// returns ~-0.422
``````

#### Triangular.prototype.stdev

Returns the standard deviation.

``````var triangular = new Triangular( 4.0, 12.0, 10.0 );

var s = triangular.stdev;
// returns ~1.7
``````

#### Triangular.prototype.variance

Returns the variance.

``````var triangular = new Triangular( 4.0, 12.0, 10.0 );

var s2 = triangular.variance;
// returns ~2.889
``````

### Methods

#### Triangular.prototype.cdf( x )

Evaluates the cumulative distribution function (CDF).

``````var triangular = new Triangular( 2.0, 4.0, 3.0 );

var y = triangular.cdf( 2.5 );
// returns 0.125
``````

#### Triangular.prototype.logcdf( x )

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

``````var triangular = new Triangular( 2.0, 4.0, 3.0 );

var y = triangular.logcdf( 2.5 );
// returns ~-2.079
``````

#### Triangular.prototype.logpdf( x )

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

``````var triangular = new Triangular( 2.0, 4.0, 3.0 );

var y = triangular.logpdf( 2.5 );
// returns ~-0.693
``````

#### Triangular.prototype.pdf( x )

Evaluates the probability density function (PDF).

``````var triangular = new Triangular( 2.0, 4.0, 3.0 );

var y = triangular.pdf( 2.5 );
// returns 0.5
``````

#### Triangular.prototype.quantile( p )

Evaluates the quantile function at probability `p`.

``````var triangular = new Triangular( 2.0, 4.0, 3.0 );

var y = triangular.quantile( 0.5 );
// returns 3.0

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

## Examples

``````var Triangular = require( '@stdlib/math/base/dists/triangular/ctor' );

var triangular = new Triangular( 2.0, 4.0, 3.0 );

var mu = triangular.mean;
// returns 3.0

var median = triangular.median;
// returns 3.0

var s2 = triangular.variance;
// returns ~0.167

var y = triangular.cdf( 2.5 );
// returns 0.125
``````