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 );
}
}