1 #include "f2c.h"
2 
3 #ifdef KR_headers
pow_ii(ap,bp)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 	unsigned long u;
11 
12 	x = *ap;
13 	n = *bp;
14 
15 	if (n <= 0) {
16 		if (n == 0 || x == 1)
17 			return 1;
18 		if (x != -1)
19 			return x == 0 ? 1/x : 0;
20 		n = -n;
21 		}
22 	u = n;
23 	for(pow = 1; ; )
24 		{
25 		if(u & 01)
26 			pow *= x;
27 		if(u >>= 1)
28 			x *= x;
29 		else
30 			break;
31 		}
32 	return(pow);
33 	}
34