Blame


1 c5b9ff9f 2003-12-04 devnull #include <u.h>
2 c5b9ff9f 2003-12-04 devnull #include <libc.h>
3 c5b9ff9f 2003-12-04 devnull
4 c5b9ff9f 2003-12-04 devnull #include "hoc.h"
5 c5b9ff9f 2003-12-04 devnull
6 c5b9ff9f 2003-12-04 devnull double errcheck(double, char*);
7 c5b9ff9f 2003-12-04 devnull
8 c5b9ff9f 2003-12-04 devnull double
9 c5b9ff9f 2003-12-04 devnull Log(double x)
10 c5b9ff9f 2003-12-04 devnull {
11 c5b9ff9f 2003-12-04 devnull return errcheck(log(x), "log");
12 c5b9ff9f 2003-12-04 devnull }
13 c5b9ff9f 2003-12-04 devnull double
14 c5b9ff9f 2003-12-04 devnull Log10(double x)
15 c5b9ff9f 2003-12-04 devnull {
16 c5b9ff9f 2003-12-04 devnull return errcheck(log10(x), "log10");
17 c5b9ff9f 2003-12-04 devnull }
18 c5b9ff9f 2003-12-04 devnull
19 c5b9ff9f 2003-12-04 devnull double
20 c5b9ff9f 2003-12-04 devnull Sqrt(double x)
21 c5b9ff9f 2003-12-04 devnull {
22 c5b9ff9f 2003-12-04 devnull return errcheck(sqrt(x), "sqrt");
23 c5b9ff9f 2003-12-04 devnull }
24 c5b9ff9f 2003-12-04 devnull
25 c5b9ff9f 2003-12-04 devnull double
26 c5b9ff9f 2003-12-04 devnull Exp(double x)
27 c5b9ff9f 2003-12-04 devnull {
28 c5b9ff9f 2003-12-04 devnull return errcheck(exp(x), "exp");
29 c5b9ff9f 2003-12-04 devnull }
30 c5b9ff9f 2003-12-04 devnull
31 c5b9ff9f 2003-12-04 devnull double
32 c5b9ff9f 2003-12-04 devnull Asin(double x)
33 c5b9ff9f 2003-12-04 devnull {
34 c5b9ff9f 2003-12-04 devnull return errcheck(asin(x), "asin");
35 c5b9ff9f 2003-12-04 devnull }
36 c5b9ff9f 2003-12-04 devnull
37 c5b9ff9f 2003-12-04 devnull double
38 c5b9ff9f 2003-12-04 devnull Acos(double x)
39 c5b9ff9f 2003-12-04 devnull {
40 c5b9ff9f 2003-12-04 devnull return errcheck(acos(x), "acos");
41 c5b9ff9f 2003-12-04 devnull }
42 c5b9ff9f 2003-12-04 devnull
43 c5b9ff9f 2003-12-04 devnull double
44 c5b9ff9f 2003-12-04 devnull Sinh(double x)
45 c5b9ff9f 2003-12-04 devnull {
46 c5b9ff9f 2003-12-04 devnull return errcheck(sinh(x), "sinh");
47 c5b9ff9f 2003-12-04 devnull }
48 c5b9ff9f 2003-12-04 devnull double
49 c5b9ff9f 2003-12-04 devnull Cosh(double x)
50 c5b9ff9f 2003-12-04 devnull {
51 c5b9ff9f 2003-12-04 devnull return errcheck(cosh(x), "cosh");
52 c5b9ff9f 2003-12-04 devnull }
53 c5b9ff9f 2003-12-04 devnull double
54 c5b9ff9f 2003-12-04 devnull Pow(double x, double y)
55 c5b9ff9f 2003-12-04 devnull {
56 c5b9ff9f 2003-12-04 devnull return errcheck(pow(x,y), "exponentiation");
57 c5b9ff9f 2003-12-04 devnull }
58 c5b9ff9f 2003-12-04 devnull
59 c5b9ff9f 2003-12-04 devnull double
60 c5b9ff9f 2003-12-04 devnull integer(double x)
61 c5b9ff9f 2003-12-04 devnull {
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;
65 c5b9ff9f 2003-12-04 devnull }
66 c5b9ff9f 2003-12-04 devnull
67 c5b9ff9f 2003-12-04 devnull double
68 c5b9ff9f 2003-12-04 devnull errcheck(double d, char* s) /* check result of library call */
69 c5b9ff9f 2003-12-04 devnull {
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;
75 c5b9ff9f 2003-12-04 devnull }