# gamma(x): Gamma¶

Gamma function.

## Declaration¶

### Syntax¶

retval = gamma(x)
elemental real function gamma(x)


### Arguments¶

x the input value must be of type real. It should not be zero or a negative integer.

### Return values¶

The return value is of same type and kind as of x.

## Description¶

gamma(x) computes $$\gamma(x)$$. For positive, integer value of x, the Gamma function simplifies to factorial function:

$$\gamma(x) = (x-1)!$$

In general, if $$x > 0$$:

$$\gamma(x) = \int_{0}^{\infty} e^{-t} dt$$

and if $$-n-1 < x < -n$$ where n is an integer >= 0:

$$\gamma(x) = \int_{0}^{\infty}(e ^{-t} - \sum\limits_{k=0}^n \frac{(-t)^k}{k!} dt)$$

## Types¶

Supported argument types is real.

interface gamma
module procedure sgamma, dgamma
end interface

contains

elemental real(sp) function sgamma(x)
real(sp), intent(in) :: x
end function

elemental real(dp) function dgamma(x)
real(dp), intent(in) :: x
end function


## Examples¶

program intrinsics_gamma
print *, gamma(0.5)
print *, gamma(1.0)
end program


Result:

1.77245
1.000