Unified · Split
| @@ -252,12 +252,13 @@ __CRT_INLINE long double __cdecl scalbnl(long double x, int n) { · 251 unmodified lines | ||
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 | __CRT_INLINE double __cdecl scalbln(double x, long n) { |
| 255 | − int m = n > INT_MAX ? INT_MAX : (n < INT_MIN ? INT_MIN : n); | |
| 256 | − return scalbn(x, m); | |
| 255 | + return scalbn(x, n); | |
| 257 | 256 | } |
| 258 | 257 | __CRT_INLINE float __cdecl scalblnf(float x, long n) { |
| 259 | − int m = n > INT_MAX ? INT_MAX : (n < INT_MIN ? INT_MIN : n); | |
| 260 | − return scalbn(x, m); | |
| 258 | + return scalbn(x, n); | |
| 259 | +} | |
| 260 | +__CRT_INLINE long double __cdecl scalblnl(long double x, long n) { | |
| 261 | + return scalbn(x, n); | |
| 261 | 262 | } |
| 262 | 263 | |
| 263 | 264 | |
| @@ -293,6 +294,9 @@ __CRT_INLINE float __cdecl rintf(float x) { · 29 unmodified lines | ||
| 293 | 294 | "fstps %0\n" : "=m" (retval) : "m" (x)); |
| 294 | 295 | return retval; |
| 295 | 296 | } |
| 297 | +__CRT_INLINE long double __cdecl rintl (long double x) { | |
| 298 | + return rint(x); | |
| 299 | +} | |
| 296 | 300 | |
| 297 | 301 | |
| 298 | 302 | /* 7.12.9.5 */ |
| @@ -312,6 +316,11 @@ __CRT_INLINE long __cdecl lrintf(float x) { · 13 unmodified lines | ||
| 312 | 316 | return retval; |
| 313 | 317 | } |
| 314 | 318 | |
| 319 | +__CRT_INLINE long __cdecl lrintl (long double x) { | |
| 320 | + return lrint(x); | |
| 321 | +} | |
| 322 | + | |
| 323 | + | |
| 315 | 324 | __CRT_INLINE long long __cdecl llrint(double x) { |
| 316 | 325 | long long retval; |
| 317 | 326 | __asm__ __volatile__ |
| @@ -328,48 +337,12 @@ __CRT_INLINE long long __cdecl llrintf(float x) { · 10 unmodified lines | ||
| 328 | 337 | return retval; |
| 329 | 338 | } |
| 330 | 339 | |
| 331 | −/* | |
| 332 | − __CRT_INLINE long double __cdecl rintl (long double x) { | |
| 333 | − long double retval; | |
| 334 | − __asm__ ( | |
| 335 | − "fldt %1\n" | |
| 336 | − "frndint \n" | |
| 337 | − "fstpt %0\n" : "=m" (retval) : "m" (x)); | |
| 338 | − return retval; | |
| 339 | − } | |
| 340 | − __CRT_INLINE long __cdecl lrintl (long double x) { | |
| 341 | − long retval; | |
| 342 | − __asm__ __volatile__ | |
| 343 | − ("fldt %1\n" | |
| 344 | − "fistpl %0" : "=m" (retval) : "m" (x)); | |
| 345 | − return retval; | |
| 346 | − } | |
| 347 | − __CRT_INLINE long long __cdecl llrintl (long double x) { | |
| 348 | − long long retval; | |
| 349 | − __asm__ __volatile__ | |
| 350 | − ("fldt %1\n" | |
| 351 | − "fistpll %0" : "=m" (retval) : "m" (x)); | |
| 352 | − return retval; | |
| 353 | − } | |
| 354 | − __CRT_INLINE float __cdecl fabsf (float x) { | |
| 355 | − float res; | |
| 356 | − __asm__ ("fabs;" : "=t" (res) : "0" (x)); | |
| 357 | − return res; | |
| 358 | − } | |
| 359 | −*/ | |
| 360 | − | |
| 361 | −__CRT_INLINE long double __cdecl rintl(long double x) { | |
| 362 | − return rint(x); | |
| 363 | −} | |
| 364 | −__CRT_INLINE long __cdecl lrintl(long double x) { | |
| 365 | − return lrint(x); | |
| 366 | −} | |
| 367 | −__CRT_INLINE long long __cdecl llrintl(long double x) { | |
| 340 | +__CRT_INLINE long long __cdecl llrintl (long double x) { | |
| 368 | 341 | return llrint(x); |
| 369 | 342 | } |
| 370 | 343 | |
| 371 | 344 | |
| 372 | −__CRT_INLINE double trunc(double _x) { | |
| 345 | +__CRT_INLINE double __cdecl trunc(double _x) { | |
| 373 | 346 | double retval; |
| 374 | 347 | unsigned short saved_cw; |
| 375 | 348 | unsigned short tmp_cw; |
| @@ -385,7 +358,7 @@ __CRT_INLINE double trunc(double _x) { · 9 unmodified lines | ||
| 385 | 358 | } |
| 386 | 359 | |
| 387 | 360 | __CRT_INLINE float __cdecl truncf(float x) { |
| 388 | − return (float) ((int) x); | |
| 361 | + return (float) ((intptr_t) x); | |
| 389 | 362 | } |
| 390 | 363 | __CRT_INLINE long double __cdecl truncl(long double x) { |
| 391 | 364 | return trunc(x); |
| @@ -498,13 +471,13 @@ __CRT_INLINE long double __cdecl expm1l(long double x) { · 106 unmodified lines | ||
| 498 | 471 | |
| 499 | 472 | |
| 500 | 473 | __CRT_INLINE double __cdecl cbrt(double x) { |
| 501 | − return (1 - ((x < 0.0) << 1)) * pow(fabs(x), 1/3.0); | |
| 474 | + return copysign(pow(fabs(x), 1/3.0), x); | |
| 502 | 475 | } |
| 503 | 476 | __CRT_INLINE float __cdecl cbrtf(float x) { |
| 504 | − return (1 - ((x < 0.0f) << 1)) * powf(fabsf((float) x), 1/3.0f); | |
| 477 | + return copysignf(pow(fabs(x), 1/3.0), x); | |
| 505 | 478 | } |
| 506 | 479 | __CRT_INLINE long double __cdecl cbrtl(long double x) { |
| 507 | − return (1 - ((x < 0.0) << 1)) * pow(fabs(x), 1/3.0); | |
| 480 | + return copysign(pow(fabs(x), 1/3.0), x); | |
| 508 | 481 | } |
| 509 | 482 | |
| 510 | 483 | |
| @@ -512,7 +485,7 @@ __CRT_INLINE double __cdecl log2(double x) { · 1 unmodified line | ||
| 512 | 485 | return log(x) * 1.4426950408889634073599246810019; |
| 513 | 486 | } |
| 514 | 487 | __CRT_INLINE float __cdecl log2f(float x) { |
| 515 | − return logf(x) * 1.4426950408889634073599246810019f; | |
| 488 | + return log(x) * 1.4426950408889634073599246810019; | |
| 516 | 489 | } |
| 517 | 490 | __CRT_INLINE long double __cdecl log2l(long double x) { |
| 518 | 491 | return log(x) * 1.4426950408889634073599246810019; |
| @@ -523,7 +496,7 @@ __CRT_INLINE double __cdecl exp2(double x) { · 4 unmodified lines | ||
| 523 | 496 | return exp(x * 0.69314718055994530941723212145818); |
| 524 | 497 | } |
| 525 | 498 | __CRT_INLINE float __cdecl exp2f(float x) { |
| 526 | − return expf(x * 0.69314718055994530941723212145818f); | |
| 499 | + return exp(x * 0.69314718055994530941723212145818); | |
| 527 | 500 | } |
| 528 | 501 | __CRT_INLINE long double __cdecl exp2l(long double x) { |
| 529 | 502 | return exp(x * 0.69314718055994530941723212145818); |