Update to 2.0.0 tree from current Fremantle build
[opencv] / 3rdparty / lapack / pow_ii.c
1 #include "clapack.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 }