33 lines
409 B
C
33 lines
409 B
C
|
/* $Header $ */
|
||
|
|
||
|
/*
|
||
|
computes a^b.
|
||
|
uses log and exp
|
||
|
*/
|
||
|
|
||
|
double _log(), _exp();
|
||
|
|
||
|
double
|
||
|
_power(base,pownr)
|
||
|
double pownr, base;
|
||
|
{
|
||
|
double temp;
|
||
|
long l;
|
||
|
|
||
|
if(pownr <= 0.0) {
|
||
|
if(pownr == 0.0) {
|
||
|
if(base <= 0.0)
|
||
|
error(3);
|
||
|
return(0.0);
|
||
|
}
|
||
|
l = base;
|
||
|
if(l != base)
|
||
|
error(3);
|
||
|
temp = _exp(base * _log(-pownr));
|
||
|
if(l & 1)
|
||
|
temp = -temp;
|
||
|
return(temp);
|
||
|
}
|
||
|
return(_exp(base * _log(pownr)));
|
||
|
}
|