diff options
Diffstat (limited to 'lib/libF77/pow_hh.c')
-rw-r--r-- | lib/libF77/pow_hh.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libF77/pow_hh.c b/lib/libF77/pow_hh.c index e1a503c..24a0197 100644 --- a/lib/libF77/pow_hh.c +++ b/lib/libF77/pow_hh.c @@ -7,6 +7,7 @@ shortint pow_hh(shortint *ap, shortint *bp) #endif { shortint pow, x, n; + unsigned u; x = *ap; n = *bp; @@ -18,11 +19,12 @@ shortint pow_hh(shortint *ap, shortint *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; |