461 |
CHECK_NUMBER_OR_FLOAT (arg1); |
CHECK_NUMBER_OR_FLOAT (arg1); |
462 |
CHECK_NUMBER_OR_FLOAT (arg2); |
CHECK_NUMBER_OR_FLOAT (arg2); |
463 |
if (INTEGERP (arg1) /* common lisp spec */ |
if (INTEGERP (arg1) /* common lisp spec */ |
464 |
&& INTEGERP (arg2)) /* don't promote, if both are ints */ |
&& INTEGERP (arg2) /* don't promote, if both are ints, and */ |
465 |
|
&& 0 <= XINT (arg2)) /* we are sure the result is not fractional */ |
466 |
{ /* this can be improved by pre-calculating */ |
{ /* this can be improved by pre-calculating */ |
467 |
EMACS_INT acc, x, y; /* some binary powers of x then accumulating */ |
EMACS_INT acc, x, y; /* some binary powers of x then accumulating */ |
468 |
Lisp_Object val; |
Lisp_Object val; |