factorialln

Natural logarithm of the factorial function.

The natural logarithm of the factorial function may be expressed

f left-parenthesis n right-parenthesis equals ln left-parenthesis n factorial right-parenthesis

The factorial function may be defined as the product

n factorial equals product Underscript k equals 1 Overscript n Endscripts k

or according to the recurrence relation

n factorial equals StartLayout Enlarged left-brace 1st Row 1st Column 1 2nd Column if n equals 0 comma 2nd Row 1st Column left-parenthesis n minus 1 right-parenthesis factorial times n 2nd Column if n greater-than 1 EndLayout

Following the convention for an empty product, in all definitions,

0 factorial equals 1

The Gamma function extends the factorial function for non-integer values.

n factorial equals normal upper Gamma left-parenthesis n plus 1 right-parenthesis

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/math/utils/incrspace' );
var factorialln = require( '@stdlib/math/base/special/factorialln' );

var x;
var v;
var i;

x = incrspace( -10.0, 50.0, 0.5 );
for ( i = 0; i < x.length; i++ ) {
    v = factorialln( x[ i ] );
    console.log( 'x: %d, f(x): %d', x[ i ], v );
}