#include "f2c.h"
#ifdef __cplusplus
extern "C" {
#endif

#ifdef KR_headers
double pow_ri(ap, bp) real *ap; integer *bp;
#else
double pow_ri(real *ap, integer *bp)
#endif
{
double pow, x;
integer n;
unsigned long u;

pow = 1;
x = *ap;
n = *bp;

if(n != 0)
  {
  if(n < 0)
         {
         n = -n;
         x = 1/x;
         }
  for(u = n; ; )
         {
         if(u & 01)
                pow *= x;
         if(u >>= 1)
                x *= x;
         else
                break;
         }
  }
return(pow);
}
#ifdef __cplusplus
}
#endif
