#include "f2c.h" shortint pow_hh (shortint * ap, shortint * bp) { shortint pow, x, n; unsigned 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); }