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