factorial2

Double factorial function.

The double factorial of a number n, denoted n!!, is defined as the product of all the positive integers up to n that have the same parity (odd or even) as n.

Thus, for example, 5!! is 5 * 3 * 1 = 15 and 8!! is 8 * 6 * 4 * 2 = 384.

Usage

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

factorial2( n )

Evaluates the double factorial of n.

var v = factorial2( 2 );
// returns 2

v = factorial2( 3 );
// returns 3

v = factorial2( 0 );
// returns 1

v = factorial2( 4 );
// returns 8

v = factorial2( 5 );
// returns 15

v = factorial2( NaN );
// returns NaN

v = factorial2( 301 );
// returns Infinity

Examples

var oneTo = require( '@stdlib/array/base/one-to' );
var factorial2 = require( '@stdlib/math/base/special/factorial2' );

var values = oneTo( 300 );

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

C APIs

Usage

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

stdlib_base_factorial2( n )

Evaluates the double factorial of n.

double out = stdlib_base_factorial2( 3 );
// returns 3

The function accepts the following arguments:

  • x: [in] int32_t input value.
double stdlib_base_factorial2( const int32_t x );

Examples

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

int main( void ) {
    const int32_t x[] = { 1, 10, 1, 301, 302 };

    double b;
    int i;
    for ( i = 0; i < 5; i++ ){
        b = stdlib_base_factorial2( x[ i ] );
        printf ( "factorial2(%d) = %lf\n", x[ i ], b );
    }
}
Did you find this page helpful?