Class: Fixnum
Instance Method Summary collapse
Instance Method Details
#double_factorial ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'ext/factorials/factorials.c', line 22
VALUE factorials_num_double_factorial(VALUE num)
{
long value = NUM2INT(num), result = 1;
if(value % 2 == 0) {
result = pow(2, value / 2) * factorial(value / 2);
} else {
result = factorial(value) / (pow(2, (value - 1) / 2) * factorial((value - 1) / 2));
}
return INT2NUM(result);
}
|
#factorial ⇒ Object
15 16 17 18 19 20 |
# File 'ext/factorials/factorials.c', line 15
VALUE factorials_num_factorial(VALUE num)
{
long value = NUM2INT(num);
return INT2NUM(factorial(value));
}
|
#superfactorial ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'ext/factorials/factorials.c', line 35
VALUE factorials_num_superfactorial(VALUE num)
{
long value = NUM2INT(num), result = 1, i;
for(i = 1; i <= value; i++) {
result = result * factorial(i);
}
return INT2NUM(result);
}
|