| OLD | NEW |
| 1 #ifndef _MATH_H | 1 #ifndef _MATH_H |
| 2 #define _MATH_H | 2 #define _MATH_H |
| 3 | 3 |
| 4 #ifdef __cplusplus | 4 #ifdef __cplusplus |
| 5 extern "C" { | 5 extern "C" { |
| 6 #endif | 6 #endif |
| 7 | 7 |
| 8 #include <features.h> | 8 #include <features.h> |
| 9 | 9 |
| 10 #define __NEED_float_t | 10 #define __NEED_float_t |
| 11 #define __NEED_double_t | 11 #define __NEED_double_t |
| 12 #include <bits/alltypes.h> | 12 #include <bits/alltypes.h> |
| 13 | 13 |
| 14 #if 100*__GNUC__+__GNUC_MINOR__ >= 303 | 14 #if 100 * __GNUC__ + __GNUC_MINOR__ >= 303 |
| 15 #define NAN __builtin_nanf("") | 15 #define NAN __builtin_nanf("") |
| 16 #define INFINITY __builtin_inff() | 16 #define INFINITY __builtin_inff() |
| 17 #else | 17 #else |
| 18 #define NAN (0.0f/0.0f) | 18 #define NAN (0.0f / 0.0f) |
| 19 #define INFINITY 1e5000f | 19 #define INFINITY 1e5000f |
| 20 #endif | 20 #endif |
| 21 | 21 |
| 22 #define HUGE_VALF INFINITY | 22 #define HUGE_VALF INFINITY |
| 23 #define HUGE_VAL ((double)INFINITY) | 23 #define HUGE_VAL ((double)INFINITY) |
| 24 #define HUGE_VALL ((long double)INFINITY) | 24 #define HUGE_VALL ((long double)INFINITY) |
| 25 | 25 |
| 26 #define MATH_ERRNO 1 | 26 #define MATH_ERRNO 1 |
| 27 #define MATH_ERREXCEPT 2 | 27 #define MATH_ERREXCEPT 2 |
| 28 #define math_errhandling 2 | 28 #define math_errhandling 2 |
| 29 | 29 |
| 30 #define FP_ILOGBNAN (-1-(int)(((unsigned)-1)>>1)) | 30 #define FP_ILOGBNAN (-1 - (int)(((unsigned)-1) >> 1)) |
| 31 #define FP_ILOGB0 FP_ILOGBNAN | 31 #define FP_ILOGB0 FP_ILOGBNAN |
| 32 | 32 |
| 33 #define FP_NAN 0 | 33 #define FP_NAN 0 |
| 34 #define FP_INFINITE 1 | 34 #define FP_INFINITE 1 |
| 35 #define FP_ZERO 2 | 35 #define FP_ZERO 2 |
| 36 #define FP_SUBNORMAL 3 | 36 #define FP_SUBNORMAL 3 |
| 37 #define FP_NORMAL 4 | 37 #define FP_NORMAL 4 |
| 38 | 38 |
| 39 int __fpclassify(double); | 39 int __fpclassify(double); |
| 40 int __fpclassifyf(float); | 40 int __fpclassifyf(float); |
| 41 int __fpclassifyl(long double); | 41 int __fpclassifyl(long double); |
| 42 | 42 |
| 43 static __inline unsigned __FLOAT_BITS(float __f) | 43 static __inline unsigned __FLOAT_BITS(float __f) { |
| 44 { | 44 union { |
| 45 » union {float __f; unsigned __i;} __u; | 45 float __f; |
| 46 » __u.__f = __f; | 46 unsigned __i; |
| 47 » return __u.__i; | 47 } __u; |
| 48 __u.__f = __f; |
| 49 return __u.__i; |
| 48 } | 50 } |
| 49 static __inline unsigned long long __DOUBLE_BITS(double __f) | 51 static __inline unsigned long long __DOUBLE_BITS(double __f) { |
| 50 { | 52 union { |
| 51 » union {double __f; unsigned long long __i;} __u; | 53 double __f; |
| 52 » __u.__f = __f; | 54 unsigned long long __i; |
| 53 » return __u.__i; | 55 } __u; |
| 56 __u.__f = __f; |
| 57 return __u.__i; |
| 54 } | 58 } |
| 55 | 59 |
| 56 #define fpclassify(x) ( \ | 60 #define fpclassify(x) \ |
| 57 » sizeof(x) == sizeof(float) ? __fpclassifyf(x) : \ | 61 (sizeof(x) == sizeof(float) ? __fpclassifyf(x) : sizeof(x) == sizeof(double) \ |
| 58 » sizeof(x) == sizeof(double) ? __fpclassify(x) : \ | 62 ? __fpclassify(x) \ |
| 59 » __fpclassifyl(x) ) | 63 : __fpclassifyl(x)) |
| 60 | 64 |
| 61 #define isinf(x) ( \ | 65 #define isinf(x) \ |
| 62 » sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) == 0x7f80000
0 : \ | 66 (sizeof(x) == sizeof(float) \ |
| 63 » sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) == 0x7ffULL<
<52 : \ | 67 ? (__FLOAT_BITS(x) & 0x7fffffff) == 0x7f800000 \ |
| 64 » __fpclassifyl(x) == FP_INFINITE) | 68 : sizeof(x) == sizeof(double) \ |
| 69 ? (__DOUBLE_BITS(x) & -1ULL >> 1) == 0x7ffULL << 52 \ |
| 70 : __fpclassifyl(x) == FP_INFINITE) |
| 65 | 71 |
| 66 #define isnan(x) ( \ | 72 #define isnan(x) \ |
| 67 » sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) > 0x7f800000
: \ | 73 (sizeof(x) == sizeof(float) \ |
| 68 » sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) > 0x7ffULL<<
52 : \ | 74 ? (__FLOAT_BITS(x) & 0x7fffffff) > 0x7f800000 \ |
| 69 » __fpclassifyl(x) == FP_NAN) | 75 : sizeof(x) == sizeof(double) \ |
| 76 ? (__DOUBLE_BITS(x) & -1ULL >> 1) > 0x7ffULL << 52 \ |
| 77 : __fpclassifyl(x) == FP_NAN) |
| 70 | 78 |
| 71 #define isnormal(x) ( \ | 79 #define isnormal(x) \ |
| 72 » sizeof(x) == sizeof(float) ? ((__FLOAT_BITS(x)+0x00800000) & 0x7fffffff)
>= 0x01000000 : \ | 80 (sizeof(x) == sizeof(float) \ |
| 73 » sizeof(x) == sizeof(double) ? ((__DOUBLE_BITS(x)+(1ULL<<52)) & -1ULL>>1)
>= 1ULL<<53 : \ | 81 ? ((__FLOAT_BITS(x) + 0x00800000) & 0x7fffffff) >= 0x01000000 \ |
| 74 » __fpclassifyl(x) == FP_NORMAL) | 82 : sizeof(x) == sizeof(double) \ |
| 83 ? ((__DOUBLE_BITS(x) + (1ULL << 52)) & -1ULL >> 1) >= 1ULL << 53 \ |
| 84 : __fpclassifyl(x) == FP_NORMAL) |
| 75 | 85 |
| 76 #define isfinite(x) ( \ | 86 #define isfinite(x) \ |
| 77 » sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) < 0x7f800000
: \ | 87 (sizeof(x) == sizeof(float) \ |
| 78 » sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) < 0x7ffULL<<
52 : \ | 88 ? (__FLOAT_BITS(x) & 0x7fffffff) < 0x7f800000 \ |
| 79 » __fpclassifyl(x) > FP_INFINITE) | 89 : sizeof(x) == sizeof(double) \ |
| 90 ? (__DOUBLE_BITS(x) & -1ULL >> 1) < 0x7ffULL << 52 \ |
| 91 : __fpclassifyl(x) > FP_INFINITE) |
| 80 | 92 |
| 81 int __signbit(double); | 93 int __signbit(double); |
| 82 int __signbitf(float); | 94 int __signbitf(float); |
| 83 int __signbitl(long double); | 95 int __signbitl(long double); |
| 84 | 96 |
| 85 #define signbit(x) ( \ | 97 #define signbit(x) \ |
| 86 » sizeof(x) == sizeof(float) ? (int)(__FLOAT_BITS(x)>>31) : \ | 98 (sizeof(x) == sizeof(float) \ |
| 87 » sizeof(x) == sizeof(double) ? (int)(__DOUBLE_BITS(x)>>63) : \ | 99 ? (int)(__FLOAT_BITS(x) >> 31) \ |
| 88 » __signbitl(x) ) | 100 : sizeof(x) == sizeof(double) ? (int)(__DOUBLE_BITS(x) >> 63) \ |
| 101 : __signbitl(x)) |
| 89 | 102 |
| 90 #define isunordered(x,y) (isnan((x)) ? ((void)(y),1) : isnan((y))) | 103 #define isunordered(x, y) (isnan((x)) ? ((void)(y), 1) : isnan((y))) |
| 91 | 104 |
| 92 #define __ISREL_DEF(rel, op, type) \ | 105 #define __ISREL_DEF(rel, op, type) \ |
| 93 static __inline int __is##rel(type __x, type __y) \ | 106 static __inline int __is##rel(type __x, type __y) { \ |
| 94 { return !isunordered(__x,__y) && __x op __y; } | 107 return !isunordered(__x, __y) && __x op __y; \ |
| 108 } |
| 95 | 109 |
| 96 __ISREL_DEF(lessf, <, float_t) | 110 __ISREL_DEF(lessf, <, float_t) |
| 97 __ISREL_DEF(less, <, double_t) | 111 __ISREL_DEF(less, <, double_t) |
| 98 __ISREL_DEF(lessl, <, long double) | 112 __ISREL_DEF(lessl, <, long double) |
| 99 __ISREL_DEF(lessequalf, <=, float_t) | 113 __ISREL_DEF(lessequalf, <=, float_t) |
| 100 __ISREL_DEF(lessequal, <=, double_t) | 114 __ISREL_DEF(lessequal, <=, double_t) |
| 101 __ISREL_DEF(lessequall, <=, long double) | 115 __ISREL_DEF(lessequall, <=, long double) |
| 102 __ISREL_DEF(lessgreaterf, !=, float_t) | 116 __ISREL_DEF(lessgreaterf, !=, float_t) |
| 103 __ISREL_DEF(lessgreater, !=, double_t) | 117 __ISREL_DEF(lessgreater, !=, double_t) |
| 104 __ISREL_DEF(lessgreaterl, !=, long double) | 118 __ISREL_DEF(lessgreaterl, !=, long double) |
| 105 __ISREL_DEF(greaterf, >, float_t) | 119 __ISREL_DEF(greaterf, >, float_t) |
| 106 __ISREL_DEF(greater, >, double_t) | 120 __ISREL_DEF(greater, >, double_t) |
| 107 __ISREL_DEF(greaterl, >, long double) | 121 __ISREL_DEF(greaterl, >, long double) |
| 108 __ISREL_DEF(greaterequalf, >=, float_t) | 122 __ISREL_DEF(greaterequalf, >=, float_t) |
| 109 __ISREL_DEF(greaterequal, >=, double_t) | 123 __ISREL_DEF(greaterequal, >=, double_t) |
| 110 __ISREL_DEF(greaterequall, >=, long double) | 124 __ISREL_DEF(greaterequall, >=, long double) |
| 111 | 125 |
| 112 #define __tg_pred_2(x, y, p) ( \ | 126 #define __tg_pred_2(x, y, p) \ |
| 113 » sizeof((x)+(y)) == sizeof(float) ? p##f(x, y) : \ | 127 (sizeof((x) + (y)) == sizeof(float) \ |
| 114 » sizeof((x)+(y)) == sizeof(double) ? p(x, y) : \ | 128 ? p##f(x, y) \ |
| 115 » p##l(x, y) ) | 129 : sizeof((x) + (y)) == sizeof(double) ? p(x, y) : p##l(x, y)) |
| 116 | 130 |
| 117 #define isless(x, y) __tg_pred_2(x, y, __isless) | 131 #define isless(x, y) __tg_pred_2(x, y, __isless) |
| 118 #define islessequal(x, y) __tg_pred_2(x, y, __islessequal) | 132 #define islessequal(x, y) __tg_pred_2(x, y, __islessequal) |
| 119 #define islessgreater(x, y) __tg_pred_2(x, y, __islessgreater) | 133 #define islessgreater(x, y) __tg_pred_2(x, y, __islessgreater) |
| 120 #define isgreater(x, y) __tg_pred_2(x, y, __isgreater) | 134 #define isgreater(x, y) __tg_pred_2(x, y, __isgreater) |
| 121 #define isgreaterequal(x, y) __tg_pred_2(x, y, __isgreaterequal) | 135 #define isgreaterequal(x, y) __tg_pred_2(x, y, __isgreaterequal) |
| 122 | 136 |
| 123 double acos(double); | 137 double acos(double); |
| 124 float acosf(float); | 138 float acosf(float); |
| 125 long double acosl(long double); | 139 long double acosl(long double); |
| 126 | 140 |
| 127 double acosh(double); | 141 double acosh(double); |
| 128 float acoshf(float); | 142 float acoshf(float); |
| 129 long double acoshl(long double); | 143 long double acoshl(long double); |
| 130 | 144 |
| 131 double asin(double); | 145 double asin(double); |
| 132 float asinf(float); | 146 float asinf(float); |
| 133 long double asinl(long double); | 147 long double asinl(long double); |
| 134 | 148 |
| 135 double asinh(double); | 149 double asinh(double); |
| 136 float asinhf(float); | 150 float asinhf(float); |
| 137 long double asinhl(long double); | 151 long double asinhl(long double); |
| 138 | 152 |
| 139 double atan(double); | 153 double atan(double); |
| 140 float atanf(float); | 154 float atanf(float); |
| 141 long double atanl(long double); | 155 long double atanl(long double); |
| 142 | 156 |
| 143 double atan2(double, double); | 157 double atan2(double, double); |
| 144 float atan2f(float, float); | 158 float atan2f(float, float); |
| 145 long double atan2l(long double, long double); | 159 long double atan2l(long double, long double); |
| 146 | 160 |
| 147 double atanh(double); | 161 double atanh(double); |
| 148 float atanhf(float); | 162 float atanhf(float); |
| 149 long double atanhl(long double); | 163 long double atanhl(long double); |
| 150 | 164 |
| 151 double cbrt(double); | 165 double cbrt(double); |
| 152 float cbrtf(float); | 166 float cbrtf(float); |
| 153 long double cbrtl(long double); | 167 long double cbrtl(long double); |
| 154 | 168 |
| 155 double ceil(double); | 169 double ceil(double); |
| 156 float ceilf(float); | 170 float ceilf(float); |
| 157 long double ceill(long double); | 171 long double ceill(long double); |
| 158 | 172 |
| 159 double copysign(double, double); | 173 double copysign(double, double); |
| 160 float copysignf(float, float); | 174 float copysignf(float, float); |
| 161 long double copysignl(long double, long double); | 175 long double copysignl(long double, long double); |
| 162 | 176 |
| 163 double cos(double); | 177 double cos(double); |
| 164 float cosf(float); | 178 float cosf(float); |
| 165 long double cosl(long double); | 179 long double cosl(long double); |
| 166 | 180 |
| 167 double cosh(double); | 181 double cosh(double); |
| 168 float coshf(float); | 182 float coshf(float); |
| 169 long double coshl(long double); | 183 long double coshl(long double); |
| 170 | 184 |
| 171 double erf(double); | 185 double erf(double); |
| 172 float erff(float); | 186 float erff(float); |
| 173 long double erfl(long double); | 187 long double erfl(long double); |
| 174 | 188 |
| 175 double erfc(double); | 189 double erfc(double); |
| 176 float erfcf(float); | 190 float erfcf(float); |
| 177 long double erfcl(long double); | 191 long double erfcl(long double); |
| 178 | 192 |
| 179 double exp(double); | 193 double exp(double); |
| 180 float expf(float); | 194 float expf(float); |
| 181 long double expl(long double); | 195 long double expl(long double); |
| 182 | 196 |
| 183 double exp2(double); | 197 double exp2(double); |
| 184 float exp2f(float); | 198 float exp2f(float); |
| 185 long double exp2l(long double); | 199 long double exp2l(long double); |
| 186 | 200 |
| 187 double expm1(double); | 201 double expm1(double); |
| 188 float expm1f(float); | 202 float expm1f(float); |
| 189 long double expm1l(long double); | 203 long double expm1l(long double); |
| 190 | 204 |
| 191 double fabs(double); | 205 double fabs(double); |
| 192 float fabsf(float); | 206 float fabsf(float); |
| 193 long double fabsl(long double); | 207 long double fabsl(long double); |
| 194 | 208 |
| 195 double fdim(double, double); | 209 double fdim(double, double); |
| 196 float fdimf(float, float); | 210 float fdimf(float, float); |
| 197 long double fdiml(long double, long double); | 211 long double fdiml(long double, long double); |
| 198 | 212 |
| 199 double floor(double); | 213 double floor(double); |
| 200 float floorf(float); | 214 float floorf(float); |
| 201 long double floorl(long double); | 215 long double floorl(long double); |
| 202 | 216 |
| 203 double fma(double, double, double); | 217 double fma(double, double, double); |
| 204 float fmaf(float, float, float); | 218 float fmaf(float, float, float); |
| 205 long double fmal(long double, long double, long double); | 219 long double fmal(long double, long double, long double); |
| 206 | 220 |
| 207 double fmax(double, double); | 221 double fmax(double, double); |
| 208 float fmaxf(float, float); | 222 float fmaxf(float, float); |
| 209 long double fmaxl(long double, long double); | 223 long double fmaxl(long double, long double); |
| 210 | 224 |
| 211 double fmin(double, double); | 225 double fmin(double, double); |
| 212 float fminf(float, float); | 226 float fminf(float, float); |
| 213 long double fminl(long double, long double); | 227 long double fminl(long double, long double); |
| 214 | 228 |
| 215 double fmod(double, double); | 229 double fmod(double, double); |
| 216 float fmodf(float, float); | 230 float fmodf(float, float); |
| 217 long double fmodl(long double, long double); | 231 long double fmodl(long double, long double); |
| 218 | 232 |
| 219 double frexp(double, int *); | 233 double frexp(double, int*); |
| 220 float frexpf(float, int *); | 234 float frexpf(float, int*); |
| 221 long double frexpl(long double, int *); | 235 long double frexpl(long double, int*); |
| 222 | 236 |
| 223 double hypot(double, double); | 237 double hypot(double, double); |
| 224 float hypotf(float, float); | 238 float hypotf(float, float); |
| 225 long double hypotl(long double, long double); | 239 long double hypotl(long double, long double); |
| 226 | 240 |
| 227 int ilogb(double); | 241 int ilogb(double); |
| 228 int ilogbf(float); | 242 int ilogbf(float); |
| 229 int ilogbl(long double); | 243 int ilogbl(long double); |
| 230 | 244 |
| 231 double ldexp(double, int); | 245 double ldexp(double, int); |
| 232 float ldexpf(float, int); | 246 float ldexpf(float, int); |
| 233 long double ldexpl(long double, int); | 247 long double ldexpl(long double, int); |
| 234 | 248 |
| 235 double lgamma(double); | 249 double lgamma(double); |
| 236 float lgammaf(float); | 250 float lgammaf(float); |
| 237 long double lgammal(long double); | 251 long double lgammal(long double); |
| 238 | 252 |
| 239 long long llrint(double); | 253 long long llrint(double); |
| 240 long long llrintf(float); | 254 long long llrintf(float); |
| 241 long long llrintl(long double); | 255 long long llrintl(long double); |
| 242 | 256 |
| 243 long long llround(double); | 257 long long llround(double); |
| 244 long long llroundf(float); | 258 long long llroundf(float); |
| 245 long long llroundl(long double); | 259 long long llroundl(long double); |
| 246 | 260 |
| 247 double log(double); | 261 double log(double); |
| 248 float logf(float); | 262 float logf(float); |
| 249 long double logl(long double); | 263 long double logl(long double); |
| 250 | 264 |
| 251 double log10(double); | 265 double log10(double); |
| 252 float log10f(float); | 266 float log10f(float); |
| 253 long double log10l(long double); | 267 long double log10l(long double); |
| 254 | 268 |
| 255 double log1p(double); | 269 double log1p(double); |
| 256 float log1pf(float); | 270 float log1pf(float); |
| 257 long double log1pl(long double); | 271 long double log1pl(long double); |
| 258 | 272 |
| 259 double log2(double); | 273 double log2(double); |
| 260 float log2f(float); | 274 float log2f(float); |
| 261 long double log2l(long double); | 275 long double log2l(long double); |
| 262 | 276 |
| 263 double logb(double); | 277 double logb(double); |
| 264 float logbf(float); | 278 float logbf(float); |
| 265 long double logbl(long double); | 279 long double logbl(long double); |
| 266 | 280 |
| 267 long lrint(double); | 281 long lrint(double); |
| 268 long lrintf(float); | 282 long lrintf(float); |
| 269 long lrintl(long double); | 283 long lrintl(long double); |
| 270 | 284 |
| 271 long lround(double); | 285 long lround(double); |
| 272 long lroundf(float); | 286 long lroundf(float); |
| 273 long lroundl(long double); | 287 long lroundl(long double); |
| 274 | 288 |
| 275 double modf(double, double *); | 289 double modf(double, double*); |
| 276 float modff(float, float *); | 290 float modff(float, float*); |
| 277 long double modfl(long double, long double *); | 291 long double modfl(long double, long double*); |
| 278 | 292 |
| 279 double nan(const char *); | 293 double nan(const char*); |
| 280 float nanf(const char *); | 294 float nanf(const char*); |
| 281 long double nanl(const char *); | 295 long double nanl(const char*); |
| 282 | 296 |
| 283 double nearbyint(double); | 297 double nearbyint(double); |
| 284 float nearbyintf(float); | 298 float nearbyintf(float); |
| 285 long double nearbyintl(long double); | 299 long double nearbyintl(long double); |
| 286 | 300 |
| 287 double nextafter(double, double); | 301 double nextafter(double, double); |
| 288 float nextafterf(float, float); | 302 float nextafterf(float, float); |
| 289 long double nextafterl(long double, long double); | 303 long double nextafterl(long double, long double); |
| 290 | 304 |
| 291 double nexttoward(double, long double); | 305 double nexttoward(double, long double); |
| 292 float nexttowardf(float, long double); | 306 float nexttowardf(float, long double); |
| 293 long double nexttowardl(long double, long double); | 307 long double nexttowardl(long double, long double); |
| 294 | 308 |
| 295 double pow(double, double); | 309 double pow(double, double); |
| 296 float powf(float, float); | 310 float powf(float, float); |
| 297 long double powl(long double, long double); | 311 long double powl(long double, long double); |
| 298 | 312 |
| 299 double remainder(double, double); | 313 double remainder(double, double); |
| 300 float remainderf(float, float); | 314 float remainderf(float, float); |
| 301 long double remainderl(long double, long double); | 315 long double remainderl(long double, long double); |
| 302 | 316 |
| 303 double remquo(double, double, int *); | 317 double remquo(double, double, int*); |
| 304 float remquof(float, float, int *); | 318 float remquof(float, float, int*); |
| 305 long double remquol(long double, long double, int *); | 319 long double remquol(long double, long double, int*); |
| 306 | 320 |
| 307 double rint(double); | 321 double rint(double); |
| 308 float rintf(float); | 322 float rintf(float); |
| 309 long double rintl(long double); | 323 long double rintl(long double); |
| 310 | 324 |
| 311 double round(double); | 325 double round(double); |
| 312 float roundf(float); | 326 float roundf(float); |
| 313 long double roundl(long double); | 327 long double roundl(long double); |
| 314 | 328 |
| 315 double scalbln(double, long); | 329 double scalbln(double, long); |
| 316 float scalblnf(float, long); | 330 float scalblnf(float, long); |
| 317 long double scalblnl(long double, long); | 331 long double scalblnl(long double, long); |
| 318 | 332 |
| 319 double scalbn(double, int); | 333 double scalbn(double, int); |
| 320 float scalbnf(float, int); | 334 float scalbnf(float, int); |
| 321 long double scalbnl(long double, int); | 335 long double scalbnl(long double, int); |
| 322 | 336 |
| 323 double sin(double); | 337 double sin(double); |
| 324 float sinf(float); | 338 float sinf(float); |
| 325 long double sinl(long double); | 339 long double sinl(long double); |
| 326 | 340 |
| 327 double sinh(double); | 341 double sinh(double); |
| 328 float sinhf(float); | 342 float sinhf(float); |
| 329 long double sinhl(long double); | 343 long double sinhl(long double); |
| 330 | 344 |
| 331 double sqrt(double); | 345 double sqrt(double); |
| 332 float sqrtf(float); | 346 float sqrtf(float); |
| 333 long double sqrtl(long double); | 347 long double sqrtl(long double); |
| 334 | 348 |
| 335 double tan(double); | 349 double tan(double); |
| 336 float tanf(float); | 350 float tanf(float); |
| 337 long double tanl(long double); | 351 long double tanl(long double); |
| 338 | 352 |
| 339 double tanh(double); | 353 double tanh(double); |
| 340 float tanhf(float); | 354 float tanhf(float); |
| 341 long double tanhl(long double); | 355 long double tanhl(long double); |
| 342 | 356 |
| 343 double tgamma(double); | 357 double tgamma(double); |
| 344 float tgammaf(float); | 358 float tgammaf(float); |
| 345 long double tgammal(long double); | 359 long double tgammal(long double); |
| 346 | 360 |
| 347 double trunc(double); | 361 double trunc(double); |
| 348 float truncf(float); | 362 float truncf(float); |
| 349 long double truncl(long double); | 363 long double truncl(long double); |
| 350 | 364 |
| 351 | |
| 352 #if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) | 365 #if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) |
| 353 #undef MAXFLOAT | 366 #undef MAXFLOAT |
| 354 #define MAXFLOAT 3.40282346638528859812e+38F | 367 #define MAXFLOAT 3.40282346638528859812e+38F |
| 355 #endif | 368 #endif |
| 356 | 369 |
| 357 #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 370 #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 358 #define M_E 2.7182818284590452354 /* e */ | 371 #define M_E 2.7182818284590452354 /* e */ |
| 359 #define M_LOG2E 1.4426950408889634074 /* log_2 e */ | 372 #define M_LOG2E 1.4426950408889634074 /* log_2 e */ |
| 360 #define M_LOG10E 0.43429448190325182765 /* log_10 e */ | 373 #define M_LOG10E 0.43429448190325182765 /* log_10 e */ |
| 361 #define M_LN2 0.69314718055994530942 /* log_e 2 */ | 374 #define M_LN2 0.69314718055994530942 /* log_e 2 */ |
| 362 #define M_LN10 2.30258509299404568402 /* log_e 10 */ | 375 #define M_LN10 2.30258509299404568402 /* log_e 10 */ |
| 363 #define M_PI 3.14159265358979323846 /* pi */ | 376 #define M_PI 3.14159265358979323846 /* pi */ |
| 364 #define M_PI_2 1.57079632679489661923 /* pi/2 */ | 377 #define M_PI_2 1.57079632679489661923 /* pi/2 */ |
| 365 #define M_PI_4 0.78539816339744830962 /* pi/4 */ | 378 #define M_PI_4 0.78539816339744830962 /* pi/4 */ |
| 366 #define M_1_PI 0.31830988618379067154 /* 1/pi */ | 379 #define M_1_PI 0.31830988618379067154 /* 1/pi */ |
| 367 #define M_2_PI 0.63661977236758134308 /* 2/pi */ | 380 #define M_2_PI 0.63661977236758134308 /* 2/pi */ |
| 368 #define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ | 381 #define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ |
| 369 #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ | 382 #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ |
| 370 #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ | 383 #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ |
| 371 | 384 |
| 372 extern int signgam; | 385 extern int signgam; |
| 373 | 386 |
| 374 double j0(double); | 387 double j0(double); |
| 375 double j1(double); | 388 double j1(double); |
| 376 double jn(int, double); | 389 double jn(int, double); |
| 377 | 390 |
| 378 double y0(double); | 391 double y0(double); |
| 379 double y1(double); | 392 double y1(double); |
| 380 double yn(int, double); | 393 double yn(int, double); |
| 381 #endif | 394 #endif |
| 382 | 395 |
| 383 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 396 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 384 #define HUGE 3.40282346638528859812e+38F | 397 #define HUGE 3.40282346638528859812e+38F |
| 385 | 398 |
| 386 double drem(double, double); | 399 double drem(double, double); |
| 387 float dremf(float, float); | 400 float dremf(float, float); |
| 388 | 401 |
| 389 int finite(double); | 402 int finite(double); |
| 390 int finitef(float); | 403 int finitef(float); |
| 391 | 404 |
| 392 double scalb(double, double); | 405 double scalb(double, double); |
| 393 float scalbf(float, float); | 406 float scalbf(float, float); |
| 394 | 407 |
| 395 double significand(double); | 408 double significand(double); |
| 396 float significandf(float); | 409 float significandf(float); |
| 397 | 410 |
| 398 double lgamma_r(double, int*); | 411 double lgamma_r(double, int*); |
| 399 float lgammaf_r(float, int*); | 412 float lgammaf_r(float, int*); |
| 400 | 413 |
| 401 float j0f(float); | 414 float j0f(float); |
| 402 float j1f(float); | 415 float j1f(float); |
| 403 float jnf(int, float); | 416 float jnf(int, float); |
| 404 | 417 |
| 405 float y0f(float); | 418 float y0f(float); |
| 406 float y1f(float); | 419 float y1f(float); |
| 407 float ynf(int, float); | 420 float ynf(int, float); |
| 408 #endif | 421 #endif |
| 409 | 422 |
| 410 #ifdef _GNU_SOURCE | 423 #ifdef _GNU_SOURCE |
| 411 long double lgammal_r(long double, int*); | 424 long double lgammal_r(long double, int*); |
| 412 | 425 |
| 413 void sincos(double, double*, double*); | 426 void sincos(double, double*, double*); |
| 414 void sincosf(float, float*, float*); | 427 void sincosf(float, float*, float*); |
| 415 void sincosl(long double, long double*, long double*); | 428 void sincosl(long double, long double*, long double*); |
| 416 | 429 |
| 417 double exp10(double); | 430 double exp10(double); |
| 418 float exp10f(float); | 431 float exp10f(float); |
| 419 long double exp10l(long double); | 432 long double exp10l(long double); |
| 420 | 433 |
| 421 double pow10(double); | 434 double pow10(double); |
| 422 float pow10f(float); | 435 float pow10f(float); |
| 423 long double pow10l(long double); | 436 long double pow10l(long double); |
| 424 #endif | 437 #endif |
| 425 | 438 |
| 426 #ifdef __cplusplus | 439 #ifdef __cplusplus |
| 427 } | 440 } |
| 428 #endif | 441 #endif |
| 429 | 442 |
| 430 #endif | 443 #endif |
| OLD | NEW |