factorialln
Natural logarithm of the factorial function.
The natural logarithm of the factorial function may be expressed
The factorial function may be defined as the product
or according to the recurrence relation
Following the convention for an empty product, in all definitions,
The Gamma function extends the factorial function for non-integer values.
The factorial of a negative integer is not defined.
Evaluating the natural logarithm of factorial function is useful as the factorial function can overflow for large n
. Thus, factorialln( n )
is generally preferred to ln( n! )
.
Usage
var factorialln = require( '@stdlib/math/base/special/factorialln' );
factorialln( x )
Evaluates the natural logarithm of the factorial function. For input values other than negative integers, the function returns ln( x! ) = ln( Γ(x+1) )
, where Γ
is the Gamma function. For negative integers, the function returns NaN
.
var v = factorialln( 3.0 );
// returns ~1.792
v = factorialln( 2.4 );
// returns ~1.092
v = factorialln( -1.0 );
// returns NaN
v = factorialln( -1.5 );
// returns ~1.266
If provided NaN
, the function returns NaN
.
var v = factorialln( NaN );
// returns NaN
Examples
var incrspace = require( '@stdlib/array/base/incrspace' );
var factorialln = require( '@stdlib/math/base/special/factorialln' );
var x = incrspace( -10.0, 50.0, 0.5 );
var i;
for ( i = 0; i < x.length; i++ ) {
console.log( 'x: %d, f(x): %d', x[ i ], factorialln( x[ i ] ) );
}
C APIs
Usage
#include "stdlib/math/base/special/factorialln.h"
stdlib_base_factorialln( x )
Evaluates the natural logarithm of the factorial function. For input values other than negative integers, the function returns ln( x! ) = ln( Γ(x+1) )
, where Γ
is the Gamma function. For negative integers, the function returns NaN
.
double out = stdlib_base_factorialln( 3.0 );
// returns ~1.792
out = stdlib_base_factorialln( -1.5 );
// returns ~1.266
The function accepts the following arguments:
- x:
[in] double
input value.
double stdlib_base_factorialln( const double n );
Examples
#include "stdlib/math/base/special/factorialln.h"
#include <stdio.h>
int main( void ) {
const double x[] = { 2.0, 3.0, 5.0, 8.0 };
double y;
int i;
for ( i = 0; i < 4; i++ ) {
y = stdlib_base_factorialln( x[ i ] );
printf( "factorialln(%lf) = %lf\n", x[ i ], y );
}
}