1 c5b9ff9f 2003-12-04 devnull #include <u.h>
2 c5b9ff9f 2003-12-04 devnull #include <libc.h>
4 c5b9ff9f 2003-12-04 devnull #include "hoc.h"
6 c5b9ff9f 2003-12-04 devnull double errcheck(double, char*);
9 c5b9ff9f 2003-12-04 devnull Log(double x)
11 c5b9ff9f 2003-12-04 devnull return errcheck(log(x), "log");
14 c5b9ff9f 2003-12-04 devnull Log10(double x)
16 c5b9ff9f 2003-12-04 devnull return errcheck(log10(x), "log10");
20 c5b9ff9f 2003-12-04 devnull Sqrt(double x)
22 c5b9ff9f 2003-12-04 devnull return errcheck(sqrt(x), "sqrt");
26 c5b9ff9f 2003-12-04 devnull Exp(double x)
28 c5b9ff9f 2003-12-04 devnull return errcheck(exp(x), "exp");
32 c5b9ff9f 2003-12-04 devnull Asin(double x)
34 c5b9ff9f 2003-12-04 devnull return errcheck(asin(x), "asin");
38 c5b9ff9f 2003-12-04 devnull Acos(double x)
40 c5b9ff9f 2003-12-04 devnull return errcheck(acos(x), "acos");
44 c5b9ff9f 2003-12-04 devnull Sinh(double x)
46 c5b9ff9f 2003-12-04 devnull return errcheck(sinh(x), "sinh");
49 c5b9ff9f 2003-12-04 devnull Cosh(double x)
51 c5b9ff9f 2003-12-04 devnull return errcheck(cosh(x), "cosh");
54 c5b9ff9f 2003-12-04 devnull Pow(double x, double y)
56 c5b9ff9f 2003-12-04 devnull return errcheck(pow(x,y), "exponentiation");
60 c5b9ff9f 2003-12-04 devnull integer(double x)
62 c5b9ff9f 2003-12-04 devnull if(x<-2147483648.0 || x>2147483647.0)
63 c5b9ff9f 2003-12-04 devnull execerror("argument out of domain", 0);
64 c5b9ff9f 2003-12-04 devnull return (double)(long)x;
68 c5b9ff9f 2003-12-04 devnull errcheck(double d, char* s) /* check result of library call */
70 c5b9ff9f 2003-12-04 devnull if(isNaN(d))
71 c5b9ff9f 2003-12-04 devnull execerror(s, "argument out of domain");
72 c5b9ff9f 2003-12-04 devnull if(isInf(d, 0))
73 c5b9ff9f 2003-12-04 devnull execerror(s, "result out of range");
74 c5b9ff9f 2003-12-04 devnull return d;