math.c - 9base - revived minimalist port of Plan 9 userland to Unix
(HTM) git clone git://git.suckless.org/9base
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
math.c (990B)
---
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 }