diff options
Diffstat (limited to 'libf2c/libF77/pow_ri.c')
-rw-r--r-- | libf2c/libF77/pow_ri.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libf2c/libF77/pow_ri.c b/libf2c/libF77/pow_ri.c new file mode 100644 index 0000000..792db0c --- /dev/null +++ b/libf2c/libF77/pow_ri.c @@ -0,0 +1,32 @@ +#include "f2c.h" + +double +pow_ri (real * ap, integer * bp) +{ + 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); +} |