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