| 1 | /*
|
|---|
| 2 | * ====================================================
|
|---|
| 3 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
|---|
| 4 | *
|
|---|
| 5 | * Developed at SunPro, a Sun Microsystems, Inc. business.
|
|---|
| 6 | * Permission to use, copy, modify, and distribute this
|
|---|
| 7 | * software is freely granted, provided that this notice
|
|---|
| 8 | * is preserved.
|
|---|
| 9 | * ====================================================
|
|---|
| 10 | */
|
|---|
| 11 |
|
|---|
| 12 | /*
|
|---|
| 13 | * from: @(#)fdlibm.h 5.1 93/09/24
|
|---|
| 14 | * $FreeBSD: src/lib/msun/src/math.h,v 1.61 2005/04/16 21:12:47 das Exp $
|
|---|
| 15 | */
|
|---|
| 16 |
|
|---|
| 17 | /** @file
|
|---|
| 18 | * FreeBSD HEAD 2005-06-xx
|
|---|
| 19 | */
|
|---|
| 20 |
|
|---|
| 21 | #ifndef _MATH_H_
|
|---|
| 22 | #define _MATH_H_
|
|---|
| 23 |
|
|---|
| 24 | #include <sys/cdefs.h>
|
|---|
| 25 | #include <sys/_types.h>
|
|---|
| 26 | #include <machine/_limits.h>
|
|---|
| 27 |
|
|---|
| 28 | /*
|
|---|
| 29 | * ANSI/POSIX
|
|---|
| 30 | */
|
|---|
| 31 | extern const union __infinity_un {
|
|---|
| 32 | unsigned char __uc[8];
|
|---|
| 33 | double __ud;
|
|---|
| 34 | } __infinity;
|
|---|
| 35 |
|
|---|
| 36 | extern const union __nan_un {
|
|---|
| 37 | unsigned char __uc[sizeof(float)];
|
|---|
| 38 | float __uf;
|
|---|
| 39 | } __nan;
|
|---|
| 40 |
|
|---|
| 41 | #if __GNUC_PREREQ__(3, 3) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
|
|---|
| 42 | #define __MATH_BUILTIN_CONSTANTS
|
|---|
| 43 | #endif
|
|---|
| 44 |
|
|---|
| 45 | #if __GNUC_PREREQ__(3, 0) && !defined(__INTEL_COMPILER)
|
|---|
| 46 | #define __MATH_BUILTIN_RELOPS
|
|---|
| 47 | #endif
|
|---|
| 48 |
|
|---|
| 49 | #ifdef __MATH_BUILTIN_CONSTANTS
|
|---|
| 50 | #define HUGE_VAL __builtin_huge_val()
|
|---|
| 51 | #else
|
|---|
| 52 | #define HUGE_VAL (__infinity.__ud)
|
|---|
| 53 | #endif
|
|---|
| 54 |
|
|---|
| 55 | #if __ISO_C_VISIBLE >= 1999
|
|---|
| 56 | #define FP_ILOGB0 (-__INT_MAX)
|
|---|
| 57 | #define FP_ILOGBNAN __INT_MAX
|
|---|
| 58 |
|
|---|
| 59 | #ifdef __MATH_BUILTIN_CONSTANTS
|
|---|
| 60 | #define HUGE_VALF __builtin_huge_valf()
|
|---|
| 61 | #define HUGE_VALL __builtin_huge_vall()
|
|---|
| 62 | #define INFINITY __builtin_inf()
|
|---|
| 63 | #define NAN __builtin_nan("")
|
|---|
| 64 | #else
|
|---|
| 65 | #define HUGE_VALF (float)HUGE_VAL
|
|---|
| 66 | #define HUGE_VALL (long double)HUGE_VAL
|
|---|
| 67 | #define INFINITY HUGE_VALF
|
|---|
| 68 | #define NAN (__nan.__uf)
|
|---|
| 69 | #endif /* __MATH_BUILTIN_CONSTANTS */
|
|---|
| 70 |
|
|---|
| 71 | #define MATH_ERRNO 1
|
|---|
| 72 | #define MATH_ERREXCEPT 2
|
|---|
| 73 | #define math_errhandling MATH_ERREXCEPT
|
|---|
| 74 |
|
|---|
| 75 | /* XXX We need a <machine/math.h>. */
|
|---|
| 76 | #if defined(__ia64__) || defined(__sparc64__)
|
|---|
| 77 | #define FP_FAST_FMA
|
|---|
| 78 | #endif
|
|---|
| 79 | #ifdef __ia64__
|
|---|
| 80 | #define FP_FAST_FMAL
|
|---|
| 81 | #endif
|
|---|
| 82 | #define FP_FAST_FMAF
|
|---|
| 83 |
|
|---|
| 84 | /* Symbolic constants to classify floating point numbers. */
|
|---|
| 85 | #define FP_INFINITE 0x01
|
|---|
| 86 | #define FP_NAN 0x02
|
|---|
| 87 | #define FP_NORMAL 0x04
|
|---|
| 88 | #define FP_SUBNORMAL 0x08
|
|---|
| 89 | #define FP_ZERO 0x10
|
|---|
| 90 | #define fpclassify(x) \
|
|---|
| 91 | ((sizeof (x) == sizeof (float)) ? __fpclassifyf(x) \
|
|---|
| 92 | : (sizeof (x) == sizeof (double)) ? __fpclassifyd(x) \
|
|---|
| 93 | : __fpclassifyl(x))
|
|---|
| 94 |
|
|---|
| 95 | #define isfinite(x) \
|
|---|
| 96 | ((sizeof (x) == sizeof (float)) ? __isfinitef(x) \
|
|---|
| 97 | : (sizeof (x) == sizeof (double)) ? __isfinite(x) \
|
|---|
| 98 | : __isfinitel(x))
|
|---|
| 99 | #define isinf(x) \
|
|---|
| 100 | ((sizeof (x) == sizeof (float)) ? __isinff(x) \
|
|---|
| 101 | : (sizeof (x) == sizeof (double)) ? isinf(x) \
|
|---|
| 102 | : __isinfl(x))
|
|---|
| 103 | #define isnan(x) \
|
|---|
| 104 | ((sizeof (x) == sizeof (float)) ? isnanf(x) \
|
|---|
| 105 | : (sizeof (x) == sizeof (double)) ? isnan(x) \
|
|---|
| 106 | : __isnanl(x))
|
|---|
| 107 | #define isnormal(x) \
|
|---|
| 108 | ((sizeof (x) == sizeof (float)) ? __isnormalf(x) \
|
|---|
| 109 | : (sizeof (x) == sizeof (double)) ? __isnormal(x) \
|
|---|
| 110 | : __isnormall(x))
|
|---|
| 111 |
|
|---|
| 112 | #ifdef __MATH_BUILTIN_RELOPS
|
|---|
| 113 | #define isgreater(x, y) __builtin_isgreater((x), (y))
|
|---|
| 114 | #define isgreaterequal(x, y) __builtin_isgreaterequal((x), (y))
|
|---|
| 115 | #define isless(x, y) __builtin_isless((x), (y))
|
|---|
| 116 | #define islessequal(x, y) __builtin_islessequal((x), (y))
|
|---|
| 117 | #define islessgreater(x, y) __builtin_islessgreater((x), (y))
|
|---|
| 118 | #define isunordered(x, y) __builtin_isunordered((x), (y))
|
|---|
| 119 | #else
|
|---|
| 120 | #define isgreater(x, y) (!isunordered((x), (y)) && (x) > (y))
|
|---|
| 121 | #define isgreaterequal(x, y) (!isunordered((x), (y)) && (x) >= (y))
|
|---|
| 122 | #define isless(x, y) (!isunordered((x), (y)) && (x) < (y))
|
|---|
| 123 | #define islessequal(x, y) (!isunordered((x), (y)) && (x) <= (y))
|
|---|
| 124 | #define islessgreater(x, y) (!isunordered((x), (y)) && \
|
|---|
| 125 | ((x) > (y) || (y) > (x)))
|
|---|
| 126 | #define isunordered(x, y) (isnan(x) || isnan(y))
|
|---|
| 127 | #endif /* __MATH_BUILTIN_RELOPS */
|
|---|
| 128 |
|
|---|
| 129 | #define signbit(x) \
|
|---|
| 130 | ((sizeof (x) == sizeof (float)) ? __signbitf(x) \
|
|---|
| 131 | : (sizeof (x) == sizeof (double)) ? __signbit(x) \
|
|---|
| 132 | : __signbitl(x))
|
|---|
| 133 |
|
|---|
| 134 | typedef __double_t double_t;
|
|---|
| 135 | typedef __float_t float_t;
|
|---|
| 136 | #endif /* __ISO_C_VISIBLE >= 1999 */
|
|---|
| 137 |
|
|---|
| 138 | /*
|
|---|
| 139 | * XOPEN/SVID
|
|---|
| 140 | */
|
|---|
| 141 | #if __BSD_VISIBLE || __XSI_VISIBLE
|
|---|
| 142 | #define M_E 2.7182818284590452354 /* e */
|
|---|
| 143 | #define M_LOG2E 1.4426950408889634074 /* log 2e */
|
|---|
| 144 | #define M_LOG10E 0.43429448190325182765 /* log 10e */
|
|---|
| 145 | #define M_LN2 0.69314718055994530942 /* log e2 */
|
|---|
| 146 | #define M_LN10 2.30258509299404568402 /* log e10 */
|
|---|
| 147 | #define M_PI 3.14159265358979323846 /* pi */
|
|---|
| 148 | #define M_PI_2 1.57079632679489661923 /* pi/2 */
|
|---|
| 149 | #define M_PI_4 0.78539816339744830962 /* pi/4 */
|
|---|
| 150 | #define M_1_PI 0.31830988618379067154 /* 1/pi */
|
|---|
| 151 | #define M_2_PI 0.63661977236758134308 /* 2/pi */
|
|---|
| 152 | #define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
|
|---|
| 153 | #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
|
|---|
| 154 | #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
|
|---|
| 155 |
|
|---|
| 156 | #define MAXFLOAT ((float)3.40282346638528860e+38)
|
|---|
| 157 | extern int signgam;
|
|---|
| 158 | #endif /* __BSD_VISIBLE || __XSI_VISIBLE */
|
|---|
| 159 |
|
|---|
| 160 | #if __BSD_VISIBLE
|
|---|
| 161 | #if 0
|
|---|
| 162 | /* Old value from 4.4BSD-Lite math.h; this is probably better. */
|
|---|
| 163 | #define HUGE HUGE_VAL
|
|---|
| 164 | #else
|
|---|
| 165 | #define HUGE MAXFLOAT
|
|---|
| 166 | #endif
|
|---|
| 167 | #endif /* __BSD_VISIBLE */
|
|---|
| 168 |
|
|---|
| 169 | /*
|
|---|
| 170 | * Most of these functions depend on the rounding mode and have the side
|
|---|
| 171 | * effect of raising floating-point exceptions, so they are not declared
|
|---|
| 172 | * as __pure2. In C99, FENV_ACCESS affects the purity of these functions.
|
|---|
| 173 | */
|
|---|
| 174 | __BEGIN_DECLS
|
|---|
| 175 | /*
|
|---|
| 176 | * ANSI/POSIX
|
|---|
| 177 | */
|
|---|
| 178 | int __fpclassifyd(double) __pure2;
|
|---|
| 179 | int __fpclassifyf(float) __pure2;
|
|---|
| 180 | int __fpclassifyl(long double) __pure2;
|
|---|
| 181 | int __isfinitef(float) __pure2;
|
|---|
| 182 | int __isfinite(double) __pure2;
|
|---|
| 183 | int __isfinitel(long double) __pure2;
|
|---|
| 184 | int __isinff(float) __pure2;
|
|---|
| 185 | int __isinfl(long double) __pure2;
|
|---|
| 186 | int __isnanl(long double) __pure2;
|
|---|
| 187 | int __isnormalf(float) __pure2;
|
|---|
| 188 | int __isnormal(double) __pure2;
|
|---|
| 189 | int __isnormall(long double) __pure2;
|
|---|
| 190 | int __signbit(double) __pure2;
|
|---|
| 191 | int __signbitf(float) __pure2;
|
|---|
| 192 | int __signbitl(long double) __pure2;
|
|---|
| 193 |
|
|---|
| 194 | double acos(double);
|
|---|
| 195 | double asin(double);
|
|---|
| 196 | double atan(double);
|
|---|
| 197 | double atan2(double, double);
|
|---|
| 198 | double cos(double);
|
|---|
| 199 | double sin(double);
|
|---|
| 200 | double tan(double);
|
|---|
| 201 |
|
|---|
| 202 | double cosh(double);
|
|---|
| 203 | double sinh(double);
|
|---|
| 204 | double tanh(double);
|
|---|
| 205 |
|
|---|
| 206 | double exp(double);
|
|---|
| 207 | double frexp(double, int *); /* fundamentally !__pure2 */
|
|---|
| 208 | double ldexp(double, int);
|
|---|
| 209 | double log(double);
|
|---|
| 210 | double log10(double);
|
|---|
| 211 | double modf(double, double *); /* fundamentally !__pure2 */
|
|---|
| 212 |
|
|---|
| 213 | double pow(double, double);
|
|---|
| 214 | double sqrt(double);
|
|---|
| 215 |
|
|---|
| 216 | double ceil(double);
|
|---|
| 217 | double fabs(double) __pure2;
|
|---|
| 218 | double floor(double);
|
|---|
| 219 | double fmod(double, double);
|
|---|
| 220 |
|
|---|
| 221 | /*
|
|---|
| 222 | * These functions are not in C90.
|
|---|
| 223 | */
|
|---|
| 224 | #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE
|
|---|
| 225 | double acosh(double);
|
|---|
| 226 | double asinh(double);
|
|---|
| 227 | double atanh(double);
|
|---|
| 228 | double cbrt(double);
|
|---|
| 229 | double erf(double);
|
|---|
| 230 | double erfc(double);
|
|---|
| 231 | double exp2(double);
|
|---|
| 232 | double expm1(double);
|
|---|
| 233 | double fma(double, double, double);
|
|---|
| 234 | double hypot(double, double);
|
|---|
| 235 | int ilogb(double) __pure2;
|
|---|
| 236 | int (isinf)(double) __pure2;
|
|---|
| 237 | int (isnan)(double) __pure2;
|
|---|
| 238 | double lgamma(double);
|
|---|
| 239 | long long llrint(double);
|
|---|
| 240 | long long llround(double);
|
|---|
| 241 | double log1p(double);
|
|---|
| 242 | double logb(double);
|
|---|
| 243 | long lrint(double);
|
|---|
| 244 | long lround(double);
|
|---|
| 245 | double nextafter(double, double);
|
|---|
| 246 | double remainder(double, double);
|
|---|
| 247 | double remquo(double, double, int *);
|
|---|
| 248 | double rint(double);
|
|---|
| 249 | #endif /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
|---|
| 250 |
|
|---|
| 251 | #if __BSD_VISIBLE || __XSI_VISIBLE
|
|---|
| 252 | double j0(double);
|
|---|
| 253 | double j1(double);
|
|---|
| 254 | double jn(int, double);
|
|---|
| 255 | double scalb(double, double);
|
|---|
| 256 | double y0(double);
|
|---|
| 257 | double y1(double);
|
|---|
| 258 | double yn(int, double);
|
|---|
| 259 |
|
|---|
| 260 | #if __XSI_VISIBLE <= 500 || __BSD_VISIBLE
|
|---|
| 261 | double gamma(double);
|
|---|
| 262 | #endif
|
|---|
| 263 | #endif /* __BSD_VISIBLE || __XSI_VISIBLE */
|
|---|
| 264 |
|
|---|
| 265 | #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999
|
|---|
| 266 | double copysign(double, double) __pure2;
|
|---|
| 267 | double fdim(double, double);
|
|---|
| 268 | double fmax(double, double) __pure2;
|
|---|
| 269 | double fmin(double, double) __pure2;
|
|---|
| 270 | double nearbyint(double);
|
|---|
| 271 | double round(double);
|
|---|
| 272 | double scalbln(double, long);
|
|---|
| 273 | double scalbn(double, int);
|
|---|
| 274 | double tgamma(double);
|
|---|
| 275 | double trunc(double);
|
|---|
| 276 | #endif
|
|---|
| 277 |
|
|---|
| 278 | /*
|
|---|
| 279 | * BSD math library entry points
|
|---|
| 280 | */
|
|---|
| 281 | #if __BSD_VISIBLE
|
|---|
| 282 | double drem(double, double);
|
|---|
| 283 | int finite(double) __pure2;
|
|---|
| 284 | int isnanf(float) __pure2;
|
|---|
| 285 |
|
|---|
| 286 | /*
|
|---|
| 287 | * Reentrant version of gamma & lgamma; passes signgam back by reference
|
|---|
| 288 | * as the second argument; user must allocate space for signgam.
|
|---|
| 289 | */
|
|---|
| 290 | double gamma_r(double, int *);
|
|---|
| 291 | double lgamma_r(double, int *);
|
|---|
| 292 |
|
|---|
| 293 | /*
|
|---|
| 294 | * IEEE Test Vector
|
|---|
| 295 | */
|
|---|
| 296 | double significand(double);
|
|---|
| 297 | #endif /* __BSD_VISIBLE */
|
|---|
| 298 |
|
|---|
| 299 | /* float versions of ANSI/POSIX functions */
|
|---|
| 300 | #if __ISO_C_VISIBLE >= 1999
|
|---|
| 301 | float acosf(float);
|
|---|
| 302 | float asinf(float);
|
|---|
| 303 | float atanf(float);
|
|---|
| 304 | float atan2f(float, float);
|
|---|
| 305 | float cosf(float);
|
|---|
| 306 | float sinf(float);
|
|---|
| 307 | float tanf(float);
|
|---|
| 308 |
|
|---|
| 309 | float coshf(float);
|
|---|
| 310 | float sinhf(float);
|
|---|
| 311 | float tanhf(float);
|
|---|
| 312 |
|
|---|
| 313 | float exp2f(float);
|
|---|
| 314 | float expf(float);
|
|---|
| 315 | float expm1f(float);
|
|---|
| 316 | float frexpf(float, int *); /* fundamentally !__pure2 */
|
|---|
| 317 | int ilogbf(float) __pure2;
|
|---|
| 318 | float ldexpf(float, int);
|
|---|
| 319 | float log10f(float);
|
|---|
| 320 | float log1pf(float);
|
|---|
| 321 | float logf(float);
|
|---|
| 322 | float modff(float, float *); /* fundamentally !__pure2 */
|
|---|
| 323 |
|
|---|
| 324 | float powf(float, float);
|
|---|
| 325 | float sqrtf(float);
|
|---|
| 326 |
|
|---|
| 327 | float ceilf(float);
|
|---|
| 328 | float fabsf(float) __pure2;
|
|---|
| 329 | float floorf(float);
|
|---|
| 330 | float fmodf(float, float);
|
|---|
| 331 | float roundf(float);
|
|---|
| 332 |
|
|---|
| 333 | float erff(float);
|
|---|
| 334 | float erfcf(float);
|
|---|
| 335 | float hypotf(float, float);
|
|---|
| 336 | float lgammaf(float);
|
|---|
| 337 |
|
|---|
| 338 | float acoshf(float);
|
|---|
| 339 | float asinhf(float);
|
|---|
| 340 | float atanhf(float);
|
|---|
| 341 | float cbrtf(float);
|
|---|
| 342 | float logbf(float);
|
|---|
| 343 | float copysignf(float, float) __pure2;
|
|---|
| 344 | long long llrintf(float);
|
|---|
| 345 | long long llroundf(float);
|
|---|
| 346 | long lrintf(float);
|
|---|
| 347 | long lroundf(float);
|
|---|
| 348 | float nearbyintf(float);
|
|---|
| 349 | float nextafterf(float, float);
|
|---|
| 350 | float remainderf(float, float);
|
|---|
| 351 | float remquof(float, float, int *);
|
|---|
| 352 | float rintf(float);
|
|---|
| 353 | float scalblnf(float, long);
|
|---|
| 354 | float scalbnf(float, int);
|
|---|
| 355 | float truncf(float);
|
|---|
| 356 |
|
|---|
| 357 | float fdimf(float, float);
|
|---|
| 358 | float fmaf(float, float, float);
|
|---|
| 359 | float fmaxf(float, float) __pure2;
|
|---|
| 360 | float fminf(float, float) __pure2;
|
|---|
| 361 | #endif
|
|---|
| 362 |
|
|---|
| 363 | /*
|
|---|
| 364 | * float versions of BSD math library entry points
|
|---|
| 365 | */
|
|---|
| 366 | #if __BSD_VISIBLE
|
|---|
| 367 | float dremf(float, float);
|
|---|
| 368 | int finitef(float) __pure2;
|
|---|
| 369 | float gammaf(float);
|
|---|
| 370 | float j0f(float);
|
|---|
| 371 | float j1f(float);
|
|---|
| 372 | float jnf(int, float);
|
|---|
| 373 | float scalbf(float, float);
|
|---|
| 374 | float y0f(float);
|
|---|
| 375 | float y1f(float);
|
|---|
| 376 | float ynf(int, float);
|
|---|
| 377 |
|
|---|
| 378 | /*
|
|---|
| 379 | * Float versions of reentrant version of gamma & lgamma; passes
|
|---|
| 380 | * signgam back by reference as the second argument; user must
|
|---|
| 381 | * allocate space for signgam.
|
|---|
| 382 | */
|
|---|
| 383 | float gammaf_r(float, int *);
|
|---|
| 384 | float lgammaf_r(float, int *);
|
|---|
| 385 |
|
|---|
| 386 | /*
|
|---|
| 387 | * float version of IEEE Test Vector
|
|---|
| 388 | */
|
|---|
| 389 | float significandf(float);
|
|---|
| 390 | #endif /* __BSD_VISIBLE */
|
|---|
| 391 |
|
|---|
| 392 | /*
|
|---|
| 393 | * long double versions of ISO/POSIX math functions
|
|---|
| 394 | */
|
|---|
| 395 | #if __ISO_C_VISIBLE >= 1999
|
|---|
| 396 | #if 1 /* bird: we've got these */
|
|---|
| 397 | long double acoshl(long double);
|
|---|
| 398 | long double acosl(long double);
|
|---|
| 399 | long double asinhl(long double);
|
|---|
| 400 | long double asinl(long double);
|
|---|
| 401 | long double atan2l(long double, long double);
|
|---|
| 402 | long double atanhl(long double);
|
|---|
| 403 | long double atanl(long double);
|
|---|
| 404 | long double cbrtl(long double);
|
|---|
| 405 | #endif
|
|---|
| 406 | long double ceill(long double);
|
|---|
| 407 | long double copysignl(long double, long double) __pure2;
|
|---|
| 408 | #if 1 /* bird: we've got some of these */
|
|---|
| 409 | long double coshl(long double);
|
|---|
| 410 | long double cosl(long double);
|
|---|
| 411 | /*long double erfcl(long double);
|
|---|
| 412 | long double erfl(long double);
|
|---|
| 413 | long double exp2l(long double);*/
|
|---|
| 414 | long double expl(long double);
|
|---|
| 415 | /*long double expm1l(long double);*/
|
|---|
| 416 | #endif
|
|---|
| 417 | long double fabsl(long double) __pure2;
|
|---|
| 418 | long double fdiml(long double, long double);
|
|---|
| 419 | long double floorl(long double);
|
|---|
| 420 | long double fmal(long double, long double, long double);
|
|---|
| 421 | long double fmaxl(long double, long double) __pure2;
|
|---|
| 422 | long double fminl(long double, long double) __pure2;
|
|---|
| 423 | #if 1 /* bird: we've got this one */
|
|---|
| 424 | long double fmodl(long double, long double);
|
|---|
| 425 | #endif
|
|---|
| 426 | long double frexpl(long double value, int *); /* fundamentally !__pure2 */
|
|---|
| 427 | #if 1 /* bird: we've got this one */
|
|---|
| 428 | long double hypotl(long double, long double);
|
|---|
| 429 | #endif
|
|---|
| 430 | int ilogbl(long double) __pure2;
|
|---|
| 431 | long double ldexpl(long double, int);
|
|---|
| 432 | #if 0
|
|---|
| 433 | long double lgammal(long double);
|
|---|
| 434 | long long llrintl(long double);
|
|---|
| 435 | #endif
|
|---|
| 436 | long long llroundl(long double);
|
|---|
| 437 | #if 1 /* bird: we've got some of these */
|
|---|
| 438 | long double log10l(long double);
|
|---|
| 439 | /*long double log1pl(long double);
|
|---|
| 440 | long double log2l(long double);
|
|---|
| 441 | long double logbl(long double);*/
|
|---|
| 442 | long double logl(long double);
|
|---|
| 443 | /*long lrintl(long double);*/
|
|---|
| 444 | #endif
|
|---|
| 445 | long lroundl(long double);
|
|---|
| 446 | #if 1 /* bird: we've got some of these. */
|
|---|
| 447 | long double modfl(long double, long double *); /* fundamentally !__pure2 */
|
|---|
| 448 | /*long double nanl(const char *) __pure2;
|
|---|
| 449 | long double nearbyintl(long double);*/
|
|---|
| 450 | #endif
|
|---|
| 451 | long double nextafterl(long double, long double);
|
|---|
| 452 | double nexttoward(double, long double);
|
|---|
| 453 | float nexttowardf(float, long double);
|
|---|
| 454 | long double nexttowardl(long double, long double);
|
|---|
| 455 | #if 1 /* bird: we've got powl. */
|
|---|
| 456 | long double powl(long double, long double);
|
|---|
| 457 | /*long double remainderl(long double, long double);
|
|---|
| 458 | long double remquol(long double, long double, int *);*/
|
|---|
| 459 | long double rintl(long double);
|
|---|
| 460 | #endif
|
|---|
| 461 | long double roundl(long double);
|
|---|
| 462 | long double scalblnl(long double, long);
|
|---|
| 463 | long double scalbnl(long double, int);
|
|---|
| 464 | #if 1 /* birdL we 've got most of these. */
|
|---|
| 465 | long double sinhl(long double);
|
|---|
| 466 | long double sinl(long double);
|
|---|
| 467 | long double sqrtl(long double);
|
|---|
| 468 | long double tanhl(long double);
|
|---|
| 469 | long double tanl(long double);
|
|---|
| 470 | /*long double tgammal(long double); */
|
|---|
| 471 | #endif
|
|---|
| 472 | long double truncl(long double);
|
|---|
| 473 |
|
|---|
| 474 | #endif /* __ISO_C_VISIBLE >= 1999 */
|
|---|
| 475 | __END_DECLS
|
|---|
| 476 |
|
|---|
| 477 | #endif /* !_MATH_H_ */
|
|---|