# Geometric

Geometric distribution constructor.

## Usage

``````var Geometric = require( '@stdlib/math/base/dists/geometric/ctor' );
``````

#### Geometric( [p] )

Returns a geometric distribution object.

``````var geometric = new Geometric();

var mean = geometric.mean;
// returns 0.0
``````

By default, `p = 0.5`. To create a distribution having a different success probability `p`, provide a parameter value.

``````var geometric = new Geometric( 0.2 );

var mean = geometric.mean;
// returns 4.0
``````

## geometric

A geometric distribution object has the following properties and methods...

### Writable Properties

#### geometric.p

Success probability of the distribution. `p` must be a probability.

``````var geometric = new Geometric( 0.2 );

var p = geometric.p;
// returns 0.2

geometric.p = 0.3;

p = geometric.p;
// returns 0.3
``````

### Computed Properties

#### Geometric.prototype.entropy

Returns the differential entropy.

``````var geometric = new Geometric( 0.4 );

var entropy = geometric.entropy;
// returns ~1.683
``````

#### Geometric.prototype.kurtosis

Returns the excess kurtosis.

``````var geometric = new Geometric( 0.4 );

var kurtosis = geometric.kurtosis;
// returns ~6.267
``````

#### Geometric.prototype.mean

Returns the median.

``````var geometric = new Geometric( 0.4 );

var mu = geometric.mean;
// returns ~1.5
``````

#### Geometric.prototype.median

Returns the median.

``````var geometric = new Geometric( 0.4 );

var median = geometric.median;
// returns 1.0
``````

#### Geometric.prototype.mode

Returns the mode.

``````var geometric = new Geometric( 0.4 );

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

#### Geometric.prototype.skewness

Returns the skewness.

``````var geometric = new Geometric( 0.4 );

var skewness = geometric.skewness;
// returns ~2.066
``````

#### Geometric.prototype.stdev

Returns the standard deviation.

``````var geometric = new Geometric( 0.4 );

var s = geometric.stdev;
// returns ~1.936
``````

#### Geometric.prototype.variance

Returns the variance.

``````var geometric = new Geometric( 0.4 );

var s2 = geometric.variance;
// returns ~3.75
``````

### Methods

#### Geometric.prototype.cdf( x )

Evaluates the cumulative distribution function (CDF).

``````var geometric = new Geometric( 0.2 );

var y = geometric.cdf( 0.5 );
// returns ~0.2
``````

#### Geometric.prototype.logcdf( x )

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

``````var geometric = new Geometric( 0.2 );

var y = geometric.logcdf( 0.5 );
// returns ~-1.609
``````

#### Geometric.prototype.logpmf( x )

Evaluates the natural logarithm of the probability mass function (logPMF).

``````var geometric = new Geometric( 0.2 );

var y = geometric.logpmf( 3.0 );
// returns ~-2.279

y = geometric.logpmf( 2.3 );
// returns -Infinity
``````

#### Geometric.prototype.mgf( t )

Evaluates the moment-generating function (MGF).

``````var geometric = new Geometric( 0.2 );

var y = geometric.mgf( 0.1 );
// returns ~1.908
``````

#### Geometric.prototype.pmf( x )

Evaluates the probability mass function (PMF).

``````var geometric = new Geometric( 0.2 );

var y = geometric.pmf( 3.0 );
// returns ~0.102

y = geometric.pmf( 2.3 );
// returns 0.0
``````

#### Geometric.prototype.quantile( p )

Evaluates the quantile function at probability `p`.

``````var geometric = new Geometric( 0.2 );

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

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

## Examples

``````var Geometric = require( '@stdlib/math/base/dists/geometric/ctor' );

var geometric = new Geometric( 0.5 );

var mu = geometric.mean;
// returns 1.0

var mode = geometric.mode;
// returns 0.0

var s2 = geometric.variance;
// returns 2.0

var y = geometric.cdf( 2.0 );
// returns 0.875
``````