Bug #2381 » math.c.diff
| math.c (working copy) | ||
|---|---|---|
| 
         };
 
   | 
||
| 
         double d0, d;
 
   | 
||
| 
         double intpart, fracpart;
 
   | 
||
| 
         int n;
 
   | 
||
| 
         Need_Float(x);
 
   | 
||
| 
         d0 = RFLOAT_VALUE(x);
 
   | 
||
| 
         fracpart = modf(d0, &intpart);
 
   | 
||
| 
         if (fracpart == 0.0 &&
 
   | 
||
| 
            0 < intpart &&
 
   | 
||
| 
            (n = (int)intpart - 1) < numberof(fact_table)) {
 
   | 
||
| 
             return DBL2NUM(fact_table[n]);
 
   | 
||
| 
             intpart - 1 < (double)numberof(fact_table)) {
 
   | 
||
| 
             return DBL2NUM(fact_table[(int)intpart - 1]);
 
   | 
||
| 
         }
 
   | 
||
| 
         errno = 0;
 
   | 
||
| 
         d = tgamma(d0);
 
   | 
||