Falling Factorial

Compute the falling factorial.

Usage

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

fallingFactorial( x, n )

Evaluates the falling factorial of x and n.

var v = fallingFactorial( 0.9, 5 );
// returns ~0.644

v = fallingFactorial( -9.0, 3 );
// returns -990.0

v = fallingFactorial( 0.0, 2 );
// returns 0.0

v = fallingFactorial( NaN, 3 );
// returns NaN

v = fallingFactorial( 5.0, NaN );
// returns NaN

v = fallingFactorial( NaN, NaN );
// returns NaN

The function returns NaN if not provided a nonnegative integer for n.

var v = fallingFactorial( 2.0, 1.5 );
// returns NaN

v = fallingFactorial( 3.0, -2 );
// returns NaN

Examples

var randu = require( '@stdlib/random/array/uniform' );
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var fallingFactorial = require( '@stdlib/math/base/special/falling-factorial' );

var x = randu( 100, -20.0, 20.0 );
var n = discreteUniform( 100, 0, 20 );

var i;
for ( i = 0; i < 100; i++ ) {
    console.log( 'fallingFactorial(%d,%d) = %d', x[ i ], n[ i ], fallingFactorial( x[ i ], n[ i ] ) );
}

C APIs

Usage

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

stdlib_base_falling_factorial( x, n )

Evaluates the falling factorial of x and n.

double out = stdlib_base_falling_factorial( 0.9, 5 );
// returns ~0.644

out = stdlib_base_falling_factorial( -9.0, 3 );
// returns -990.0

The function accepts the following arguments:

  • x: [in] double first function parameter.
  • n: [in] int32_t second function parameter.
double stdlib_base_falling_factorial( const double x, const int32_t n );

Examples

#include "stdlib/math/base/special/falling_factorial.h"
#include <stdio.h>
#include <stdint.h>

int main( void ) {
    const double x[] = { -10.0, -7.78, -5.56, -3.33, -1.11, 1.11, 3.33, 5.56, 7.78, 10.0 };
    const int32_t n[] = { 5, 4, 3, 2, 1, 0, -1, -2, -3, -4 };

    double v;
    int i;
    for ( i = 0; i < 10; i++ ) {
        v = stdlib_base_falling_factorial( x[ i ], n[ i ] );
        printf( "x: %lf, n: %d, falling_factorial(x,n): %lf\n", x[ i ], n[ i ], v );
    }
}
Did you find this page helpful?