No Prejudice Makers

# npm

## @stdlib/math-base-special-gammaincinv

0.0.5 • Public • Published

# gammincinv

Inverse of incomplete gamma function.

Computes the inverse of the lower incomplete gamma function

Specifically, for given `p` and `a` it finds the `x` such that `p = P(x, a)`.

The function can also be used to invert the upper incomplete gamma function, which is defined as follows:

Again, for given `p` and `a` the function returns the `x` which satisfies `p = Q(x, a)`.

## Installation

`npm install @stdlib/math-base-special-gammaincinv`

## Usage

`var gammaincinv = require( '@stdlib/math-base-special-gammaincinv' );`

#### gammaincinv( p, s[, upper ] )

Inverts the regularized incomplete gamma function. Contrary to the more commonly used definition, in this implementation the first argument is the probability `p` and the second argument is the scale factor `a`. By default, the function inverts the lower regularized incomplete gamma function, `P(x,a)`. To invert the upper function instead, i.e. `Q(x,a)`, set the `upper` argument to `true`.

```var y = gammaincinv( 0.5, 2.0 );
// returns ~1.678

y = gammaincinv( 0.1, 10.0 );
// returns ~6.221

y = gammaincinv( 0.75, 3.0 );
// returns ~3.92

y = gammaincinv( 0.75, 3.0, true );
// returns ~1.727```

If provided `NaN` as any argument, the function returns `NaN`.

```var y = gammaincinv( NaN, 1.0 );
// returns NaN

y = gammaincinv( 0.5, NaN );
// returns NaN```

If provided a value outside `[0,1]` for `p`, the function returns `NaN`.

```var y = gammaincinv( 1.2, 1.0 );
// returns NaN

y = gammaincinv( -0.5, 1.0 );
// returns NaN```

## Examples

```var randu = require( '@stdlib/random-base-randu' );
var gammaincinv = require( '@stdlib/math-base-special-gammaincinv' );

var a;
var i;
var p;

for ( i = 0; i < 100; i++ ) {
p = randu();
a = randu() * 50.0;
console.log( 'p: %d, \t a: %d, \t P^(-1)(p, a): %d', p.toFixed( 4 ), a.toFixed( 4 ), gammaincinv( p, a ).toFixed( 4 ) );
}```

## Notice

This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.

For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.

### Install

`npm i @stdlib/math-base-special-gammaincinv`

stdlib.io

474

0.0.5

Apache-2.0

110 kB

33