19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
23 */
24 /*
25 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
26 * Use is subject to license terms.
27 */
28
29 #ifndef _ISO_MATH_C99_H
30 #define _ISO_MATH_C99_H
31
32 #include <sys/isa_defs.h>
33 #include <sys/feature_tests.h>
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 #ifndef __P
40 #ifdef __STDC__
41 #define __P(p) p
42 #else
43 #define __P(p) ()
44 #endif
45 #endif /* !defined(__P) */
46
47 #if defined(_STDC_C99) || _XOPEN_SOURCE - 0 >= 600 || defined(__C99FEATURES__)
48 #if defined(__GNUC__)
49 #undef HUGE_VAL
50 #define HUGE_VAL (__builtin_huge_val())
51 #undef HUGE_VALF
52 #define HUGE_VALF (__builtin_huge_valf())
53 #undef HUGE_VALL
54 #define HUGE_VALL (__builtin_huge_vall())
55 #undef INFINITY
56 #define INFINITY (__builtin_inff())
57 #undef NAN
58 #define NAN (__builtin_nanf(""))
59
60 /*
61 * C99 7.12.3 classification macros
62 */
63 #undef isnan
64 #undef isinf
65 #if __GNUC__ >= 4
66 #define isnan(x) __builtin_isnan(x)
67 #define isinf(x) __builtin_isinf(x)
68 #else
69 #define isnan(x) __extension__( \
70 { __typeof(x) __x_n = (x); \
71 __builtin_isunordered(__x_n, __x_n); })
72 #define isinf(x) __extension__( \
73 { __typeof(x) __x_i = (x); \
74 __x_i == (__typeof(__x_i)) INFINITY || \
75 __x_i == (__typeof(__x_i)) (-INFINITY); })
76 #endif
77 #undef isfinite
78 #define isfinite(x) __extension__( \
79 { __typeof(x) __x_f = (x); \
80 !isnan(__x_f) && !isinf(__x_f); })
81 #undef isnormal
82 #define isnormal(x) __extension__( \
83 { __typeof(x) __x_r = (x); isfinite(__x_r) && \
84 (sizeof (__x_r) == sizeof (float) ? \
85 __builtin_fabsf(__x_r) >= __FLT_MIN__ : \
86 sizeof (__x_r) == sizeof (double) ? \
87 __builtin_fabs(__x_r) >= __DBL_MIN__ : \
88 __builtin_fabsl(__x_r) >= __LDBL_MIN__); })
89 #undef fpclassify
90 #define fpclassify(x) __extension__( \
91 { __typeof(x) __x_c = (x); \
92 isnan(__x_c) ? FP_NAN : \
93 isinf(__x_c) ? FP_INFINITE : \
94 isnormal(__x_c) ? FP_NORMAL : \
95 __x_c == (__typeof(__x_c)) 0 ? FP_ZERO : \
96 FP_SUBNORMAL; })
97 #undef signbit
98 #if defined(_BIG_ENDIAN)
99 #define signbit(x) __extension__( \
100 { __typeof(x) __x_s = (x); \
101 (int) (*(unsigned *) &__x_s >> 31); })
102 #elif defined(_LITTLE_ENDIAN)
103 #define signbit(x) __extension__( \
104 { __typeof(x) __x_s = (x); \
105 (sizeof (__x_s) == sizeof (float) ? \
106 (int) (*(unsigned *) &__x_s >> 31) : \
107 sizeof (__x_s) == sizeof (double) ? \
108 (int) (((unsigned *) &__x_s)[1] >> 31) : \
109 (int) (((unsigned short *) &__x_s)[4] >> 15)); })
110 #endif
111
112 /*
113 * C99 7.12.14 comparison macros
114 */
115 #undef isgreater
116 #define isgreater(x, y) __builtin_isgreater(x, y)
117 #undef isgreaterequal
118 #define isgreaterequal(x, y) __builtin_isgreaterequal(x, y)
119 #undef isless
120 #define isless(x, y) __builtin_isless(x, y)
121 #undef islessequal
122 #define islessequal(x, y) __builtin_islessequal(x, y)
123 #undef islessgreater
124 #define islessgreater(x, y) __builtin_islessgreater(x, y)
125 #undef isunordered
126 #define isunordered(x, y) __builtin_isunordered(x, y)
127 #else /* defined(__GNUC__) */
128 #undef HUGE_VAL
129 #define HUGE_VAL __builtin_huge_val
130 #undef HUGE_VALF
173 #if defined(__EXTENSIONS__) || defined(_STDC_C99) || \
174 (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
175 defined(__C99FEATURES__)
176 #if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ - 0 == 0
177 typedef float float_t;
178 typedef double double_t;
179 #elif __FLT_EVAL_METHOD__ - 0 == 1
180 typedef double float_t;
181 typedef double double_t;
182 #elif __FLT_EVAL_METHOD__ - 0 == 2
183 typedef long double float_t;
184 typedef long double double_t;
185 #elif defined(__sparc) || defined(__amd64)
186 typedef float float_t;
187 typedef double double_t;
188 #elif defined(__i386)
189 typedef long double float_t;
190 typedef long double double_t;
191 #endif
192
193 #undef FP_ZERO
194 #define FP_ZERO 0
195 #undef FP_SUBNORMAL
196 #define FP_SUBNORMAL 1
197 #undef FP_NORMAL
198 #define FP_NORMAL 2
199 #undef FP_INFINITE
200 #define FP_INFINITE 3
201 #undef FP_NAN
202 #define FP_NAN 4
203
204 #undef FP_ILOGB0
205 #define FP_ILOGB0 (-2147483647)
206 #undef FP_ILOGBNAN
207 #define FP_ILOGBNAN 2147483647
208
209 #undef MATH_ERRNO
210 #define MATH_ERRNO 1
211 #undef MATH_ERREXCEPT
212 #define MATH_ERREXCEPT 2
213 #undef math_errhandling
214 #define math_errhandling MATH_ERREXCEPT
215
216 extern double acosh __P((double));
217 extern double asinh __P((double));
218 extern double atanh __P((double));
219
220 extern double exp2 __P((double));
221 extern double expm1 __P((double));
222 extern int ilogb __P((double));
223 extern double log1p __P((double));
224 extern double log2 __P((double));
225 extern double logb __P((double));
226 extern double scalbn __P((double, int));
227 extern double scalbln __P((double, long int));
228
229 extern double cbrt __P((double));
230 extern double hypot __P((double, double));
231
232 extern double erf __P((double));
233 extern double erfc __P((double));
234 extern double lgamma __P((double));
235 extern double tgamma __P((double));
236
237 extern double nearbyint __P((double));
238 extern double rint __P((double));
239 extern long int lrint __P((double));
240 extern double round __P((double));
241 extern long int lround __P((double));
242 extern double trunc __P((double));
243
244 extern double remainder __P((double, double));
245 extern double remquo __P((double, double, int *));
246
247 extern double copysign __P((double, double));
248 extern double nan __P((const char *));
249 extern double nextafter __P((double, double));
250 extern double nexttoward __P((double, long double));
251
252 extern double fdim __P((double, double));
253 extern double fmax __P((double, double));
254 extern double fmin __P((double, double));
255
256 extern double fma __P((double, double, double));
257
258 extern float acosf __P((float));
259 extern float asinf __P((float));
260 extern float atanf __P((float));
261 extern float atan2f __P((float, float));
262 extern float cosf __P((float));
263 extern float sinf __P((float));
264 extern float tanf __P((float));
265
266 extern float acoshf __P((float));
267 extern float asinhf __P((float));
268 extern float atanhf __P((float));
269 extern float coshf __P((float));
270 extern float sinhf __P((float));
271 extern float tanhf __P((float));
272
273 extern float expf __P((float));
274 extern float exp2f __P((float));
275 extern float expm1f __P((float));
276 extern float frexpf __P((float, int *));
277 extern int ilogbf __P((float));
278 extern float ldexpf __P((float, int));
279 extern float logf __P((float));
280 extern float log10f __P((float));
281 extern float log1pf __P((float));
282 extern float log2f __P((float));
283 extern float logbf __P((float));
284 extern float modff __P((float, float *));
285 extern float scalbnf __P((float, int));
286 extern float scalblnf __P((float, long int));
287
288 extern float cbrtf __P((float));
289 extern float fabsf __P((float));
290 extern float hypotf __P((float, float));
291 extern float powf __P((float, float));
292 extern float sqrtf __P((float));
293
294 extern float erff __P((float));
295 extern float erfcf __P((float));
296 extern float lgammaf __P((float));
297 extern float tgammaf __P((float));
298
299 extern float ceilf __P((float));
300 extern float floorf __P((float));
301 extern float nearbyintf __P((float));
302 extern float rintf __P((float));
303 extern long int lrintf __P((float));
304 extern float roundf __P((float));
305 extern long int lroundf __P((float));
306 extern float truncf __P((float));
307
308 extern float fmodf __P((float, float));
309 extern float remainderf __P((float, float));
310 extern float remquof __P((float, float, int *));
311
312 extern float copysignf __P((float, float));
313 extern float nanf __P((const char *));
314 extern float nextafterf __P((float, float));
315 extern float nexttowardf __P((float, long double));
316
317 extern float fdimf __P((float, float));
318 extern float fmaxf __P((float, float));
319 extern float fminf __P((float, float));
320
321 extern float fmaf __P((float, float, float));
322
323 extern long double acosl __P((long double));
324 extern long double asinl __P((long double));
325 extern long double atanl __P((long double));
326 extern long double atan2l __P((long double, long double));
327 extern long double cosl __P((long double));
328 extern long double sinl __P((long double));
329 extern long double tanl __P((long double));
330
331 extern long double acoshl __P((long double));
332 extern long double asinhl __P((long double));
333 extern long double atanhl __P((long double));
334 extern long double coshl __P((long double));
335 extern long double sinhl __P((long double));
336 extern long double tanhl __P((long double));
337
338 extern long double expl __P((long double));
339 extern long double exp2l __P((long double));
340 extern long double expm1l __P((long double));
341 extern long double frexpl __P((long double, int *));
342 extern int ilogbl __P((long double));
343 extern long double ldexpl __P((long double, int));
344 extern long double logl __P((long double));
345 extern long double log10l __P((long double));
346 extern long double log1pl __P((long double));
347 extern long double log2l __P((long double));
348 extern long double logbl __P((long double));
349 extern long double modfl __P((long double, long double *));
350 extern long double scalbnl __P((long double, int));
351 extern long double scalblnl __P((long double, long int));
352
353 extern long double cbrtl __P((long double));
354 extern long double fabsl __P((long double));
355 extern long double hypotl __P((long double, long double));
356 extern long double powl __P((long double, long double));
357 extern long double sqrtl __P((long double));
358
359 extern long double erfl __P((long double));
360 extern long double erfcl __P((long double));
361 extern long double lgammal __P((long double));
362 extern long double tgammal __P((long double));
363
364 extern long double ceill __P((long double));
365 extern long double floorl __P((long double));
366 extern long double nearbyintl __P((long double));
367 extern long double rintl __P((long double));
368 extern long int lrintl __P((long double));
369 extern long double roundl __P((long double));
370 extern long int lroundl __P((long double));
371 extern long double truncl __P((long double));
372
373 extern long double fmodl __P((long double, long double));
374 extern long double remainderl __P((long double, long double));
375 extern long double remquol __P((long double, long double, int *));
376
377 extern long double copysignl __P((long double, long double));
378 extern long double nanl __P((const char *));
379 extern long double nextafterl __P((long double, long double));
380 extern long double nexttowardl __P((long double, long double));
381
382 extern long double fdiml __P((long double, long double));
383 extern long double fmaxl __P((long double, long double));
384 extern long double fminl __P((long double, long double));
385
386 extern long double fmal __P((long double, long double, long double));
387
388 #if !defined(_STRICT_STDC) && !defined(_NO_LONGLONG) || defined(_STDC_C99) || \
389 defined(__C99FEATURES__)
390 extern long long int llrint __P((double));
391 extern long long int llround __P((double));
392
393 extern long long int llrintf __P((float));
394 extern long long int llroundf __P((float));
395
396 extern long long int llrintl __P((long double));
397 extern long long int llroundl __P((long double));
398 #endif
399
400 #if !defined(__cplusplus)
401 #pragma does_not_read_global_data(asinh, exp2, expm1)
402 #pragma does_not_read_global_data(ilogb, log2)
403 #pragma does_not_read_global_data(scalbn, scalbln, cbrt)
404 #pragma does_not_read_global_data(erf, erfc, tgamma)
405 #pragma does_not_read_global_data(nearbyint, rint, lrint, round, lround, trunc)
406 #pragma does_not_read_global_data(remquo)
407 #pragma does_not_read_global_data(copysign, nan, nexttoward)
408 #pragma does_not_read_global_data(fdim, fmax, fmin, fma)
409 #pragma does_not_write_global_data(asinh, exp2, expm1)
410 #pragma does_not_write_global_data(ilogb, log2)
411 #pragma does_not_write_global_data(scalbn, scalbln, cbrt)
412 #pragma does_not_write_global_data(erf, erfc, tgamma)
413 #pragma does_not_write_global_data(nearbyint, rint, lrint, round, lround, trunc)
414 #pragma does_not_write_global_data(copysign, nan, nexttoward)
415 #pragma does_not_write_global_data(fdim, fmax, fmin, fma)
416
417 #pragma does_not_read_global_data(acosf, asinf, atanf, atan2f)
|
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
23 */
24 /*
25 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
26 * Use is subject to license terms.
27 */
28
29 #ifndef _ISO_MATH_C99_H
30 #define _ISO_MATH_C99_H
31
32 #include <sys/isa_defs.h>
33 #include <sys/feature_tests.h>
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 #undef FP_ZERO
40 #define FP_ZERO 0
41 #undef FP_SUBNORMAL
42 #define FP_SUBNORMAL 1
43 #undef FP_NORMAL
44 #define FP_NORMAL 2
45 #undef FP_INFINITE
46 #define FP_INFINITE 3
47 #undef FP_NAN
48 #define FP_NAN 4
49
50 #if defined(_STDC_C99) || _XOPEN_SOURCE - 0 >= 600 || defined(__C99FEATURES__)
51 #if defined(__GNUC__)
52 #undef HUGE_VAL
53 #define HUGE_VAL (__builtin_huge_val())
54 #undef HUGE_VALF
55 #define HUGE_VALF (__builtin_huge_valf())
56 #undef HUGE_VALL
57 #define HUGE_VALL (__builtin_huge_vall())
58 #undef INFINITY
59 #define INFINITY (__builtin_inff())
60 #undef NAN
61 #define NAN (__builtin_nanf(""))
62
63 /*
64 * C99 7.12.3 classification macros
65 */
66 #undef isnan
67 #undef isinf
68 #if __GNUC__ >= 4
69 #define isnan(x) __builtin_isnan(x)
70 #define isinf(x) __builtin_isinf(x)
71 #define fpclassify(x) __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, \
72 FP_SUBNORMAL, FP_ZERO, x)
73 #define isfinite(x) __builtin_isfinite(x)
74 #define isnormal(x) __builtin_isnormal(x)
75 #define signbit(x) __builtin_signbit(x)
76 #else /* __GNUC__ >= 4 */
77 #define isnan(x) __extension__( \
78 { __typeof(x) __x_n = (x); \
79 __builtin_isunordered(__x_n, __x_n); })
80 #define isinf(x) __extension__( \
81 { __typeof(x) __x_i = (x); \
82 __x_i == (__typeof(__x_i)) INFINITY || \
83 __x_i == (__typeof(__x_i)) (-INFINITY); })
84 #undef isfinite
85 #define isfinite(x) __extension__( \
86 { __typeof(x) __x_f = (x); \
87 !isnan(__x_f) && !isinf(__x_f); })
88 #undef isnormal
89 #define isnormal(x) __extension__( \
90 { __typeof(x) __x_r = (x); isfinite(__x_r) && \
91 (sizeof (__x_r) == sizeof (float) ? \
92 __builtin_fabsf(__x_r) >= __FLT_MIN__ : \
93 sizeof (__x_r) == sizeof (double) ? \
94 __builtin_fabs(__x_r) >= __DBL_MIN__ : \
95 __builtin_fabsl(__x_r) >= __LDBL_MIN__); })
96 #undef fpclassify
97 #define fpclassify(x) __extension__( \
98 { __typeof(x) __x_c = (x); \
99 isnan(__x_c) ? FP_NAN : \
100 isinf(__x_c) ? FP_INFINITE : \
101 isnormal(__x_c) ? FP_NORMAL : \
102 __x_c == (__typeof(__x_c)) 0 ? FP_ZERO : \
103 FP_SUBNORMAL; })
104 #undef signbit
105 #if defined(_BIG_ENDIAN)
106 #define signbit(x) __extension__( \
107 { __typeof(x) __x_s = (x); \
108 (int)(*(unsigned *)&__x_s >> 31); })
109 #elif defined(_LITTLE_ENDIAN)
110 #define signbit(x) __extension__( \
111 { __typeof(x) __x_s = (x); \
112 (sizeof (__x_s) == sizeof (float) ? \
113 (int)(*(unsigned *)&__x_s >> 31) : \
114 sizeof (__x_s) == sizeof (double) ? \
115 (int)(((unsigned *)&__x_s)[1] >> 31) : \
116 (int)(((unsigned short *)&__x_s)[4] >> 15)); })
117 #endif /* defined(_BIG_ENDIAN) */
118 #endif /* __GNUC__ >= 4 */
119
120 /*
121 * C99 7.12.14 comparison macros
122 */
123 #undef isgreater
124 #define isgreater(x, y) __builtin_isgreater(x, y)
125 #undef isgreaterequal
126 #define isgreaterequal(x, y) __builtin_isgreaterequal(x, y)
127 #undef isless
128 #define isless(x, y) __builtin_isless(x, y)
129 #undef islessequal
130 #define islessequal(x, y) __builtin_islessequal(x, y)
131 #undef islessgreater
132 #define islessgreater(x, y) __builtin_islessgreater(x, y)
133 #undef isunordered
134 #define isunordered(x, y) __builtin_isunordered(x, y)
135 #else /* defined(__GNUC__) */
136 #undef HUGE_VAL
137 #define HUGE_VAL __builtin_huge_val
138 #undef HUGE_VALF
181 #if defined(__EXTENSIONS__) || defined(_STDC_C99) || \
182 (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
183 defined(__C99FEATURES__)
184 #if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ - 0 == 0
185 typedef float float_t;
186 typedef double double_t;
187 #elif __FLT_EVAL_METHOD__ - 0 == 1
188 typedef double float_t;
189 typedef double double_t;
190 #elif __FLT_EVAL_METHOD__ - 0 == 2
191 typedef long double float_t;
192 typedef long double double_t;
193 #elif defined(__sparc) || defined(__amd64)
194 typedef float float_t;
195 typedef double double_t;
196 #elif defined(__i386)
197 typedef long double float_t;
198 typedef long double double_t;
199 #endif
200
201 #undef FP_ILOGB0
202 #define FP_ILOGB0 (-2147483647)
203 #undef FP_ILOGBNAN
204 #define FP_ILOGBNAN 2147483647
205
206 #undef MATH_ERRNO
207 #define MATH_ERRNO 1
208 #undef MATH_ERREXCEPT
209 #define MATH_ERREXCEPT 2
210 #undef math_errhandling
211 #define math_errhandling MATH_ERREXCEPT
212
213 extern double acosh(double);
214 extern double asinh(double);
215 extern double atanh(double);
216
217 extern double exp2(double);
218 extern double expm1(double);
219 extern int ilogb(double);
220 extern double log1p(double);
221 extern double log2(double);
222 extern double logb(double);
223 extern double scalbn(double, int);
224 extern double scalbln(double, long int);
225
226 extern double cbrt(double);
227 extern double hypot(double, double);
228
229 extern double erf(double);
230 extern double erfc(double);
231 extern double lgamma(double);
232 extern double tgamma(double);
233
234 extern double nearbyint(double);
235 extern double rint(double);
236 extern long int lrint(double);
237 extern double round(double);
238 extern long int lround(double);
239 extern double trunc(double);
240
241 extern double remainder(double, double);
242 extern double remquo(double, double, int *);
243
244 extern double copysign(double, double);
245 extern double nan(const char *);
246 extern double nextafter(double, double);
247 extern double nexttoward(double, long double);
248
249 extern double fdim(double, double);
250 extern double fmax(double, double);
251 extern double fmin(double, double);
252
253 extern double fma(double, double, double);
254
255 extern float acosf(float);
256 extern float asinf(float);
257 extern float atanf(float);
258 extern float atan2f(float, float);
259 extern float cosf(float);
260 extern float sinf(float);
261 extern float tanf(float);
262
263 extern float acoshf(float);
264 extern float asinhf(float);
265 extern float atanhf(float);
266 extern float coshf(float);
267 extern float sinhf(float);
268 extern float tanhf(float);
269
270 extern float expf(float);
271 extern float exp2f(float);
272 extern float expm1f(float);
273 extern float frexpf(float, int *);
274 extern int ilogbf(float);
275 extern float ldexpf(float, int);
276 extern float logf(float);
277 extern float log10f(float);
278 extern float log1pf(float);
279 extern float log2f(float);
280 extern float logbf(float);
281 extern float modff(float, float *);
282 extern float scalbnf(float, int);
283 extern float scalblnf(float, long int);
284
285 extern float cbrtf(float);
286 extern float fabsf(float);
287 extern float hypotf(float, float);
288 extern float powf(float, float);
289 extern float sqrtf(float);
290
291 extern float erff(float);
292 extern float erfcf(float);
293 extern float lgammaf(float);
294 extern float tgammaf(float);
295
296 extern float ceilf(float);
297 extern float floorf(float);
298 extern float nearbyintf(float);
299 extern float rintf(float);
300 extern long int lrintf(float);
301 extern float roundf(float);
302 extern long int lroundf(float);
303 extern float truncf(float);
304
305 extern float fmodf(float, float);
306 extern float remainderf(float, float);
307 extern float remquof(float, float, int *);
308
309 extern float copysignf(float, float);
310 extern float nanf(const char *);
311 extern float nextafterf(float, float);
312 extern float nexttowardf(float, long double);
313
314 extern float fdimf(float, float);
315 extern float fmaxf(float, float);
316 extern float fminf(float, float);
317
318 extern float fmaf(float, float, float);
319
320 extern long double acosl(long double);
321 extern long double asinl(long double);
322 extern long double atanl(long double);
323 extern long double atan2l(long double, long double);
324 extern long double cosl(long double);
325 extern long double sinl(long double);
326 extern long double tanl(long double);
327
328 extern long double acoshl(long double);
329 extern long double asinhl(long double);
330 extern long double atanhl(long double);
331 extern long double coshl(long double);
332 extern long double sinhl(long double);
333 extern long double tanhl(long double);
334
335 extern long double expl(long double);
336 extern long double exp2l(long double);
337 extern long double expm1l(long double);
338 extern long double frexpl(long double, int *);
339 extern int ilogbl(long double);
340 extern long double ldexpl(long double, int);
341 extern long double logl(long double);
342 extern long double log10l(long double);
343 extern long double log1pl(long double);
344 extern long double log2l(long double);
345 extern long double logbl(long double);
346 extern long double modfl(long double, long double *);
347 extern long double scalbnl(long double, int);
348 extern long double scalblnl(long double, long int);
349
350 extern long double cbrtl(long double);
351 extern long double fabsl(long double);
352 extern long double hypotl(long double, long double);
353 extern long double powl(long double, long double);
354 extern long double sqrtl(long double);
355
356 extern long double erfl(long double);
357 extern long double erfcl(long double);
358 extern long double lgammal(long double);
359 extern long double tgammal(long double);
360
361 extern long double ceill(long double);
362 extern long double floorl(long double);
363 extern long double nearbyintl(long double);
364 extern long double rintl(long double);
365 extern long int lrintl(long double);
366 extern long double roundl(long double);
367 extern long int lroundl(long double);
368 extern long double truncl(long double);
369
370 extern long double fmodl(long double, long double);
371 extern long double remainderl(long double, long double);
372 extern long double remquol(long double, long double, int *);
373
374 extern long double copysignl(long double, long double);
375 extern long double nanl(const char *);
376 extern long double nextafterl(long double, long double);
377 extern long double nexttowardl(long double, long double);
378
379 extern long double fdiml(long double, long double);
380 extern long double fmaxl(long double, long double);
381 extern long double fminl(long double, long double);
382
383 extern long double fmal(long double, long double, long double);
384
385 #if !defined(_STRICT_STDC) && !defined(_NO_LONGLONG) || defined(_STDC_C99) || \
386 defined(__C99FEATURES__)
387 extern long long int llrint(double);
388 extern long long int llround(double);
389
390 extern long long int llrintf(float);
391 extern long long int llroundf(float);
392
393 extern long long int llrintl(long double);
394 extern long long int llroundl(long double);
395 #endif
396
397 #if !defined(__cplusplus)
398 #pragma does_not_read_global_data(asinh, exp2, expm1)
399 #pragma does_not_read_global_data(ilogb, log2)
400 #pragma does_not_read_global_data(scalbn, scalbln, cbrt)
401 #pragma does_not_read_global_data(erf, erfc, tgamma)
402 #pragma does_not_read_global_data(nearbyint, rint, lrint, round, lround, trunc)
403 #pragma does_not_read_global_data(remquo)
404 #pragma does_not_read_global_data(copysign, nan, nexttoward)
405 #pragma does_not_read_global_data(fdim, fmax, fmin, fma)
406 #pragma does_not_write_global_data(asinh, exp2, expm1)
407 #pragma does_not_write_global_data(ilogb, log2)
408 #pragma does_not_write_global_data(scalbn, scalbln, cbrt)
409 #pragma does_not_write_global_data(erf, erfc, tgamma)
410 #pragma does_not_write_global_data(nearbyint, rint, lrint, round, lround, trunc)
411 #pragma does_not_write_global_data(copysign, nan, nexttoward)
412 #pragma does_not_write_global_data(fdim, fmax, fmin, fma)
413
414 #pragma does_not_read_global_data(acosf, asinf, atanf, atan2f)
|