Steffen Müller >
Math-GammaFunction >
Math::GammaFunction

Module Version: 0.02
Math::GammaFunction - The Gamma and its related functions

use Math::GammaFunction qw/:all/; my $gamma = gamma(5); # 24 my $fac = faculty(4); # same my $psi = psi(4); # 1.256... my $psi_deriv = psi_derivative($x, $order); # order==0 => psi # ...

This module computes the Gamma function, its logarithmic derivative (the Psi or Digamma function) and the derivatives of the Psi function.

It is a thin wrapper around a couple of functions in the math library of the R statistics package.

None by default. You may choose to export the following functions separately or all at once using the `:all`

tag:

gamma log_gamma faculty psi psi_derivative

Takes a real, positive number as argument. Computes the Gamma function. (`n! == Gamma(n+1)`

)

Takes a real, positive number as argument. Computes the logarithm of the Gamma function.

Takes a real as argument. Computes the Psi (or Digamma) function. (`d/dx Gamma(x) == Gamma(x)*Psi(x)`

or `d/dx ln(Gamma(x)) == Psi(x)`

)

Takes two arguments: The argument x of the function (real) and the order of the derivative (integer 0 or positive). Computes the n-th derivative of Psi at position x.

The maximum derivative is, as far as I can gather from the R sources, 100.

This is basically the Polygamma function.

Takes a positive integer as argument. Computes its faculty. (Thin wrapper around `gamma`

)

The actual computation is carried out in C by the excellent R library.

Thus, refer to the R manual for details. What I call `gamma`

here is the `gammafn`

in R's C sources, `log_gamma`

is is `gamma`

in the C sources. http://www.r-project.org/

Here's a list of Wikipedia pages about related functions:

http://en.wikipedia.org/wiki/Gamma_function, http://en.wikipedia.org/wiki/Polygamma_function, http://en.wikipedia.org/wiki/Digamma_function

Steffen Mueller, <smueller@cpan.org>

Copyright (C) 2007 by Steffen Mueller

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.6 or, at your option, any later version of Perl 5 you may have available.

syntax highlighting: