1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 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 131 #define HUGE_VALF __builtin_huge_valf 132 #undef HUGE_VALL 133 #define HUGE_VALL __builtin_huge_vall 134 #undef INFINITY 135 #define INFINITY __builtin_infinity 136 #undef NAN 137 #define NAN __builtin_nan 138 139 /* 140 * C99 7.12.3 classification macros 141 */ 142 #undef fpclassify 143 #define fpclassify(x) __builtin_fpclassify(x) 144 #undef isfinite 145 #define isfinite(x) __builtin_isfinite(x) 146 #undef isinf 147 #define isinf(x) __builtin_isinf(x) 148 #undef isnan 149 #define isnan(x) __builtin_isnan(x) 150 #undef isnormal 151 #define isnormal(x) __builtin_isnormal(x) 152 #undef signbit 153 #define signbit(x) __builtin_signbit(x) 154 155 /* 156 * C99 7.12.14 comparison macros 157 */ 158 #undef isgreater 159 #define isgreater(x, y) ((x) __builtin_isgreater(y)) 160 #undef isgreaterequal 161 #define isgreaterequal(x, y) ((x) __builtin_isgreaterequal(y)) 162 #undef isless 163 #define isless(x, y) ((x) __builtin_isless(y)) 164 #undef islessequal 165 #define islessequal(x, y) ((x) __builtin_islessequal(y)) 166 #undef islessgreater 167 #define islessgreater(x, y) ((x) __builtin_islessgreater(y)) 168 #undef isunordered 169 #define isunordered(x, y) ((x) __builtin_isunordered(y)) 170 #endif /* defined(__GNUC__) */ 171 #endif /* defined(_STDC_C99) || _XOPEN_SOURCE - 0 >= 600 || ... */ 172 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) 418 #pragma does_not_read_global_data(cosf, sinf, tanf) 419 #pragma does_not_read_global_data(acoshf, asinhf, atanhf, coshf, sinhf, tanhf) 420 #pragma does_not_read_global_data(expf, exp2f, expm1f, frexpf, ilogbf, ldexpf) 421 #pragma does_not_read_global_data(logf, log10f, log1pf, log2f, logbf) 422 #pragma does_not_read_global_data(modff, scalbnf, scalblnf) 423 #pragma does_not_read_global_data(cbrtf, fabsf, hypotf, powf, sqrtf) 424 #pragma does_not_read_global_data(erff, erfcf, lgammaf, tgammaf) 425 #pragma does_not_read_global_data(ceilf, floorf, nearbyintf) 426 #pragma does_not_read_global_data(rintf, lrintf, roundf, lroundf, truncf) 427 #pragma does_not_read_global_data(fmodf, remainderf, remquof) 428 #pragma does_not_read_global_data(copysignf, nanf, nextafterf, nexttowardf) 429 #pragma does_not_read_global_data(fdimf, fmaxf, fminf, fmaf) 430 #pragma does_not_write_global_data(acosf, asinf, atanf, atan2f) 431 #pragma does_not_write_global_data(cosf, sinf, tanf) 432 #pragma does_not_write_global_data(acoshf, asinhf, atanhf, coshf, sinhf, tanhf) 433 #pragma does_not_write_global_data(expf, exp2f, expm1f, ilogbf, ldexpf) 434 #pragma does_not_write_global_data(logf, log10f, log1pf, log2f, logbf) 435 #pragma does_not_write_global_data(cbrtf, fabsf, hypotf, powf, sqrtf) 436 #pragma does_not_write_global_data(erff, erfcf, tgammaf) 437 #pragma does_not_write_global_data(ceilf, floorf, nearbyintf) 438 #pragma does_not_write_global_data(rintf, lrintf, roundf, lroundf, truncf) 439 #pragma does_not_write_global_data(fmodf, remainderf) 440 #pragma does_not_write_global_data(copysignf, nanf, nextafterf, nexttowardf) 441 #pragma does_not_write_global_data(fdimf, fmaxf, fminf, fmaf) 442 443 #pragma does_not_read_global_data(acosl, asinl, atanl, atan2l) 444 #pragma does_not_read_global_data(cosl, sinl, tanl) 445 #pragma does_not_read_global_data(acoshl, asinhl, atanhl, coshl, sinhl, tanhl) 446 #pragma does_not_read_global_data(expl, exp2l, expm1l, frexpl, ilogbl, ldexpl) 447 #pragma does_not_read_global_data(logl, log10l, log1pl, log2l, logbl) 448 #pragma does_not_read_global_data(modfl, scalbnl, scalblnl) 449 #pragma does_not_read_global_data(cbrtl, fabsl, hypotl, powl, sqrtl) 450 #pragma does_not_read_global_data(erfl, erfcl, lgammal, tgammal) 451 #pragma does_not_read_global_data(ceill, floorl, nearbyintl) 452 #pragma does_not_read_global_data(rintl, lrintl, roundl, lroundl, truncl) 453 #pragma does_not_read_global_data(fmodl, remainderl, remquol) 454 #pragma does_not_read_global_data(copysignl, nanl, nextafterl, nexttowardl) 455 #pragma does_not_read_global_data(fdiml, fmaxl, fminl, fmal) 456 #pragma does_not_write_global_data(acosl, asinl, atanl, atan2l) 457 #pragma does_not_write_global_data(cosl, sinl, tanl) 458 #pragma does_not_write_global_data(acoshl, asinhl, atanhl, coshl, sinhl, tanhl) 459 #pragma does_not_write_global_data(expl, exp2l, expm1l, ilogbl, ldexpl) 460 #pragma does_not_write_global_data(logl, log10l, log1pl, log2l, logbl) 461 #pragma does_not_write_global_data(cbrtl, fabsl, hypotl, powl, sqrtl) 462 #pragma does_not_write_global_data(erfl, erfcl, tgammal) 463 #pragma does_not_write_global_data(ceill, floorl, nearbyintl) 464 #pragma does_not_write_global_data(rintl, lrintl, roundl, lroundl, truncl) 465 #pragma does_not_write_global_data(fmodl, remainderl) 466 #pragma does_not_write_global_data(copysignl, nanl, nextafterl, nexttowardl) 467 #pragma does_not_write_global_data(fdiml, fmaxl, fminl, fmal) 468 469 #if !defined(_STRICT_STDC) && !defined(_NO_LONGLONG) || defined(_STDC_C99) || \ 470 defined(__C99FEATURES__) 471 #pragma does_not_read_global_data(llrint, llround) 472 #pragma does_not_read_global_data(llrintf, llroundf, llrintl, llroundl) 473 #pragma does_not_write_global_data(llrint, llround) 474 #pragma does_not_write_global_data(llrintf, llroundf, llrintl, llroundl) 475 #endif 476 #endif /* !defined(__cplusplus) */ 477 478 #if defined(__MATHERR_ERRNO_DONTCARE) 479 #pragma does_not_read_global_data(acosh, atanh, hypot, lgamma, log1p, logb) 480 #pragma does_not_read_global_data(nextafter, remainder) 481 #pragma does_not_write_global_data(acosh, atanh, hypot, log1p, logb) 482 #pragma does_not_write_global_data(nextafter, remainder) 483 484 #pragma no_side_effect(acosh, asinh, atanh, exp2, expm1) 485 #pragma no_side_effect(ilogb, log1p, log2, logb) 486 #pragma no_side_effect(scalbn, scalbln, cbrt, hypot) 487 #pragma no_side_effect(erf, erfc, tgamma) 488 #pragma no_side_effect(nearbyint, rint, lrint, round, lround, trunc) 489 #pragma no_side_effect(remainder) 490 #pragma no_side_effect(copysign, nan, nextafter, nexttoward) 491 #pragma no_side_effect(fdim, fmax, fmin, fma) 492 493 #pragma no_side_effect(acosf, asinf, atanf, atan2f) 494 #pragma no_side_effect(cosf, sinf, tanf, coshf, sinhf, tanhf) 495 #pragma no_side_effect(acoshf, asinhf, atanhf, coshf, sinhf, tanhf) 496 #pragma no_side_effect(expf, exp2f, expm1f, ilogbf, ldexpf) 497 #pragma no_side_effect(logf, log10f, log1pf, log2f, logbf) 498 #pragma no_side_effect(cbrtf, fabsf, hypotf, powf, sqrtf) 499 #pragma no_side_effect(erff, erfcf, tgammaf) 500 #pragma no_side_effect(ceilf, floorf, nearbyintf) 501 #pragma no_side_effect(rintf, lrintf, roundf, lroundf, truncf) 502 #pragma no_side_effect(fmodf, remainderf) 503 #pragma no_side_effect(copysignf, nanf, nextafterf, nexttowardf) 504 #pragma no_side_effect(fdimf, fmaxf, fminf, fmaf) 505 506 #pragma no_side_effect(acosl, asinl, atanl, atan2l) 507 #pragma no_side_effect(cosl, sinl, tanl, coshl, sinhl, tanhl) 508 #pragma no_side_effect(acoshl, asinhl, atanhl, coshl, sinhl, tanhl) 509 #pragma no_side_effect(expl, exp2l, expm1l, ilogbl, ldexpl) 510 #pragma no_side_effect(logl, log10l, log1pl, log2l, logbl) 511 #pragma no_side_effect(cbrtl, fabsl, hypotl, powl, sqrtl) 512 #pragma no_side_effect(erfl, erfcl, tgammal) 513 #pragma no_side_effect(ceill, floorl, nearbyintl) 514 #pragma no_side_effect(rintl, lrintl, roundl, lroundl, truncl) 515 #pragma no_side_effect(fmodl, remainderl) 516 #pragma no_side_effect(copysignl, nanl, nextafterl, nexttowardl) 517 #pragma no_side_effect(fdiml, fmaxl, fminl, fmal) 518 519 #if !defined(_STRICT_STDC) && !defined(_NO_LONGLONG) || defined(_STDC_C99) || \ 520 defined(__C99FEATURES__) 521 #pragma no_side_effect(llrint, llround, llrintf, llroundf, llrintl, llroundl) 522 #endif 523 #endif /* defined(__MATHERR_ERRNO_DONTCARE) */ 524 #endif /* defined(__EXTENSIONS__) || defined(_STDC_C99) || ... */ 525 526 #ifdef __cplusplus 527 } 528 #endif 529 530 #endif /* _ISO_MATH_C99_H */ 531