]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/hoc/math.c
Import sources from 2011-03-30 iso image
[plan9front.git] / sys / src / cmd / hoc / math.c
1 #include <u.h>
2 #include <libc.h>
3
4 #include "hoc.h"
5
6 double  errcheck(double, char*);
7
8 double
9 Log(double x)
10 {
11         return errcheck(log(x), "log");
12 }
13 double
14 Log10(double x)
15 {
16         return errcheck(log10(x), "log10");
17 }
18
19 double
20 Sqrt(double x)
21 {
22         return errcheck(sqrt(x), "sqrt");
23 }
24
25 double
26 Exp(double x)
27 {
28         return errcheck(exp(x), "exp");
29 }
30
31 double
32 Asin(double x)
33 {
34         return errcheck(asin(x), "asin");
35 }
36
37 double
38 Acos(double x)
39 {
40         return errcheck(acos(x), "acos");
41 }
42
43 double
44 Sinh(double x)
45 {
46         return errcheck(sinh(x), "sinh");
47 }
48 double
49 Cosh(double x)
50 {
51         return errcheck(cosh(x), "cosh");
52 }
53 double
54 Pow(double x, double y)
55 {
56         return errcheck(pow(x,y), "exponentiation");
57 }
58
59 double
60 integer(double x)
61 {
62         if(x<-2147483648.0 || x>2147483647.0)
63                 execerror("argument out of domain", 0);
64         return (double)(long)x;
65 }
66
67 double
68 errcheck(double d, char* s)     /* check result of library call */
69 {
70         if(isNaN(d))
71                 execerror(s, "argument out of domain");
72         if(isInf(d, 0))
73                 execerror(s, "result out of range");
74         return d;
75 }