date and time created 83/08/05 13:34:56 by sam
[unix-history] / usr / src / old / libm / libm / pow.c
CommitLineData
81bcf8af 1/* @(#)pow.c 4.2 %G% */
a83d2d10
SL
2
3/*
4 computes a^b.
5 uses log and exp
6*/
7
8#include <errno.h>
9int errno;
10double log(), exp();
11
12double
13pow(arg1,arg2)
14double arg1, arg2;
15{
16 double temp;
17 long l;
18
81bcf8af 19#ifdef vax
a83d2d10 20 asm(" bispsw $0xe0");
81bcf8af 21#endif
a83d2d10
SL
22 if(arg1 <= 0.) {
23 if(arg1 == 0.) {
24 if(arg2 <= 0.)
25 goto domain;
26 return(0.);
27 }
28 l = arg2;
29 if(l != arg2)
30 goto domain;
31 temp = exp(arg2 * log(-arg1));
32 if(l & 1)
33 temp = -temp;
34 return(temp);
35 }
36 return(exp(arg2 * log(arg1)));
37
38domain:
39 errno = EDOM;
40 return(0.);
41}