BSD 4_3 release
[unix-history] / usr / src / usr.lib / libF77 / pow_ri.c
/*
* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)pow_ri.c 5.2 7/9/85
*/
float flt_retval;
float pow_ri(ap, bp)
float *ap;
long int *bp;
{
double pow, x;
long int n;
pow = 1;
x = *ap;
n = *bp;
if(n != 0)
{
if(n < 0)
{
if(x == 0)
{
flt_retval = pow;
return(flt_retval);
}
n = -n;
x = 1/x;
}
for( ; ; )
{
if(n & 01)
pow *= x;
if(n >>= 1)
x *= x;
else
break;
}
}
flt_retval = pow;
return(flt_retval);
}