1/* Copyright JS Foundation and other contributors, http://js.foundation
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/*
17 * Unit test generator for jerry-libm.
18 * To be compiled separately from the rest of jerry and to be linked to a trusted libm.
19 * Its output should be redirected to test-libm.inc.h.
20 *
21 * Example:
22 * gcc gen-test-libm.c -o gen-test-libm -lm
23 * ./gen-test-libm >test-libm.inc.h
24 */
25
26#include <math.h>
27#include <stdio.h>
28
29#define GEN_INT_TEST(EXPR) printf("check_int (\"%s\", %s, %d);\n", #EXPR, #EXPR, EXPR);
30#define GEN_DBL_TEST(EXPR) printf("check_double (\"%s\", %s, %.20E);\n", #EXPR, #EXPR, EXPR);
31
32int
33main (int argc, char **args)
34{
35  printf ("/* Copyright JS Foundation and other contributors, http://js.foundation\n"
36          " *\n"
37          " * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
38          " * you may not use this file except in compliance with the License.\n"
39          " * You may obtain a copy of the License at\n"
40          " *\n"
41          " *     http://www.apache.org/licenses/LICENSE-2.0\n"
42          " *\n"
43          " * Unless required by applicable law or agreed to in writing, software\n"
44          " * distributed under the License is distributed on an \"AS IS\" BASIS\n"
45          " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"
46          " * See the License for the specific language governing permissions and\n"
47          " * limitations under the License.\n"
48          " */\n"
49          "\n"
50          "/* This file is automatically generated by the gen-test-libm.sh script.\n"
51          " * Do not edit! */\n"
52          "\n");
53
54  /* acos tests */
55  GEN_DBL_TEST (acos (0.0));
56  GEN_DBL_TEST (acos (-0.0));
57  GEN_DBL_TEST (acos (1.0));
58  GEN_DBL_TEST (acos (-1.0));
59  GEN_DBL_TEST (acos (0.5));
60  GEN_DBL_TEST (acos (-0.5));
61  GEN_DBL_TEST (acos (INFINITY));
62  GEN_DBL_TEST (acos (-INFINITY));
63  GEN_DBL_TEST (acos (NAN));
64  GEN_DBL_TEST (acos (6.9e-18));
65  GEN_DBL_TEST (acos (-6.9e-18));
66  GEN_DBL_TEST (acos (7.0e-18));
67  GEN_DBL_TEST (acos (-7.0e-18));
68  GEN_DBL_TEST (acos (7.4e-9));
69  GEN_DBL_TEST (acos (-7.4e-9));
70  GEN_DBL_TEST (acos (7.5e-9));
71  GEN_DBL_TEST (acos (-7.5e-9));
72  GEN_DBL_TEST (acos (0.1));
73  GEN_DBL_TEST (acos (-0.1));
74  GEN_DBL_TEST (acos (0.4));
75  GEN_DBL_TEST (acos (-0.4));
76  GEN_DBL_TEST (acos (0.6));
77  GEN_DBL_TEST (acos (-0.6));
78  GEN_DBL_TEST (acos (0.99));
79  GEN_DBL_TEST (acos (-0.99));
80  GEN_DBL_TEST (acos (1.1));
81  GEN_DBL_TEST (acos (-1.1));
82  GEN_DBL_TEST (acos (0.7));
83
84  /* asin tests*/
85  GEN_DBL_TEST (asin (0.0));
86  GEN_DBL_TEST (asin (-0.0));
87  GEN_DBL_TEST (asin (1.0));
88  GEN_DBL_TEST (asin (-1.0));
89  GEN_DBL_TEST (asin (0.5));
90  GEN_DBL_TEST (asin (-0.5));
91  GEN_DBL_TEST (asin (0.98));
92  GEN_DBL_TEST (asin (-0.98));
93  GEN_DBL_TEST (asin (INFINITY));
94  GEN_DBL_TEST (asin (-INFINITY));
95  GEN_DBL_TEST (asin (NAN));
96  GEN_DBL_TEST (asin (6.9e-18));
97  GEN_DBL_TEST (asin (-6.9e-18));
98  GEN_DBL_TEST (asin (7.0e-18));
99  GEN_DBL_TEST (asin (-7.0e-18));
100  GEN_DBL_TEST (asin (7.4e-9));
101  GEN_DBL_TEST (asin (-7.4e-9));
102  GEN_DBL_TEST (asin (7.5e-9));
103  GEN_DBL_TEST (asin (-7.5e-9));
104  GEN_DBL_TEST (asin (0.1));
105  GEN_DBL_TEST (asin (-0.1));
106  GEN_DBL_TEST (asin (0.4));
107  GEN_DBL_TEST (asin (-0.4));
108  GEN_DBL_TEST (asin (0.6));
109  GEN_DBL_TEST (asin (-0.6));
110  GEN_DBL_TEST (asin (0.97));
111  GEN_DBL_TEST (asin (-0.97));
112  GEN_DBL_TEST (asin (0.99));
113  GEN_DBL_TEST (asin (-0.99));
114  GEN_DBL_TEST (asin (1.1));
115  GEN_DBL_TEST (asin (-1.1));
116  GEN_DBL_TEST (asin (0.7));
117
118  /* atan tests*/
119  GEN_DBL_TEST (atan (0.0));
120  GEN_DBL_TEST (atan (-0.0));
121  GEN_DBL_TEST (atan (7.0 / 16.0));
122  GEN_DBL_TEST (atan (-7.0 / 16.0));
123  GEN_DBL_TEST (atan (11.0 / 16.0));
124  GEN_DBL_TEST (atan (-11.0 / 16.0));
125  GEN_DBL_TEST (atan (19.0 / 16.0));
126  GEN_DBL_TEST (atan (-19.0 / 16.0));
127  GEN_DBL_TEST (atan (39.0 / 16.0));
128  GEN_DBL_TEST (atan (-39.0 / 16.0));
129  GEN_DBL_TEST (atan (1.0));
130  GEN_DBL_TEST (atan (-1.0));
131  GEN_DBL_TEST (atan (INFINITY));
132  GEN_DBL_TEST (atan (-INFINITY));
133  GEN_DBL_TEST (atan (NAN));
134  GEN_DBL_TEST (atan (6.9 / 16.0));
135  GEN_DBL_TEST (atan (-6.9 / 16.0));
136  GEN_DBL_TEST (atan (7.1 / 16.0));
137  GEN_DBL_TEST (atan (-7.1 / 16.0));
138  GEN_DBL_TEST (atan (10.9 / 16.0));
139  GEN_DBL_TEST (atan (-10.9 / 16.0));
140  GEN_DBL_TEST (atan (11.1 / 16.0));
141  GEN_DBL_TEST (atan (-11.1 / 16.0));
142  GEN_DBL_TEST (atan (18.9 / 16.0));
143  GEN_DBL_TEST (atan (-18.9 / 16.0));
144  GEN_DBL_TEST (atan (19.1 / 16.0));
145  GEN_DBL_TEST (atan (-19.1 / 16.0));
146  GEN_DBL_TEST (atan (38.9 / 16.0));
147  GEN_DBL_TEST (atan (-38.9 / 16.0));
148  GEN_DBL_TEST (atan (39.1 / 16.0));
149  GEN_DBL_TEST (atan (-39.1 / 16.0));
150  GEN_DBL_TEST (atan (0.99));
151  GEN_DBL_TEST (atan (-0.99));
152  GEN_DBL_TEST (atan (1.1));
153  GEN_DBL_TEST (atan (-1.1));
154  GEN_DBL_TEST (atan (7.37e+19));
155  GEN_DBL_TEST (atan (-7.37e+19));
156  GEN_DBL_TEST (atan (7.38e+19));
157  GEN_DBL_TEST (atan (-7.38e+19));
158  GEN_DBL_TEST (atan (0.7));
159
160  /* atan2 tests*/
161  GEN_DBL_TEST (atan2 (NAN, NAN));
162  GEN_DBL_TEST (atan2 (0.0, NAN));
163  GEN_DBL_TEST (atan2 (-0.0, NAN));
164  GEN_DBL_TEST (atan2 (1.0, NAN));
165  GEN_DBL_TEST (atan2 (-1.0, NAN));
166  GEN_DBL_TEST (atan2 (INFINITY, NAN));
167  GEN_DBL_TEST (atan2 (-INFINITY, NAN));
168  GEN_DBL_TEST (atan2 (NAN, 0.0));
169  GEN_DBL_TEST (atan2 (NAN, -0.0));
170  GEN_DBL_TEST (atan2 (NAN, 1.0));
171  GEN_DBL_TEST (atan2 (NAN, -1.0));
172  GEN_DBL_TEST (atan2 (NAN, INFINITY));
173  GEN_DBL_TEST (atan2 (NAN, -INFINITY));
174  GEN_DBL_TEST (atan2 (0.0, 0.0));
175  GEN_DBL_TEST (atan2 (0.0, -0.0));
176  GEN_DBL_TEST (atan2 (-0.0, 0.0));
177  GEN_DBL_TEST (atan2 (-0.0, -0.0));
178  GEN_DBL_TEST (atan2 (0.0, 1.0));
179  GEN_DBL_TEST (atan2 (0.0, -1.0));
180  GEN_DBL_TEST (atan2 (0.0, INFINITY));
181  GEN_DBL_TEST (atan2 (0.0, -INFINITY));
182  GEN_DBL_TEST (atan2 (-0.0, 1.0));
183  GEN_DBL_TEST (atan2 (-0.0, -1.0));
184  GEN_DBL_TEST (atan2 (-0.0, INFINITY));
185  GEN_DBL_TEST (atan2 (-0.0, -INFINITY));
186  GEN_DBL_TEST (atan2 (1.0, 0.0));
187  GEN_DBL_TEST (atan2 (1.0, -0.0));
188  GEN_DBL_TEST (atan2 (INFINITY, 0.0));
189  GEN_DBL_TEST (atan2 (INFINITY, -0.0));
190  GEN_DBL_TEST (atan2 (-1.0, 0.0));
191  GEN_DBL_TEST (atan2 (-1.0, -0.0));
192  GEN_DBL_TEST (atan2 (-INFINITY, 0.0));
193  GEN_DBL_TEST (atan2 (-INFINITY, -0.0));
194  GEN_DBL_TEST (atan2 (1.0, INFINITY));
195  GEN_DBL_TEST (atan2 (-1.0, INFINITY));
196  GEN_DBL_TEST (atan2 (1.0, -INFINITY));
197  GEN_DBL_TEST (atan2 (-1.0, -INFINITY));
198  GEN_DBL_TEST (atan2 (INFINITY, INFINITY));
199  GEN_DBL_TEST (atan2 (INFINITY, -INFINITY));
200  GEN_DBL_TEST (atan2 (-INFINITY, INFINITY));
201  GEN_DBL_TEST (atan2 (-INFINITY, -INFINITY));
202  GEN_DBL_TEST (atan2 (INFINITY, 1.0));
203  GEN_DBL_TEST (atan2 (INFINITY, -1.0));
204  GEN_DBL_TEST (atan2 (-INFINITY, 1.0));
205  GEN_DBL_TEST (atan2 (-INFINITY, -1.0));
206  GEN_DBL_TEST (atan2 (0.7, 1.0));
207  GEN_DBL_TEST (atan2 (-0.7, 1.0));
208  GEN_DBL_TEST (atan2 (0.7, -1.0));
209  GEN_DBL_TEST (atan2 (-0.7, -1.0));
210  GEN_DBL_TEST (atan2 (0.4, 0.0003));
211  GEN_DBL_TEST (atan2 (1.4, -0.93));
212
213  /* acosh tests */
214  GEN_DBL_TEST (acosh (0.0));
215  GEN_DBL_TEST (acosh (-0.0));
216  GEN_DBL_TEST (acosh (1.0));
217  GEN_DBL_TEST (acosh (-1.0));
218  GEN_DBL_TEST (acosh (INFINITY));
219  GEN_DBL_TEST (acosh (-INFINITY));
220  GEN_DBL_TEST (acosh (NAN));
221  GEN_DBL_TEST (acosh (7.08e+02));
222  GEN_DBL_TEST (acosh (7.10e+02));
223  GEN_DBL_TEST (acosh (-7.40e+02));
224  GEN_DBL_TEST (acosh (-7.50e+02));
225  GEN_DBL_TEST (acosh (0.34));
226  GEN_DBL_TEST (acosh (-0.34));
227  GEN_DBL_TEST (acosh (0.35));
228  GEN_DBL_TEST (acosh (-0.35));
229  GEN_DBL_TEST (acosh (1.03));
230  GEN_DBL_TEST (acosh (-1.03));
231  GEN_DBL_TEST (acosh (1.04));
232  GEN_DBL_TEST (acosh (-1.04));
233  GEN_DBL_TEST (acosh (3.72e-09));
234  GEN_DBL_TEST (acosh (-3.72e-09));
235  GEN_DBL_TEST (acosh (3.73e-09));
236  GEN_DBL_TEST (acosh (-3.73e-09));
237  GEN_DBL_TEST (acosh (2.0));
238  GEN_DBL_TEST (acosh (3.0));
239  GEN_DBL_TEST (acosh (0.7));
240  GEN_DBL_TEST (acosh (38.0));
241
242  /* asinh tests */
243  GEN_DBL_TEST (asinh (0.0));
244  GEN_DBL_TEST (asinh (-0.0));
245  GEN_DBL_TEST (asinh (1.0));
246  GEN_DBL_TEST (asinh (-1.0));
247  GEN_DBL_TEST (asinh (INFINITY));
248  GEN_DBL_TEST (asinh (-INFINITY));
249  GEN_DBL_TEST (asinh (NAN));
250  GEN_DBL_TEST (asinh (7.08e+02));
251  GEN_DBL_TEST (asinh (7.10e+02));
252  GEN_DBL_TEST (asinh (-7.40e+02));
253  GEN_DBL_TEST (asinh (-7.50e+02));
254  GEN_DBL_TEST (asinh (0.34));
255  GEN_DBL_TEST (asinh (-0.34));
256  GEN_DBL_TEST (asinh (0.35));
257  GEN_DBL_TEST (asinh (-0.35));
258  GEN_DBL_TEST (asinh (1.03));
259  GEN_DBL_TEST (asinh (-1.03));
260  GEN_DBL_TEST (asinh (1.04));
261  GEN_DBL_TEST (asinh (-1.04));
262  GEN_DBL_TEST (asinh (3.72e-09));
263  GEN_DBL_TEST (asinh (-3.72e-09));
264  GEN_DBL_TEST (asinh (3.73e-09));
265  GEN_DBL_TEST (asinh (-3.73e-09));
266  GEN_DBL_TEST (asinh (2.0));
267  GEN_DBL_TEST (asinh (3.0));
268  GEN_DBL_TEST (asinh (0.7));
269  GEN_DBL_TEST (asinh (38.0));
270
271  /* atanh tests */
272  GEN_DBL_TEST (atanh (0.0));
273  GEN_DBL_TEST (atanh (-0.0));
274  GEN_DBL_TEST (atanh (1.0));
275  GEN_DBL_TEST (atanh (-1.0));
276  GEN_DBL_TEST (atanh (INFINITY));
277  GEN_DBL_TEST (atanh (-INFINITY));
278  GEN_DBL_TEST (atanh (NAN));
279  GEN_DBL_TEST (atanh (7.08e+02));
280  GEN_DBL_TEST (atanh (7.10e+02));
281  GEN_DBL_TEST (atanh (-7.40e+02));
282  GEN_DBL_TEST (atanh (-7.50e+02));
283  GEN_DBL_TEST (atanh (0.34));
284  GEN_DBL_TEST (atanh (-0.34));
285  GEN_DBL_TEST (atanh (0.35));
286  GEN_DBL_TEST (atanh (-0.35));
287  GEN_DBL_TEST (atanh (1.03));
288  GEN_DBL_TEST (atanh (-1.03));
289  GEN_DBL_TEST (atanh (1.04));
290  GEN_DBL_TEST (atanh (-1.04));
291  GEN_DBL_TEST (atanh (3.72e-09));
292  GEN_DBL_TEST (atanh (-3.72e-09));
293  GEN_DBL_TEST (atanh (3.73e-09));
294  GEN_DBL_TEST (atanh (-3.73e-09));
295  GEN_DBL_TEST (atanh (2.0));
296  GEN_DBL_TEST (atanh (3.0));
297  GEN_DBL_TEST (atanh (0.7));
298  GEN_DBL_TEST (atanh (38.0));
299
300  /* ceil tests */
301  GEN_DBL_TEST (ceil (0.0));
302  GEN_DBL_TEST (ceil (-0.0));
303  GEN_DBL_TEST (ceil (INFINITY));
304  GEN_DBL_TEST (ceil (-INFINITY));
305  GEN_DBL_TEST (ceil (NAN));
306  GEN_DBL_TEST (ceil (3.14));
307  GEN_DBL_TEST (ceil (-3.14));
308  GEN_DBL_TEST (ceil (3.72e-09));
309  GEN_DBL_TEST (ceil (-3.72e-09));
310  GEN_DBL_TEST (ceil (7.37e+19));
311  GEN_DBL_TEST (ceil (-7.37e+19));
312
313  /* copysign tests */
314  /* SKIPPED: not publicly declared in jerry-libm
315  GEN_DBL_TEST (copysign (0.0, 0.0));
316  GEN_DBL_TEST (copysign (0.0, -0.0));
317  GEN_DBL_TEST (copysign (-0.0, 0.0));
318  GEN_DBL_TEST (copysign (-0.0, -0.0));
319  GEN_DBL_TEST (copysign (0.0, 1.0));
320  GEN_DBL_TEST (copysign (0.0, -1.0));
321  GEN_DBL_TEST (copysign (-0.0, 1.0));
322  GEN_DBL_TEST (copysign (-0.0, -1.0));
323  GEN_DBL_TEST (copysign (0.0, INFINITY));
324  GEN_DBL_TEST (copysign (0.0, -INFINITY));
325  GEN_DBL_TEST (copysign (-0.0, INFINITY));
326  GEN_DBL_TEST (copysign (-0.0, -INFINITY));
327  GEN_DBL_TEST (copysign (0.0, NAN));
328  GEN_DBL_TEST (copysign (-0.0, NAN));
329  GEN_DBL_TEST (copysign (1.0, 0.0));
330  GEN_DBL_TEST (copysign (1.0, -0.0));
331  GEN_DBL_TEST (copysign (-1.0, 0.0));
332  GEN_DBL_TEST (copysign (-1.0, -0.0));
333  GEN_DBL_TEST (copysign (1.0, 1.0));
334  GEN_DBL_TEST (copysign (1.0, -1.0));
335  GEN_DBL_TEST (copysign (-1.0, 1.0));
336  GEN_DBL_TEST (copysign (-1.0, -1.0));
337  GEN_DBL_TEST (copysign (1.0, INFINITY));
338  GEN_DBL_TEST (copysign (1.0, -INFINITY));
339  GEN_DBL_TEST (copysign (-1.0, INFINITY));
340  GEN_DBL_TEST (copysign (-1.0, -INFINITY));
341  GEN_DBL_TEST (copysign (1.0, NAN));
342  GEN_DBL_TEST (copysign (-1.0, NAN));
343  GEN_DBL_TEST (copysign (INFINITY, 0.0));
344  GEN_DBL_TEST (copysign (INFINITY, -0.0));
345  GEN_DBL_TEST (copysign (-INFINITY, 0.0));
346  GEN_DBL_TEST (copysign (-INFINITY, -0.0));
347  GEN_DBL_TEST (copysign (INFINITY, 1.0));
348  GEN_DBL_TEST (copysign (INFINITY, -1.0));
349  GEN_DBL_TEST (copysign (-INFINITY, 1.0));
350  GEN_DBL_TEST (copysign (-INFINITY, -1.0));
351  GEN_DBL_TEST (copysign (INFINITY, INFINITY));
352  GEN_DBL_TEST (copysign (INFINITY, -INFINITY));
353  GEN_DBL_TEST (copysign (-INFINITY, INFINITY));
354  GEN_DBL_TEST (copysign (-INFINITY, -INFINITY));
355  GEN_DBL_TEST (copysign (INFINITY, NAN));
356  GEN_DBL_TEST (copysign (-INFINITY, NAN));
357  GEN_DBL_TEST (copysign (NAN, 0.0));
358  GEN_DBL_TEST (copysign (NAN, -0.0));
359  GEN_DBL_TEST (copysign (NAN, 1.0));
360  GEN_DBL_TEST (copysign (NAN, -1.0));
361  GEN_DBL_TEST (copysign (NAN, INFINITY));
362  GEN_DBL_TEST (copysign (NAN, -INFINITY));
363  GEN_DBL_TEST (copysign (NAN, NAN));
364  GEN_DBL_TEST (copysign (3.14, -1.0));
365  GEN_DBL_TEST (copysign (-3.14, 1.0));
366  GEN_DBL_TEST (copysign (1.0, -3.14));
367  GEN_DBL_TEST (copysign (-1.0, 3.14));
368  */
369
370  /* exp tests */
371  GEN_DBL_TEST (exp (0.0));
372  GEN_DBL_TEST (exp (-0.0));
373  GEN_DBL_TEST (exp (1.0));
374  GEN_DBL_TEST (exp (-1.0));
375  GEN_DBL_TEST (exp (INFINITY));
376  GEN_DBL_TEST (exp (-INFINITY));
377  GEN_DBL_TEST (exp (NAN));
378  GEN_DBL_TEST (exp (7.08e+02));
379  GEN_DBL_TEST (exp (7.10e+02));
380  GEN_DBL_TEST (exp (-7.40e+02));
381  GEN_DBL_TEST (exp (-7.50e+02));
382  GEN_DBL_TEST (exp (0.34));
383  GEN_DBL_TEST (exp (-0.34));
384  GEN_DBL_TEST (exp (0.35));
385  GEN_DBL_TEST (exp (-0.35));
386  GEN_DBL_TEST (exp (1.03));
387  GEN_DBL_TEST (exp (-1.03));
388  GEN_DBL_TEST (exp (1.04));
389  GEN_DBL_TEST (exp (-1.04));
390  GEN_DBL_TEST (exp (3.72e-09));
391  GEN_DBL_TEST (exp (-3.72e-09));
392  GEN_DBL_TEST (exp (3.73e-09));
393  GEN_DBL_TEST (exp (-3.73e-09));
394  GEN_DBL_TEST (exp (2.0));
395  GEN_DBL_TEST (exp (3.0));
396  GEN_DBL_TEST (exp (0.7));
397  GEN_DBL_TEST (exp (38.0));
398
399  /* expm1 tests */
400  GEN_DBL_TEST (expm1 (0.0));
401  GEN_DBL_TEST (expm1 (-0.0));
402  GEN_DBL_TEST (expm1 (1.0));
403  GEN_DBL_TEST (expm1 (-1.0));
404  GEN_DBL_TEST (expm1 (INFINITY));
405  GEN_DBL_TEST (expm1 (-INFINITY));
406  GEN_DBL_TEST (expm1 (NAN));
407  GEN_DBL_TEST (expm1 (7.08e+02));
408  GEN_DBL_TEST (expm1 (7.10e+02));
409  GEN_DBL_TEST (expm1 (-7.40e+02));
410  GEN_DBL_TEST (expm1 (-7.50e+02));
411  GEN_DBL_TEST (expm1 (0.34));
412  GEN_DBL_TEST (expm1 (-0.34));
413  GEN_DBL_TEST (expm1 (0.35));
414  GEN_DBL_TEST (expm1 (-0.35));
415  GEN_DBL_TEST (expm1 (1.03));
416  GEN_DBL_TEST (expm1 (-1.03));
417  GEN_DBL_TEST (expm1 (1.04));
418  GEN_DBL_TEST (expm1 (-1.04));
419  GEN_DBL_TEST (expm1 (3.72e-09));
420  GEN_DBL_TEST (expm1 (-3.72e-09));
421  GEN_DBL_TEST (expm1 (3.73e-09));
422  GEN_DBL_TEST (expm1 (-3.73e-09));
423  GEN_DBL_TEST (expm1 (2.0));
424  GEN_DBL_TEST (expm1 (3.0));
425  GEN_DBL_TEST (expm1 (0.7));
426  GEN_DBL_TEST (expm1 (38.0));
427
428  /* fabs tests */
429  GEN_DBL_TEST (fabs (0.0));
430  GEN_DBL_TEST (fabs (-0.0));
431  GEN_DBL_TEST (fabs (1.0));
432  GEN_DBL_TEST (fabs (-1.0));
433  GEN_DBL_TEST (fabs (INFINITY));
434  GEN_DBL_TEST (fabs (-INFINITY));
435  GEN_DBL_TEST (fabs (NAN));
436  GEN_DBL_TEST (fabs (3.14));
437  GEN_DBL_TEST (fabs (-3.14));
438  GEN_DBL_TEST (fabs (0.7));
439  GEN_DBL_TEST (fabs (-0.7));
440  GEN_DBL_TEST (fabs (3.72e-09));
441  GEN_DBL_TEST (fabs (-3.72e-09));
442  GEN_DBL_TEST (fabs (7.37e+19));
443  GEN_DBL_TEST (fabs (-7.37e+19));
444
445  /* finite tests */
446  /* SKIPPED: not publicly declared in jerry-libm
447  GEN_INT_TEST (finite (0.0));
448  GEN_INT_TEST (finite (-0.0));
449  GEN_INT_TEST (finite (1.0));
450  GEN_INT_TEST (finite (-1.0));
451  GEN_INT_TEST (finite (INFINITY));
452  GEN_INT_TEST (finite (-INFINITY));
453  GEN_INT_TEST (finite (NAN));
454  GEN_INT_TEST (finite (3.14));
455  GEN_INT_TEST (finite (-3.14));
456  GEN_INT_TEST (finite (0.7));
457  GEN_INT_TEST (finite (-0.7));
458  GEN_INT_TEST (finite (3.72e-09));
459  GEN_INT_TEST (finite (-3.72e-09));
460  GEN_INT_TEST (finite (7.37e+19));
461  GEN_INT_TEST (finite (-7.37e+19));
462  */
463
464  /* floor tests */
465  GEN_DBL_TEST (floor (0.0));
466  GEN_DBL_TEST (floor (-0.0));
467  GEN_DBL_TEST (floor (INFINITY));
468  GEN_DBL_TEST (floor (-INFINITY));
469  GEN_DBL_TEST (floor (NAN));
470  GEN_DBL_TEST (floor (3.14));
471  GEN_DBL_TEST (floor (-3.14));
472  GEN_DBL_TEST (floor (3.72e-09));
473  GEN_DBL_TEST (floor (-3.72e-09));
474  GEN_DBL_TEST (floor (7.37e+19));
475  GEN_DBL_TEST (floor (-7.37e+19));
476
477  /* fmod tests */
478  GEN_DBL_TEST (fmod (0.0, 0.0));
479  GEN_DBL_TEST (fmod (0.0, -0.0));
480  GEN_DBL_TEST (fmod (-0.0, 0.0));
481  GEN_DBL_TEST (fmod (-0.0, -0.0));
482  GEN_DBL_TEST (fmod (0.0, 3.0));
483  GEN_DBL_TEST (fmod (0.0, -3.0));
484  GEN_DBL_TEST (fmod (-0.0, 3.0));
485  GEN_DBL_TEST (fmod (-0.0, -3.0));
486  GEN_DBL_TEST (fmod (0.0, INFINITY));
487  GEN_DBL_TEST (fmod (0.0, -INFINITY));
488  GEN_DBL_TEST (fmod (-0.0, INFINITY));
489  GEN_DBL_TEST (fmod (-0.0, -INFINITY));
490  GEN_DBL_TEST (fmod (0.0, NAN));
491  GEN_DBL_TEST (fmod (-0.0, NAN));
492  GEN_DBL_TEST (fmod (3.0, 0.0));
493  GEN_DBL_TEST (fmod (3.0, -0.0));
494  GEN_DBL_TEST (fmod (-3.0, 0.0));
495  GEN_DBL_TEST (fmod (-3.0, -0.0));
496  GEN_DBL_TEST (fmod (3.0, 3.0));
497  GEN_DBL_TEST (fmod (3.0, -3.0));
498  GEN_DBL_TEST (fmod (-3.0, 3.0));
499  GEN_DBL_TEST (fmod (-3.0, -3.0));
500  GEN_DBL_TEST (fmod (3.0, INFINITY));
501  GEN_DBL_TEST (fmod (3.0, -INFINITY));
502  GEN_DBL_TEST (fmod (-3.0, INFINITY));
503  GEN_DBL_TEST (fmod (-3.0, -INFINITY));
504  GEN_DBL_TEST (fmod (3.0, NAN));
505  GEN_DBL_TEST (fmod (-3.0, NAN));
506  GEN_DBL_TEST (fmod (INFINITY, 0.0));
507  GEN_DBL_TEST (fmod (INFINITY, -0.0));
508  GEN_DBL_TEST (fmod (-INFINITY, 0.0));
509  GEN_DBL_TEST (fmod (-INFINITY, -0.0));
510  GEN_DBL_TEST (fmod (INFINITY, 3.0));
511  GEN_DBL_TEST (fmod (INFINITY, -3.0));
512  GEN_DBL_TEST (fmod (-INFINITY, 3.0));
513  GEN_DBL_TEST (fmod (-INFINITY, -3.0));
514  GEN_DBL_TEST (fmod (INFINITY, INFINITY));
515  GEN_DBL_TEST (fmod (INFINITY, -INFINITY));
516  GEN_DBL_TEST (fmod (-INFINITY, INFINITY));
517  GEN_DBL_TEST (fmod (-INFINITY, -INFINITY));
518  GEN_DBL_TEST (fmod (INFINITY, NAN));
519  GEN_DBL_TEST (fmod (-INFINITY, NAN));
520  GEN_DBL_TEST (fmod (NAN, 0.0));
521  GEN_DBL_TEST (fmod (NAN, -0.0));
522  GEN_DBL_TEST (fmod (NAN, 3.0));
523  GEN_DBL_TEST (fmod (NAN, -3.0));
524  GEN_DBL_TEST (fmod (NAN, INFINITY));
525  GEN_DBL_TEST (fmod (NAN, -INFINITY));
526  GEN_DBL_TEST (fmod (NAN, NAN));
527  GEN_DBL_TEST (fmod (3.0, 1.0));
528  GEN_DBL_TEST (fmod (3.0, -1.0));
529  GEN_DBL_TEST (fmod (-3.0, 1.0));
530  GEN_DBL_TEST (fmod (-3.0, -1.0));
531  GEN_DBL_TEST (fmod (6.5, 2.3));
532  GEN_DBL_TEST (fmod (6.5, -2.3));
533  GEN_DBL_TEST (fmod (-6.5, 2.3));
534  GEN_DBL_TEST (fmod (-6.5, -2.3));
535
536  /* isnan tests */
537  GEN_INT_TEST (isnan (0.0));
538  GEN_INT_TEST (isnan (-0.0));
539  GEN_INT_TEST (isnan (1.0));
540  GEN_INT_TEST (isnan (-1.0));
541  GEN_INT_TEST (isnan (INFINITY));
542  GEN_INT_TEST (isnan (-INFINITY));
543  GEN_INT_TEST (isnan (NAN));
544  GEN_INT_TEST (isnan (3.14));
545  GEN_INT_TEST (isnan (-3.14));
546  GEN_INT_TEST (isnan (0.7));
547  GEN_INT_TEST (isnan (-0.7));
548  GEN_INT_TEST (isnan (3.72e-09));
549  GEN_INT_TEST (isnan (-3.72e-09));
550  GEN_INT_TEST (isnan (7.37e+19));
551  GEN_INT_TEST (isnan (-7.37e+19));
552
553  /* log tests */
554  GEN_DBL_TEST (log (0.0));
555  GEN_DBL_TEST (log (-0.0));
556  GEN_DBL_TEST (log (1.0));
557  GEN_DBL_TEST (log (-1.0));
558  GEN_DBL_TEST (log (INFINITY));
559  GEN_DBL_TEST (log (-INFINITY));
560  GEN_DBL_TEST (log (NAN));
561  GEN_DBL_TEST (log (M_E));
562  GEN_DBL_TEST (log (1.0 / M_E));
563  GEN_DBL_TEST (log (2));
564  GEN_DBL_TEST (log (10));
565  GEN_DBL_TEST (log (0.7));
566  GEN_DBL_TEST (log (2.22e-308));
567  GEN_DBL_TEST (log (2.23e-308));
568  GEN_DBL_TEST (log (0.17));
569  GEN_DBL_TEST (log (0.18));
570  GEN_DBL_TEST (log (1999.0));
571  GEN_DBL_TEST (log (2000.0));
572  GEN_DBL_TEST (log (2001.0));
573
574  /* log1p tests */
575  GEN_DBL_TEST (log1p (0.0));
576  GEN_DBL_TEST (log1p (-0.0));
577  GEN_DBL_TEST (log1p (1.0));
578  GEN_DBL_TEST (log1p (-1.0));
579  GEN_DBL_TEST (log1p (INFINITY));
580  GEN_DBL_TEST (log1p (-INFINITY));
581  GEN_DBL_TEST (log1p (NAN));
582  GEN_DBL_TEST (log1p (M_E));
583  GEN_DBL_TEST (log1p (1.0 / M_E));
584  GEN_DBL_TEST (log1p (2));
585  GEN_DBL_TEST (log1p (10));
586  GEN_DBL_TEST (log1p (0.7));
587  GEN_DBL_TEST (log1p (2.22e-308));
588  GEN_DBL_TEST (log1p (2.23e-308));
589  GEN_DBL_TEST (log1p (0.17));
590  GEN_DBL_TEST (log1p (0.18));
591  GEN_DBL_TEST (log1p (1999.0));
592  GEN_DBL_TEST (log1p (2000.0));
593  GEN_DBL_TEST (log1p (2001.0));
594
595  /* log2 tests */
596  GEN_DBL_TEST (log2 (0.0));
597  GEN_DBL_TEST (log2 (-0.0));
598  GEN_DBL_TEST (log2 (1.0));
599  GEN_DBL_TEST (log2 (-1.0));
600  GEN_DBL_TEST (log2 (INFINITY));
601  GEN_DBL_TEST (log2 (-INFINITY));
602  GEN_DBL_TEST (log2 (NAN));
603  GEN_DBL_TEST (log2 (M_E));
604  GEN_DBL_TEST (log2 (1.0 / M_E));
605  GEN_DBL_TEST (log2 (2));
606  GEN_DBL_TEST (log2 (10));
607  GEN_DBL_TEST (log2 (0.7));
608  GEN_DBL_TEST (log2 (2.22e-308));
609  GEN_DBL_TEST (log2 (2.23e-308));
610  GEN_DBL_TEST (log2 (0.17));
611  GEN_DBL_TEST (log2 (0.18));
612  GEN_DBL_TEST (log2 (1999.0));
613  GEN_DBL_TEST (log2 (2000.0));
614  GEN_DBL_TEST (log2 (2001.0));
615
616  /* log10 tests */
617  GEN_DBL_TEST (log10 (0.0));
618  GEN_DBL_TEST (log10 (-0.0));
619  GEN_DBL_TEST (log10 (1.0));
620  GEN_DBL_TEST (log10 (-1.0));
621  GEN_DBL_TEST (log10 (INFINITY));
622  GEN_DBL_TEST (log10 (-INFINITY));
623  GEN_DBL_TEST (log10 (NAN));
624  GEN_DBL_TEST (log10 (M_E));
625  GEN_DBL_TEST (log10 (1.0 / M_E));
626  GEN_DBL_TEST (log10 (2));
627  GEN_DBL_TEST (log10 (10));
628  GEN_DBL_TEST (log10 (0.7));
629  GEN_DBL_TEST (log10 (2.22e-308));
630  GEN_DBL_TEST (log10 (2.23e-308));
631  GEN_DBL_TEST (log10 (0.17));
632  GEN_DBL_TEST (log10 (0.18));
633  GEN_DBL_TEST (log10 (1999.0));
634  GEN_DBL_TEST (log10 (2000.0));
635  GEN_DBL_TEST (log10 (2001.0));
636
637  /* pow tests */
638  GEN_DBL_TEST (pow (0.0, 0.0));
639  GEN_DBL_TEST (pow (0.0, -0.0));
640  GEN_DBL_TEST (pow (-0.0, 0.0));
641  GEN_DBL_TEST (pow (-0.0, -0.0));
642  GEN_DBL_TEST (pow (0.0, 1.0));
643  GEN_DBL_TEST (pow (0.0, -1.0));
644  GEN_DBL_TEST (pow (-0.0, 1.0));
645  GEN_DBL_TEST (pow (-0.0, -1.0));
646  GEN_DBL_TEST (pow (0.0, INFINITY));
647  GEN_DBL_TEST (pow (0.0, -INFINITY));
648  GEN_DBL_TEST (pow (-0.0, INFINITY));
649  GEN_DBL_TEST (pow (-0.0, -INFINITY));
650  GEN_DBL_TEST (pow (0.0, NAN));
651  GEN_DBL_TEST (pow (-0.0, NAN));
652  GEN_DBL_TEST (pow (1.0, 0.0));
653  GEN_DBL_TEST (pow (1.0, -0.0));
654  GEN_DBL_TEST (pow (-1.0, 0.0));
655  GEN_DBL_TEST (pow (-1.0, -0.0));
656  GEN_DBL_TEST (pow (1.0, 1.0));
657  GEN_DBL_TEST (pow (1.0, -1.0));
658  GEN_DBL_TEST (pow (-1.0, 1.0));
659  GEN_DBL_TEST (pow (-1.0, -1.0));
660  GEN_DBL_TEST (pow (1.0, INFINITY));
661  GEN_DBL_TEST (pow (1.0, -INFINITY));
662  GEN_DBL_TEST (pow (-1.0, INFINITY));
663  GEN_DBL_TEST (pow (-1.0, -INFINITY));
664  GEN_DBL_TEST (pow (1.0, NAN));
665  GEN_DBL_TEST (pow (-1.0, NAN));
666  GEN_DBL_TEST (pow (INFINITY, 0.0));
667  GEN_DBL_TEST (pow (INFINITY, -0.0));
668  GEN_DBL_TEST (pow (-INFINITY, 0.0));
669  GEN_DBL_TEST (pow (-INFINITY, -0.0));
670  GEN_DBL_TEST (pow (INFINITY, 1.0));
671  GEN_DBL_TEST (pow (INFINITY, -1.0));
672  GEN_DBL_TEST (pow (-INFINITY, 1.0));
673  GEN_DBL_TEST (pow (-INFINITY, -1.0));
674  GEN_DBL_TEST (pow (INFINITY, INFINITY));
675  GEN_DBL_TEST (pow (INFINITY, -INFINITY));
676  GEN_DBL_TEST (pow (-INFINITY, INFINITY));
677  GEN_DBL_TEST (pow (-INFINITY, -INFINITY));
678  GEN_DBL_TEST (pow (INFINITY, NAN));
679  GEN_DBL_TEST (pow (-INFINITY, NAN));
680  GEN_DBL_TEST (pow (NAN, 0.0));
681  GEN_DBL_TEST (pow (NAN, -0.0));
682  GEN_DBL_TEST (pow (NAN, 1.0));
683  GEN_DBL_TEST (pow (NAN, -1.0));
684  GEN_DBL_TEST (pow (NAN, INFINITY));
685  GEN_DBL_TEST (pow (NAN, -INFINITY));
686  GEN_DBL_TEST (pow (NAN, NAN));
687  GEN_DBL_TEST (pow (0.9, INFINITY));
688  GEN_DBL_TEST (pow (0.9, -INFINITY));
689  GEN_DBL_TEST (pow (-0.9, INFINITY));
690  GEN_DBL_TEST (pow (-0.9, -INFINITY));
691  GEN_DBL_TEST (pow (1.1, INFINITY));
692  GEN_DBL_TEST (pow (1.1, -INFINITY));
693  GEN_DBL_TEST (pow (-1.1, INFINITY));
694  GEN_DBL_TEST (pow (-1.1, -INFINITY));
695  GEN_DBL_TEST (pow (0.0, 2.0));
696  GEN_DBL_TEST (pow (0.0, -2.0));
697  GEN_DBL_TEST (pow (-0.0, 2.0));
698  GEN_DBL_TEST (pow (-0.0, -2.0));
699  GEN_DBL_TEST (pow (0.0, 3.0));
700  GEN_DBL_TEST (pow (0.0, -3.0));
701  GEN_DBL_TEST (pow (-0.0, 3.0));
702  GEN_DBL_TEST (pow (-0.0, -3.0));
703  GEN_DBL_TEST (pow (0.0, 3.14));
704  GEN_DBL_TEST (pow (0.0, -3.14));
705  GEN_DBL_TEST (pow (-0.0, 3.14));
706  GEN_DBL_TEST (pow (-0.0, -3.14));
707  GEN_DBL_TEST (pow (1.0, 3.14));
708  GEN_DBL_TEST (pow (1.0, -3.14));
709  GEN_DBL_TEST (pow (-1.0, 3.14));
710  GEN_DBL_TEST (pow (-1.0, -3.14));
711  GEN_DBL_TEST (pow (3.14, 0.0));
712  GEN_DBL_TEST (pow (3.14, -0.0));
713  GEN_DBL_TEST (pow (-3.14, 0.0));
714  GEN_DBL_TEST (pow (-3.14, -0.0));
715  GEN_DBL_TEST (pow (3.14, 1.0));
716  GEN_DBL_TEST (pow (3.14, -1.0));
717  GEN_DBL_TEST (pow (-3.14, 1.0));
718  GEN_DBL_TEST (pow (-3.14, -1.0));
719  GEN_DBL_TEST (pow (3.14, 2.0));
720  GEN_DBL_TEST (pow (3.14, -2.0));
721  GEN_DBL_TEST (pow (-3.14, 2.0));
722  GEN_DBL_TEST (pow (-3.14, -2.0));
723  GEN_DBL_TEST (pow (3.14, 3.0));
724  GEN_DBL_TEST (pow (3.14, -3.0));
725  GEN_DBL_TEST (pow (-3.14, 3.0));
726  GEN_DBL_TEST (pow (-3.14, -3.0));
727  GEN_DBL_TEST (pow (3.14, 3.14));
728  GEN_DBL_TEST (pow (3.14, -3.14));
729  GEN_DBL_TEST (pow (-3.14, 3.14));
730  GEN_DBL_TEST (pow (-3.14, -3.14));
731  GEN_DBL_TEST (pow (INFINITY, 2.0));
732  GEN_DBL_TEST (pow (INFINITY, -2.0));
733  GEN_DBL_TEST (pow (-INFINITY, 2.0));
734  GEN_DBL_TEST (pow (-INFINITY, -2.0));
735  GEN_DBL_TEST (pow (INFINITY, 3.0));
736  GEN_DBL_TEST (pow (INFINITY, -3.0));
737  GEN_DBL_TEST (pow (-INFINITY, 3.0));
738  GEN_DBL_TEST (pow (-INFINITY, -3.0));
739  GEN_DBL_TEST (pow (INFINITY, 3.14));
740  GEN_DBL_TEST (pow (INFINITY, -3.14));
741  GEN_DBL_TEST (pow (-INFINITY, 3.14));
742  GEN_DBL_TEST (pow (-INFINITY, -3.14));
743  GEN_DBL_TEST (pow (0.7, 1.2));
744
745  /* scalbn tests */
746  /* SKIPPED: not publicly declared in jerry-libm
747  GEN_DBL_TEST (scalbn (0.0, 0));
748  GEN_DBL_TEST (scalbn (-0.0, 0));
749  GEN_DBL_TEST (scalbn (0.0, 1));
750  GEN_DBL_TEST (scalbn (0.0, -1));
751  GEN_DBL_TEST (scalbn (-0.0, 1));
752  GEN_DBL_TEST (scalbn (-0.0, -1));
753  GEN_DBL_TEST (scalbn (1.0, 0));
754  GEN_DBL_TEST (scalbn (-1.0, 0));
755  GEN_DBL_TEST (scalbn (1.0, 1));
756  GEN_DBL_TEST (scalbn (1.0, -1));
757  GEN_DBL_TEST (scalbn (-1.0, 1));
758  GEN_DBL_TEST (scalbn (-1.0, -1));
759  GEN_DBL_TEST (scalbn (INFINITY, 0));
760  GEN_DBL_TEST (scalbn (-INFINITY, 0));
761  GEN_DBL_TEST (scalbn (INFINITY, 1));
762  GEN_DBL_TEST (scalbn (INFINITY, -1));
763  GEN_DBL_TEST (scalbn (-INFINITY, 1));
764  GEN_DBL_TEST (scalbn (-INFINITY, -1));
765  GEN_DBL_TEST (scalbn (NAN, 0));
766  GEN_DBL_TEST (scalbn (NAN, 1));
767  GEN_DBL_TEST (scalbn (NAN, -1));
768  GEN_DBL_TEST (scalbn (3.14, -1));
769  GEN_DBL_TEST (scalbn (-3.14, 1));
770  GEN_DBL_TEST (scalbn (0.7, 4));
771  GEN_DBL_TEST (scalbn (0.7, -4));
772  GEN_DBL_TEST (scalbn (-0.7, 4));
773  GEN_DBL_TEST (scalbn (-0.7, -4));
774  GEN_DBL_TEST (scalbn (0.8, 5));
775  GEN_DBL_TEST (scalbn (0.8, -5));
776  GEN_DBL_TEST (scalbn (-0.8, 5));
777  GEN_DBL_TEST (scalbn (-0.8, -5));
778  GEN_DBL_TEST (scalbn (5.55e-18, 49999));
779  GEN_DBL_TEST (scalbn (5.55e-18, 50000));
780  GEN_DBL_TEST (scalbn (5.55e-18, 50001));
781  GEN_DBL_TEST (scalbn (1.0, -49999));
782  GEN_DBL_TEST (scalbn (1.0, -50000));
783  GEN_DBL_TEST (scalbn (1.0, -50001));
784  */
785
786  /* sqrt tests */
787  GEN_DBL_TEST (sqrt (0.0));
788  GEN_DBL_TEST (sqrt (-0.0));
789  GEN_DBL_TEST (sqrt (1.0));
790  GEN_DBL_TEST (sqrt (-1.0));
791  GEN_DBL_TEST (sqrt (INFINITY));
792  GEN_DBL_TEST (sqrt (-INFINITY));
793  GEN_DBL_TEST (sqrt (NAN));
794  GEN_DBL_TEST (sqrt (0.7));
795  GEN_DBL_TEST (sqrt (2));
796  GEN_DBL_TEST (sqrt (10));
797  GEN_DBL_TEST (sqrt (2.22e-308));
798  GEN_DBL_TEST (sqrt (2.23e-308));
799  GEN_DBL_TEST (sqrt (3.72e-09));
800  GEN_DBL_TEST (sqrt (7.37e+19));
801  GEN_DBL_TEST (sqrt (2209));
802  GEN_DBL_TEST (sqrt (4));
803  GEN_DBL_TEST (sqrt (0.25));
804  GEN_DBL_TEST (sqrt (6642.25));
805  GEN_DBL_TEST (sqrt (15239.9025));
806
807  /* cbrt tests */
808  GEN_DBL_TEST (cbrt (0.0));
809  GEN_DBL_TEST (cbrt (-0.0));
810  GEN_DBL_TEST (cbrt (1.0));
811  GEN_DBL_TEST (cbrt (-1.0));
812  GEN_DBL_TEST (cbrt (INFINITY));
813  GEN_DBL_TEST (cbrt (-INFINITY));
814  GEN_DBL_TEST (cbrt (NAN));
815  GEN_DBL_TEST (cbrt (0.7));
816  GEN_DBL_TEST (cbrt (2));
817  GEN_DBL_TEST (cbrt (10));
818  GEN_DBL_TEST (cbrt (2.22e-308));
819  GEN_DBL_TEST (cbrt (2.23e-308));
820  GEN_DBL_TEST (cbrt (3.72e-09));
821  GEN_DBL_TEST (cbrt (7.37e+19));
822  GEN_DBL_TEST (cbrt (2209));
823  GEN_DBL_TEST (cbrt (4));
824  GEN_DBL_TEST (cbrt (0.25));
825  GEN_DBL_TEST (cbrt (6642.25));
826  GEN_DBL_TEST (cbrt (15239.9025));
827  GEN_DBL_TEST (cbrt (3));
828  GEN_DBL_TEST (cbrt (9));
829  GEN_DBL_TEST (cbrt (-17.87));
830  GEN_DBL_TEST (cbrt (-8941));
831
832  /* sin tests */
833  GEN_DBL_TEST (sin (0.0));
834  GEN_DBL_TEST (sin (-0.0));
835  GEN_DBL_TEST (sin (1.0));
836  GEN_DBL_TEST (sin (-1.0));
837  GEN_DBL_TEST (sin (INFINITY));
838  GEN_DBL_TEST (sin (-INFINITY));
839  GEN_DBL_TEST (sin (NAN));
840  GEN_DBL_TEST (sin (M_PI));
841  GEN_DBL_TEST (sin (-M_PI));
842  GEN_DBL_TEST (sin (2.0 * M_PI));
843  GEN_DBL_TEST (sin (-2.0 * M_PI));
844  GEN_DBL_TEST (sin (M_PI / 2.0));
845  GEN_DBL_TEST (sin (-M_PI / 2.0));
846  GEN_DBL_TEST (sin (M_PI / 3.0));
847  GEN_DBL_TEST (sin (-M_PI / 3.0));
848  GEN_DBL_TEST (sin (M_PI / 4.0));
849  GEN_DBL_TEST (sin (-M_PI / 4.0));
850  GEN_DBL_TEST (sin (M_PI / 6.0));
851  GEN_DBL_TEST (sin (-M_PI / 6.0));
852  GEN_DBL_TEST (sin (M_PI * 2.0 / 3.0));
853  GEN_DBL_TEST (sin (-M_PI * 2.0 / 3.0));
854  GEN_DBL_TEST (sin (M_PI * 5.0 / 6.0));
855  GEN_DBL_TEST (sin (-M_PI * 5.0 / 6.0));
856  GEN_DBL_TEST (sin (6.9e-18));
857  GEN_DBL_TEST (sin (-6.9e-18));
858  GEN_DBL_TEST (sin (7.0e-18));
859  GEN_DBL_TEST (sin (-7.0e-18));
860  GEN_DBL_TEST (sin (7.4e-9));
861  GEN_DBL_TEST (sin (-7.4e-9));
862  GEN_DBL_TEST (sin (7.5e-9));
863  GEN_DBL_TEST (sin (-7.5e-9));
864  GEN_DBL_TEST (sin (0.2));
865  GEN_DBL_TEST (sin (-0.2));
866  GEN_DBL_TEST (sin (0.4));
867  GEN_DBL_TEST (sin (-0.4));
868  GEN_DBL_TEST (sin (0.7));
869  GEN_DBL_TEST (sin (-0.7));
870  GEN_DBL_TEST (sin (0.8));
871  GEN_DBL_TEST (sin (-0.8));
872  GEN_DBL_TEST (sin (3.0));
873  GEN_DBL_TEST (sin (-3.0));
874  GEN_DBL_TEST (sin (4.0));
875  GEN_DBL_TEST (sin (-4.0));
876  GEN_DBL_TEST (sin (6.0));
877  GEN_DBL_TEST (sin (-6.0));
878  GEN_DBL_TEST (sin (7.0));
879  GEN_DBL_TEST (sin (-7.0));
880
881  /* cos tests */
882  GEN_DBL_TEST (cos (0.0));
883  GEN_DBL_TEST (cos (-0.0));
884  GEN_DBL_TEST (cos (1.0));
885  GEN_DBL_TEST (cos (-1.0));
886  GEN_DBL_TEST (cos (INFINITY));
887  GEN_DBL_TEST (cos (-INFINITY));
888  GEN_DBL_TEST (cos (NAN));
889  GEN_DBL_TEST (cos (M_PI));
890  GEN_DBL_TEST (cos (-M_PI));
891  GEN_DBL_TEST (cos (2.0 * M_PI));
892  GEN_DBL_TEST (cos (-2.0 * M_PI));
893  GEN_DBL_TEST (cos (M_PI / 2.0));
894  GEN_DBL_TEST (cos (-M_PI / 2.0));
895  GEN_DBL_TEST (cos (M_PI / 3.0));
896  GEN_DBL_TEST (cos (-M_PI / 3.0));
897  GEN_DBL_TEST (cos (M_PI / 4.0));
898  GEN_DBL_TEST (cos (-M_PI / 4.0));
899  GEN_DBL_TEST (cos (M_PI / 6.0));
900  GEN_DBL_TEST (cos (-M_PI / 6.0));
901  GEN_DBL_TEST (cos (M_PI * 2.0 / 3.0));
902  GEN_DBL_TEST (cos (-M_PI * 2.0 / 3.0));
903  GEN_DBL_TEST (cos (M_PI * 5.0 / 6.0));
904  GEN_DBL_TEST (cos (-M_PI * 5.0 / 6.0));
905  GEN_DBL_TEST (cos (6.9e-18));
906  GEN_DBL_TEST (cos (-6.9e-18));
907  GEN_DBL_TEST (cos (7.0e-18));
908  GEN_DBL_TEST (cos (-7.0e-18));
909  GEN_DBL_TEST (cos (7.4e-9));
910  GEN_DBL_TEST (cos (-7.4e-9));
911  GEN_DBL_TEST (cos (7.5e-9));
912  GEN_DBL_TEST (cos (-7.5e-9));
913  GEN_DBL_TEST (cos (0.2));
914  GEN_DBL_TEST (cos (-0.2));
915  GEN_DBL_TEST (cos (0.4));
916  GEN_DBL_TEST (cos (-0.4));
917  GEN_DBL_TEST (cos (0.7));
918  GEN_DBL_TEST (cos (-0.7));
919  GEN_DBL_TEST (cos (0.8));
920  GEN_DBL_TEST (cos (-0.8));
921  GEN_DBL_TEST (cos (3.0));
922  GEN_DBL_TEST (cos (-3.0));
923  GEN_DBL_TEST (cos (4.0));
924  GEN_DBL_TEST (cos (-4.0));
925  GEN_DBL_TEST (cos (6.0));
926  GEN_DBL_TEST (cos (-6.0));
927  GEN_DBL_TEST (cos (7.0));
928  GEN_DBL_TEST (cos (-7.0));
929
930  /* tan tests */
931  GEN_DBL_TEST (tan (0.0));
932  GEN_DBL_TEST (tan (-0.0));
933  GEN_DBL_TEST (tan (1.0));
934  GEN_DBL_TEST (tan (-1.0));
935  GEN_DBL_TEST (tan (INFINITY));
936  GEN_DBL_TEST (tan (-INFINITY));
937  GEN_DBL_TEST (tan (NAN));
938  GEN_DBL_TEST (tan (M_PI));
939  GEN_DBL_TEST (tan (-M_PI));
940  GEN_DBL_TEST (tan (2.0 * M_PI));
941  GEN_DBL_TEST (tan (-2.0 * M_PI));
942  GEN_DBL_TEST (tan (M_PI / 2.0));
943  GEN_DBL_TEST (tan (-M_PI / 2.0));
944  GEN_DBL_TEST (tan (M_PI / 3.0));
945  GEN_DBL_TEST (tan (-M_PI / 3.0));
946  GEN_DBL_TEST (tan (M_PI / 4.0));
947  GEN_DBL_TEST (tan (-M_PI / 4.0));
948  GEN_DBL_TEST (tan (M_PI / 6.0));
949  GEN_DBL_TEST (tan (-M_PI / 6.0));
950  GEN_DBL_TEST (tan (M_PI * 2.0 / 3.0));
951  GEN_DBL_TEST (tan (-M_PI * 2.0 / 3.0));
952  GEN_DBL_TEST (tan (M_PI * 5.0 / 6.0));
953  GEN_DBL_TEST (tan (-M_PI * 5.0 / 6.0));
954  GEN_DBL_TEST (tan (3.7e-9));
955  GEN_DBL_TEST (tan (-3.7e-9));
956  GEN_DBL_TEST (tan (3.8e-9));
957  GEN_DBL_TEST (tan (-3.8e-9));
958  GEN_DBL_TEST (tan (0.6));
959  GEN_DBL_TEST (tan (-0.6));
960  GEN_DBL_TEST (tan (0.7));
961  GEN_DBL_TEST (tan (-0.7));
962  GEN_DBL_TEST (tan (3.0));
963  GEN_DBL_TEST (tan (-3.0));
964  GEN_DBL_TEST (tan (4.0));
965  GEN_DBL_TEST (tan (-4.0));
966  GEN_DBL_TEST (tan (6.0));
967  GEN_DBL_TEST (tan (-6.0));
968  GEN_DBL_TEST (tan (7.0));
969  GEN_DBL_TEST (tan (-7.0));
970
971    /* cosh tests */
972  GEN_DBL_TEST (cosh (0.0));
973  GEN_DBL_TEST (cosh (-0.0));
974  GEN_DBL_TEST (cosh (1.0));
975  GEN_DBL_TEST (cosh (-1.0));
976  GEN_DBL_TEST (cosh (INFINITY));
977  GEN_DBL_TEST (cosh (-INFINITY));
978  GEN_DBL_TEST (cosh (NAN));
979  GEN_DBL_TEST (cosh (M_PI));
980  GEN_DBL_TEST (cosh (-M_PI));
981  GEN_DBL_TEST (cosh (2.0 * M_PI));
982  GEN_DBL_TEST (cosh (-2.0 * M_PI));
983  GEN_DBL_TEST (cosh (M_PI / 2.0));
984  GEN_DBL_TEST (cosh (-M_PI / 2.0));
985  GEN_DBL_TEST (cosh (M_PI / 3.0));
986  GEN_DBL_TEST (cosh (-M_PI / 3.0));
987  GEN_DBL_TEST (cosh (M_PI / 4.0));
988  GEN_DBL_TEST (cosh (-M_PI / 4.0));
989  GEN_DBL_TEST (cosh (M_PI / 6.0));
990  GEN_DBL_TEST (cosh (-M_PI / 6.0));
991  GEN_DBL_TEST (cosh (M_PI * 2.0 / 3.0));
992  GEN_DBL_TEST (cosh (-M_PI * 2.0 / 3.0));
993  GEN_DBL_TEST (cosh (M_PI * 5.0 / 6.0));
994  GEN_DBL_TEST (cosh (-M_PI * 5.0 / 6.0));
995  GEN_DBL_TEST (cosh (6.9e-18));
996  GEN_DBL_TEST (cosh (-6.9e-18));
997  GEN_DBL_TEST (cosh (7.0e-18));
998  GEN_DBL_TEST (cosh (-7.0e-18));
999  GEN_DBL_TEST (cosh (7.4e-9));
1000  GEN_DBL_TEST (cosh (-7.4e-9));
1001  GEN_DBL_TEST (cosh (7.5e-9));
1002  GEN_DBL_TEST (cosh (-7.5e-9));
1003  GEN_DBL_TEST (cosh (0.2));
1004  GEN_DBL_TEST (cosh (-0.2));
1005  GEN_DBL_TEST (cosh (0.4));
1006  GEN_DBL_TEST (cosh (-0.4));
1007  GEN_DBL_TEST (cosh (0.7));
1008  GEN_DBL_TEST (cosh (-0.7));
1009  GEN_DBL_TEST (cosh (0.8));
1010  GEN_DBL_TEST (cosh (-0.8));
1011  GEN_DBL_TEST (cosh (3.0));
1012  GEN_DBL_TEST (cosh (-3.0));
1013  GEN_DBL_TEST (cosh (4.0));
1014  GEN_DBL_TEST (cosh (-4.0));
1015  GEN_DBL_TEST (cosh (6.0));
1016  GEN_DBL_TEST (cosh (-6.0));
1017  GEN_DBL_TEST (cosh (7.0));
1018  GEN_DBL_TEST (cosh (-7.0));
1019
1020  /* sinh tests */
1021  GEN_DBL_TEST (sinh (0.0));
1022  GEN_DBL_TEST (sinh (-0.0));
1023  GEN_DBL_TEST (sinh (1.0));
1024  GEN_DBL_TEST (sinh (-1.0));
1025  GEN_DBL_TEST (sinh (INFINITY));
1026  GEN_DBL_TEST (sinh (-INFINITY));
1027  GEN_DBL_TEST (sinh (NAN));
1028  GEN_DBL_TEST (sinh (M_PI));
1029  GEN_DBL_TEST (sinh (-M_PI));
1030  GEN_DBL_TEST (sinh (2.0 * M_PI));
1031  GEN_DBL_TEST (sinh (-2.0 * M_PI));
1032  GEN_DBL_TEST (sinh (M_PI / 2.0));
1033  GEN_DBL_TEST (sinh (-M_PI / 2.0));
1034  GEN_DBL_TEST (sinh (M_PI / 3.0));
1035  GEN_DBL_TEST (sinh (-M_PI / 3.0));
1036  GEN_DBL_TEST (sinh (M_PI / 4.0));
1037  GEN_DBL_TEST (sinh (-M_PI / 4.0));
1038  GEN_DBL_TEST (sinh (M_PI / 6.0));
1039  GEN_DBL_TEST (sinh (-M_PI / 6.0));
1040  GEN_DBL_TEST (sinh (M_PI * 2.0 / 3.0));
1041  GEN_DBL_TEST (sinh (-M_PI * 2.0 / 3.0));
1042  GEN_DBL_TEST (sinh (M_PI * 5.0 / 6.0));
1043  GEN_DBL_TEST (sinh (-M_PI * 5.0 / 6.0));
1044  GEN_DBL_TEST (sinh (6.9e-18));
1045  GEN_DBL_TEST (sinh (-6.9e-18));
1046  GEN_DBL_TEST (sinh (7.0e-18));
1047  GEN_DBL_TEST (sinh (-7.0e-18));
1048  GEN_DBL_TEST (sinh (7.4e-9));
1049  GEN_DBL_TEST (sinh (-7.4e-9));
1050  GEN_DBL_TEST (sinh (7.5e-9));
1051  GEN_DBL_TEST (sinh (-7.5e-9));
1052  GEN_DBL_TEST (sinh (0.2));
1053  GEN_DBL_TEST (sinh (-0.2));
1054  GEN_DBL_TEST (sinh (0.4));
1055  GEN_DBL_TEST (sinh (-0.4));
1056  GEN_DBL_TEST (sinh (0.7));
1057  GEN_DBL_TEST (sinh (-0.7));
1058  GEN_DBL_TEST (sinh (0.8));
1059  GEN_DBL_TEST (sinh (-0.8));
1060  GEN_DBL_TEST (sinh (3.0));
1061  GEN_DBL_TEST (sinh (-3.0));
1062  GEN_DBL_TEST (sinh (4.0));
1063  GEN_DBL_TEST (sinh (-4.0));
1064  GEN_DBL_TEST (sinh (6.0));
1065  GEN_DBL_TEST (sinh (-6.0));
1066  GEN_DBL_TEST (sinh (7.0));
1067  GEN_DBL_TEST (sinh (-7.0));
1068
1069  /* tanh tests */
1070  GEN_DBL_TEST (tanh (0.0));
1071  GEN_DBL_TEST (tanh (-0.0));
1072  GEN_DBL_TEST (tanh (1.0));
1073  GEN_DBL_TEST (tanh (-1.0));
1074  GEN_DBL_TEST (tanh (INFINITY));
1075  GEN_DBL_TEST (tanh (-INFINITY));
1076  GEN_DBL_TEST (tanh (NAN));
1077  GEN_DBL_TEST (tanh (M_PI));
1078  GEN_DBL_TEST (tanh (-M_PI));
1079  GEN_DBL_TEST (tanh (2.0 * M_PI));
1080  GEN_DBL_TEST (tanh (-2.0 * M_PI));
1081  GEN_DBL_TEST (tanh (M_PI / 2.0));
1082  GEN_DBL_TEST (tanh (-M_PI / 2.0));
1083  GEN_DBL_TEST (tanh (M_PI / 3.0));
1084  GEN_DBL_TEST (tanh (-M_PI / 3.0));
1085  GEN_DBL_TEST (tanh (M_PI / 4.0));
1086  GEN_DBL_TEST (tanh (-M_PI / 4.0));
1087  GEN_DBL_TEST (tanh (M_PI / 6.0));
1088  GEN_DBL_TEST (tanh (-M_PI / 6.0));
1089  GEN_DBL_TEST (tanh (M_PI * 2.0 / 3.0));
1090  GEN_DBL_TEST (tanh (-M_PI * 2.0 / 3.0));
1091  GEN_DBL_TEST (tanh (M_PI * 5.0 / 6.0));
1092  GEN_DBL_TEST (tanh (-M_PI * 5.0 / 6.0));
1093  GEN_DBL_TEST (tanh (6.9e-18));
1094  GEN_DBL_TEST (tanh (-6.9e-18));
1095  GEN_DBL_TEST (tanh (7.0e-18));
1096  GEN_DBL_TEST (tanh (-7.0e-18));
1097  GEN_DBL_TEST (tanh (7.4e-9));
1098  GEN_DBL_TEST (tanh (-7.4e-9));
1099  GEN_DBL_TEST (tanh (7.5e-9));
1100  GEN_DBL_TEST (tanh (-7.5e-9));
1101  GEN_DBL_TEST (tanh (0.2));
1102  GEN_DBL_TEST (tanh (-0.2));
1103  GEN_DBL_TEST (tanh (0.4));
1104  GEN_DBL_TEST (tanh (-0.4));
1105  GEN_DBL_TEST (tanh (0.7));
1106  GEN_DBL_TEST (tanh (-0.7));
1107  GEN_DBL_TEST (tanh (0.8));
1108  GEN_DBL_TEST (tanh (-0.8));
1109  GEN_DBL_TEST (tanh (3.0));
1110  GEN_DBL_TEST (tanh (-3.0));
1111  GEN_DBL_TEST (tanh (4.0));
1112  GEN_DBL_TEST (tanh (-4.0));
1113  GEN_DBL_TEST (tanh (6.0));
1114  GEN_DBL_TEST (tanh (-6.0));
1115  GEN_DBL_TEST (tanh (7.0));
1116  GEN_DBL_TEST (tanh (-7.0));
1117} /* main */
1118