diff options
Diffstat (limited to 'lib/libF77/pow_ii.c')
-rw-r--r-- | lib/libF77/pow_ii.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libF77/pow_ii.c b/lib/libF77/pow_ii.c index e794877..84d1c7e 100644 --- a/lib/libF77/pow_ii.c +++ b/lib/libF77/pow_ii.c @@ -7,6 +7,7 @@ integer pow_ii(integer *ap, integer *bp) #endif { integer pow, x, n; + unsigned long u; x = *ap; n = *bp; @@ -18,11 +19,12 @@ integer pow_ii(integer *ap, integer *bp) return x == 0 ? 1/x : 0; n = -n; } + u = n; for(pow = 1; ; ) { - if(n & 01) + if(u & 01) pow *= x; - if(n >>= 1) + if(u >>= 1) x *= x; else break; |