| ... |
... |
@@ -62,20 +62,26 @@ extern void cr_sincosf(float, float *, float *); |
|
62
|
62
|
*/
|
|
63
|
63
|
|
|
64
|
64
|
#define MAYBE_SIGNAL_INVALID(test, val) \
|
|
65
|
|
- if ((test)) { \
|
|
66
|
|
- return fdlibm_setexception(val, FDLIBM_INVALID); \
|
|
67
|
|
- }
|
|
|
65
|
+ do { \
|
|
|
66
|
+ if ((test)) { \
|
|
|
67
|
+ return fdlibm_setexception(val, FDLIBM_INVALID); \
|
|
|
68
|
+ } \
|
|
|
69
|
+ } while (0)
|
|
|
70
|
+
|
|
68
|
71
|
|
|
69
|
72
|
#define MAYBE_SIGNAL_OVERFLOW(x) \
|
|
70
|
|
- if (isinf(x)) { \
|
|
71
|
|
- return fdlibm_setexception(x, FDLIBM_OVERFLOW); \
|
|
72
|
|
- }
|
|
|
73
|
+ do { \
|
|
|
74
|
+ if (isinf(x)) { \
|
|
|
75
|
+ return fdlibm_setexception(x, FDLIBM_OVERFLOW); \
|
|
|
76
|
+ } \
|
|
|
77
|
+ } while (0)
|
|
|
78
|
+
|
|
73
|
79
|
|
|
74
|
80
|
double
|
|
75
|
81
|
lisp_sin(double x)
|
|
76
|
82
|
{
|
|
77
|
83
|
#ifdef FEATURE_CORE_MATH
|
|
78
|
|
- MAYBE_SIGNAL_INVALID(isinf(x), x)
|
|
|
84
|
+ MAYBE_SIGNAL_INVALID(isinf(x), x);
|
|
79
|
85
|
|
|
80
|
86
|
return cr_sin(x);
|
|
81
|
87
|
#else
|
| ... |
... |
@@ -87,7 +93,7 @@ double |
|
87
|
93
|
lisp_cos(double x)
|
|
88
|
94
|
{
|
|
89
|
95
|
#ifdef FEATURE_CORE_MATH
|
|
90
|
|
- MAYBE_SIGNAL_INVALID(isinf(x), x)
|
|
|
96
|
+ MAYBE_SIGNAL_INVALID(isinf(x), x);
|
|
91
|
97
|
|
|
92
|
98
|
return cr_cos(x);
|
|
93
|
99
|
#else
|
| ... |
... |
@@ -99,7 +105,7 @@ double |
|
99
|
105
|
lisp_tan(double x)
|
|
100
|
106
|
{
|
|
101
|
107
|
#ifdef FEATURE_CORE_MATH
|
|
102
|
|
- MAYBE_SIGNAL_INVALID(isinf(x), x)
|
|
|
108
|
+ MAYBE_SIGNAL_INVALID(isinf(x), x);
|
|
103
|
109
|
|
|
104
|
110
|
return cr_tan(x);
|
|
105
|
111
|
#else
|
| ... |
... |
@@ -151,7 +157,7 @@ double |
|
151
|
157
|
lisp_sinh(double x)
|
|
152
|
158
|
{
|
|
153
|
159
|
#ifdef FEATURE_CORE_MATH
|
|
154
|
|
- MAYBE_SIGNAL_OVERFLOW(x)
|
|
|
160
|
+ MAYBE_SIGNAL_OVERFLOW(x);
|
|
155
|
161
|
|
|
156
|
162
|
return cr_sinh(x);
|
|
157
|
163
|
#else
|
| ... |
... |
@@ -183,7 +189,7 @@ double |
|
183
|
189
|
lisp_asinh(double x)
|
|
184
|
190
|
{
|
|
185
|
191
|
#ifdef FEATURE_CORE_MATH
|
|
186
|
|
- MAYBE_SIGNAL_OVERFLOW(x)
|
|
|
192
|
+ MAYBE_SIGNAL_OVERFLOW(x);
|
|
187
|
193
|
|
|
188
|
194
|
return cr_asinh(x);
|
|
189
|
195
|
#else
|
| ... |
... |
@@ -195,9 +201,9 @@ double |
|
195
|
201
|
lisp_acosh(double x)
|
|
196
|
202
|
{
|
|
197
|
203
|
#ifdef FEATURE_CORE_MATH
|
|
198
|
|
- MAYBE_SIGNAL_INVALID(x < 1, x)
|
|
|
204
|
+ MAYBE_SIGNAL_INVALID(x < 1, x);
|
|
199
|
205
|
|
|
200
|
|
- MAYBE_SIGNAL_OVERFLOW(x)
|
|
|
206
|
+ MAYBE_SIGNAL_OVERFLOW(x);
|
|
201
|
207
|
|
|
202
|
208
|
return cr_acosh(x);
|
|
203
|
209
|
#else
|