|
|
1.1 root 1: #include "f2c.h"
2:
3: #ifdef KR_headers
4: integer pow_ii(ap, bp) integer *ap, *bp;
5: #else
6: integer pow_ii(integer *ap, integer *bp)
7: #endif
8: {
9: integer pow, x, n;
10:
11: x = *ap;
12: n = *bp;
13:
14: if (n <= 0) {
15: if (n == 0 || x == 1)
16: return 1;
17: if (x != -1)
18: return x == 0 ? 1/x : 0;
19: n = -n;
20: }
21: for(pow = 1; ; )
22: {
23: if(n & 01)
24: pow *= x;
25: if(n >>= 1)
26: x *= x;
27: else
28: break;
29: }
30: return(pow);
31: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.