1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
|
constant HUGE_VAL
#if !defined ISO && !defined POSIX
# if !defined XPG3 && !defined XPG4 && !defined UNIX98
macro fpclassify
macro isfinite
macro isinf
macro isnan
macro isnormal
macro signbit
macro isgreater
macro isgreaterequal
macro isless
macro islessequal
macro islessgreater
macro isunordered
# endif
# if defined XPG3 || defined XPG4 || defined UNIX98
function double isnan (double)
# endif
# if !defined ISO99 && !defined ISO11 && !defined POSIX2008
constant M_E
constant M_LOG2E
constant M_LOG10E
constant M_LN2
constant M_LN10
constant M_PI
constant M_PI_2
constant M_PI_4
constant M_1_PI
constant M_2_PI
constant M_2_SQRTPI
constant M_SQRT2
constant M_SQRT1_2
constant MAXFLOAT
# endif
# if !defined XPG3 && !defined XPG4 && !defined UNIX98
constant HUGE_VALF
constant HUGE_VALL
constant INFINITY
constant NAN
macro FP_INFINITE
macro FP_NAN
macro FP_NORMAL
macro FP_SUBNORMAL
macro FP_ZERO
optional-macro FP_FAST_FMA
optional-macro FP_FAST_FMAF
optional-macro FP_FAST_FMAL
constant FP_ILOGB0
constant FP_ILOGBNAN
macro MATH_ERRNO == 1
macro MATH_ERREXCEPT == 2
macro math_errhandling
# endif
#endif
function double acos (double)
function double asin (double)
function double atan (double)
function double atan2 (double, double)
function double ceil (double)
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function double copysign (double, double)
#endif
function double cos (double)
function double cosh (double)
function double exp (double)
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function double exp2 (double)
#endif
function double fabs (double)
function double floor (double)
function double fmod (double, double)
function double frexp (double, int*)
function double ldexp (double, int)
function double log (double)
function double log10 (double)
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function double log2 (double)
#endif
function double modf (double, double*)
function double pow (double, double)
function double sin (double)
function double sinh (double)
function double sqrt (double)
function double tan (double)
function double tanh (double)
#if !defined ISO && !defined POSIX
function double erf (double)
function double erfc (double)
#endif
#if defined XPG3 || defined XPG4 || defined UNIX98
function double gamma (double)
#endif
#if !defined ISO && !defined POSIX
function double hypot (double, double)
# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function double j0 (double)
function double j1 (double)
function double jn (int, double)
# endif
function double lgamma (double)
# if !defined XPG3 && !defined XPG4 && !defined UNIX98
function double tgamma (double)
# endif
# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function double y0 (double)
function double y1 (double)
function double yn (int, double)
# endif
# if !defined XPG3
function double acosh (double)
function double asinh (double)
function double atanh (double)
function double cbrt (double)
function double expm1 (double)
function int ilogb (double)
function double log1p (double)
function double logb (double)
function double nextafter (double, double)
# if !defined XPG4 && !defined UNIX98
function double nexttoward (double, long double)
function double nearbyint (double)
# endif
function double remainder (double, double)
function double rint (double)
# if !defined XPG4 && !defined UNIX98
function double round (double)
function double trunc (double)
function long lrint (double)
function {long long} llrint (double)
function long lround (double)
function {long long} llround (double)
function double remquo (double, double, int*)
# endif
# if defined XPG4 || defined UNIX98 || defined XOPEN2K
function double scalb (double, double)
# endif
# if !defined XPG4 && !defined UNIX98
function double scalbn (double, int)
function double scalbln (double, long)
function double fdim (double, double)
function double fmax (double, double)
function double fmin (double, double)
function double fma (double, double, double)
function double nan (const char*)
# endif
# endif
# if !defined POSIX && !defined POSIX2008
// variable signgam
allow signgam
# endif
#endif
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function float acosf (float)
function float asinf (float)
function float atanf (float)
function float atan2f (float, float)
function float ceilf (float)
function float copysignf (float, float)
function float cosf (float)
function float coshf (float)
function float expf (float)
function float exp2f (float)
function float fabsf (float)
function float floorf (float)
function float fmodf (float, float)
function float frexpf (float, int*)
function float ldexpf (float, int)
function float logf (float)
function float log10f (float)
function float log2f (float)
function float modff (float, float*)
function float powf (float, float)
function float sinf (float)
function float sinhf (float)
function float sqrtf (float)
function float tanf (float)
function float tanhf (float)
function float erff (float)
function float erfcf (float)
function float hypotf (float, float)
#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function float j0f (float)
function float j1f (float)
function float jnf (int, float)
#endif
function float lgammaf (float)
function float tgammaf (float)
#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function float y0f (float)
function float y1f (float)
function float ynf (int, float)
#endif
function float acoshf (float)
function float asinhf (float)
function float atanhf (float)
function float cbrtf (float)
function float expm1f (float)
function int ilogbf (float)
function float log1pf (float)
function float logbf (float)
function float nextafterf (float, float)
function float nexttowardf (float, long double)
function float nearbyintf (float)
function float remainderf (float, float)
function float rintf (float)
function float roundf (float)
function float truncf (float)
function long lrintf (float)
function {long long} llrintf (float)
function long lroundf (float)
function {long long} llroundf (float)
function float remquof (float, float, int*)
function float scalbnf (float, int)
function float scalblnf (float, long)
function float fdimf (float, float)
function float fmaxf (float, float)
function float fminf (float, float)
function float fmaf (float, float, float)
function float nanf (const char*)
function {long double} acosl (long double)
function {long double} asinl (long double)
function {long double} atanl (long double)
function {long double} atan2l (long double, long double)
function {long double} ceill (long double)
function {long double} copysignl (long double, long double)
function {long double} cosl (long double)
function {long double} coshl (long double)
function {long double} expl (long double)
function {long double} exp2l (long double)
function {long double} fabsl (long double)
function {long double} floorl (long double)
function {long double} fmodl (long double, long double)
function {long double} frexpl (long double, int*)
function {long double} ldexpl (long double, int)
function {long double} logl (long double)
function {long double} log10l (long double)
function {long double} log2l (long double)
function {long double} modfl (long double, long double*)
function {long double} powl (long double, long double)
function {long double} sinl (long double)
function {long double} sinhl (long double)
function {long double} sqrtl (long double)
function {long double} tanl (long double)
function {long double} tanhl (long double)
function {long double} erfl (long double)
function {long double} erfcl (long double)
function {long double} hypotl (long double, long double)
#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function {long double} j0l (long double)
function {long double} j1l (long double)
function {long double} jnl (int, long double)
#endif
function {long double} lgammal (long double)
function {long double} tgammal (long double)
#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function {long double} y0l (long double)
function {long double} y1l (long double)
function {long double} ynl (int, long double)
#endif
function {long double} acoshl (long double)
function {long double} asinhl (long double)
function {long double} atanhl (long double)
function {long double} cbrtl (long double)
function {long double} expm1l (long double)
function int ilogbl (long double)
function {long double} log1pl (long double)
function {long double} logbl (long double)
function {long double} nextafterl (long double, long double)
function {long double} nexttowardl (long double, long double)
function {long double} nearbyintl (long double)
function {long double} remainderl (long double, long double)
function {long double} rintl (long double)
function {long double} roundl (long double)
function {long double} truncl (long double)
function long lrintl (long double)
function {long long} llrintl (long double)
function long lroundl (long double)
function {long long} llroundl (long double)
function {long double} remquol (long double, long double, int*)
function {long double} scalbnl (long double, int)
function {long double} scalblnl (long double, long)
function {long double} fdiml (long double, long double)
function {long double} fmaxl (long double, long double)
function {long double} fminl (long double, long double)
function {long double} fmal (long double, long double, long double)
function {long double} nanl (const char*)
#else
allow acosf
allow asinf
allow atanf
allow atan2f
allow ceilf
allow copysignf
allow cosf
allow coshf
allow expf
allow exp2f
allow fabsf
allow floorf
allow fmodf
allow frexpf
allow ldexpf
allow logf
allow log10f
allow log2f
allow powf
allow sinf
allow sinhf
allow sqrtf
allow tanf
allow tanhf
allow erff
allow erfcf
allow gammaf
allow hypotf
allow j0f
allow j1f
allow jnf
allow lgammaf
allow tgammaf
allow y0f
allow y1f
allow ynf
allow isnanf
allow acoshf
allow asinhf
allow atanhf
allow cbrtf
allow expm1f
allow ilogbf
allow log1pf
allow logbf
allow nextafterf
allow remainderf
allow rintf
allow scalbf
allow acosl
allow asinl
allow atanl
allow atan2l
allow ceill
allow copysignl
allow cosl
allow coshl
allow expl
allow exp2l
allow fabsl
allow floorl
allow fmodl
allow frexpl
allow ldexpl
allow logl
allow log10l
allow log2l
allow powl
allow sinl
allow sinhl
allow sqrtl
allow tanl
allow tanhl
allow erfl
allow erfcl
allow gammal
allow hypotl
allow j0l
allow j1l
allow jnl
allow lgammal
allow tgammal
allow y0l
allow y1l
allow ynl
allow isnanl
allow acoshl
allow asinhl
allow atanhl
allow cbrtl
allow expm1l
allow ilogbl
allow log1pl
allow logbl
allow nextafterl
allow remainderl
allow rintl
allow scalbl
#endif
allow *_t
// The following expressions are not entirely correct but the current
// poorfnmatch implementation doesn't grok the right form.
allow FP_*
|