home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / libF77 / pow_ri.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  303 b   |  35 lines

  1. float pow_ri(ap, bp)
  2. float *ap;
  3. long int *bp;
  4. {
  5. double pow, x;
  6. long int n;
  7.  
  8. pow = 1;
  9. x = *ap;
  10. n = *bp;
  11.  
  12. if(n != 0)
  13.     {
  14.     if(n < 0)
  15.         {
  16.         if(x == 0)
  17.             {
  18.             return(pow);
  19.             }
  20.         n = -n;
  21.         x = 1/x;
  22.         }
  23.     for( ; ; )
  24.         {
  25.         if(n & 01)
  26.             pow *= x;
  27.         if(n >>= 1)
  28.             x *= x;
  29.         else
  30.             break;
  31.         }
  32.     }
  33. return(pow);
  34. }
  35.