Method: Fixnum#fact
- Defined in:
- ext/rmtools.cpp
#fact ⇒ Object
x! ( specially for /c/ ^__^ ) 5.fact # => 120 x3 boost relative to 1.8.7
415 416 417 418 419 420 421 422 423 |
# File 'ext/rmtools.cpp', line 415
static VALUE rb_math_factorial(VALUE x)
{
long a = FIX2LONG(x);
for (int i = 2; i < a; i++)
x = TYPE(x) == T_BIGNUM ?
rb_big_mul(x, rb_int2big(i)) :
rb_big_mul(rb_int2big(FIX2LONG(x)), rb_int2big(i));
return x;
}
|