factorial

Factorial function.

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.

Usage

var factorial = require( '@stdlib/math/base/special/factorial' );

factorial( x )

Evaluates the factorial function.

var v = factorial( 3.0 );
// returns 6.0

v = factorial( -1.5 );
// returns ~-3.545

v = factorial( -0.5 );
// returns ~1.772

v = factorial( 0.5 );
// returns ~0.886

v = factorial( -10.0 );
// returns NaN

v = factorial( 171.0 );
// returns Infinity

v = factorial( NaN );
// returns NaN

Examples

var incrspace = require( '@stdlib/array/base/incrspace' );
var factorial = require( '@stdlib/math/base/special/factorial' );

var x = incrspace( -10.0, 100.0, 1.0 );

var i;
for ( i = 0; i < x.length; i++ ) {
    console.log( 'x: %d, f(x): %d', x[ i ], factorial( x[ i ] ) );
}

C APIs

Usage

#include "stdlib/math/base/special/factorial.h"

stdlib_base_factorial( x )

Evaluates the factorial function.

double out = stdlib_base_factorial( 3.0 );
// returns 6.0

out = stdlib_base_factorial( -1.5 );
// returns ~-3.545

The function accepts the following arguments:

  • x: [in] double input value.
double stdlib_base_factorial( const double n );

Examples

#include "stdlib/math/base/special/factorial.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_factorial( x[ i ] );
        printf( "factorial(%lf) = %lf\n", x[ i ], y );
    }
}
Did you find this page helpful?