#include "f2c.h" | |
#ifdef KR_headers | |
double pow_di(ap, bp) doublereal *ap; integer *bp; | |
#else | |
double pow_di(doublereal *ap, integer *bp) | |
#endif | |
{ | |
double pow, x; | |
integer n; | |
unsigned long u; | |
pow = 1; | |
x = *ap; | |
n = *bp; | |
if(n != 0) | |
{ | |
if(n < 0) | |
{ | |
n = -n; | |
x = 1/x; | |
} | |
for(u = n; ; ) | |
{ | |
if(u & 01) | |
pow *= x; | |
if(u >>= 1) | |
x *= x; | |
else | |
break; | |
} | |
} | |
return(pow); | |
} |