| #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); | |
| } |