OSDN Git Service

* libF77/*: Delete KR_headers cruft.
[pf3gnuchains/gcc-fork.git] / libf2c / libF77 / pow_ii.c
1 #include "f2c.h"
2
3 integer pow_ii(integer *ap, integer *bp)
4 {
5         integer pow, x, n;
6         unsigned long u;
7
8         x = *ap;
9         n = *bp;
10
11         if (n <= 0) {
12                 if (n == 0 || x == 1)
13                         return 1;
14                 if (x != -1)
15                         return x == 0 ? 1/x : 0;
16                 n = -n;
17                 }
18         u = n;
19         for(pow = 1; ; )
20                 {
21                 if(u & 01)
22                         pow *= x;
23                 if(u >>= 1)
24                         x *= x;
25                 else
26                         break;
27                 }
28         return(pow);
29         }