# Gamma Function
> [Gamma][gamma-function] function.
The [gamma function][gamma-function] extends the [factorial function][@stdlib/math/base/special/factorial] to [real][real] and [complex][complex] numbers. If `n` is a positive `integer`,
Generalized to all complex numbers `z`, except for nonpositive integers, the [gamma function][gamma-function] can be expressed as an infinite product
where `γ ≈ 0.577216` is the [Euler–Mascheroni constant][@stdlib/constants/float64/eulergamma].
## Usage
```javascript
var gamma = require( '@stdlib/math/base/special/gamma' );
```
#### gamma( x )
Evaluates the [gamma function][gamma-function].
```javascript
var v = gamma( 4.0 );
// returns 6.0
v = gamma( -1.5 );
// returns ~2.363
v = gamma( -0.5 );
// returns ~-3.545
v = gamma( 0.5 );
// returns ~1.772
v = gamma( 0.0 );
// returns Infinity
v = gamma( -0.0 );
// returns -Infinity
v = gamma( NaN );
// returns NaN
```
## Examples
```javascript
var linspace = require( '@stdlib/array/linspace' );
var gamma = require( '@stdlib/math/base/special/gamma' );
var x = linspace( -10.0, 10.0, 100 );
var v;
var i;
for ( i = 0; i < x.length; i++ ) {
v = gamma( x[ i ] );
console.log( 'x: %d, f(x): %d', x[ i ], v );
}
```
[gamma-function]: https://en.wikipedia.org/wiki/Gamma_function
[@stdlib/math/base/special/factorial]: https://www.npmjs.com/package/@stdlib/math/tree/main/base/special/factorial
[real]: https://en.wikipedia.org/wiki/Real_number
[complex]: https://en.wikipedia.org/wiki/Complex_number
[@stdlib/constants/float64/eulergamma]: https://www.npmjs.com/package/@stdlib/constants-float64-eulergamma