Rebase against 611c15953e8297ac1762abfb5aeca6665985fc0f.

This commit is contained in:
Sebastian Lackner
2017-08-01 05:55:02 +02:00
parent ea9d4a0fa1
commit 71f0cf0aef
4 changed files with 37 additions and 34 deletions

View File

@@ -1,4 +1,4 @@
From 24730a3c3015b70bbf0685653c44dcbd768f4fd5 Mon Sep 17 00:00:00 2001
From 94ca142c68870be4e9dcb898fdc01d574de68e33 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 10 Apr 2015 07:51:16 +0200
Subject: msvcrt: Calculate sinh/cosh/exp/pow with higher precision. (v2)
@@ -9,7 +9,7 @@ Based on a patch by Zheng Chen.
1 file changed, 59 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c
index 079446d04ed..924e3432881 100644
index 2001d44a0b4..04b14788919 100644
--- a/dlls/msvcrt/math.c
+++ b/dlls/msvcrt/math.c
@@ -59,6 +59,61 @@ static MSVCRT_matherr_func MSVCRT_default_matherr_func = NULL;
@@ -74,16 +74,16 @@ index 079446d04ed..924e3432881 100644
void msvcrt_init_math(void)
{
sse2_supported = sse2_enabled = IsProcessorFeaturePresent( PF_XMMI64_INSTRUCTIONS_AVAILABLE );
@@ -398,7 +453,7 @@ double CDECL MSVCRT_cos( double x )
@@ -399,7 +454,7 @@ double CDECL MSVCRT_cos( double x )
double CDECL MSVCRT_cosh( double x )
{
if (!isfinite(x)) *MSVCRT__errno() = MSVCRT_EDOM;
if (isnan(x)) *MSVCRT__errno() = MSVCRT_EDOM;
- return cosh(x);
+ return precise_cosh(x);
}
/*********************************************************************
@@ -406,7 +461,7 @@ double CDECL MSVCRT_cosh( double x )
@@ -407,7 +462,7 @@ double CDECL MSVCRT_cosh( double x )
*/
double CDECL MSVCRT_exp( double x )
{
@@ -92,7 +92,7 @@ index 079446d04ed..924e3432881 100644
if (isnan(x)) *MSVCRT__errno() = MSVCRT_EDOM;
else if (isfinite(x) && !isfinite(ret)) *MSVCRT__errno() = MSVCRT_ERANGE;
return ret;
@@ -447,7 +502,7 @@ double CDECL MSVCRT_log10( double x )
@@ -448,7 +503,7 @@ double CDECL MSVCRT_log10( double x )
double CDECL MSVCRT_pow( double x, double y )
{
/* FIXME: If x < 0 and y is not integral, set EDOM */
@@ -101,10 +101,10 @@ index 079446d04ed..924e3432881 100644
if (!isfinite(z)) *MSVCRT__errno() = MSVCRT_EDOM;
return z;
}
@@ -467,7 +522,7 @@ double CDECL MSVCRT_sin( double x )
@@ -468,7 +523,7 @@ double CDECL MSVCRT_sin( double x )
double CDECL MSVCRT_sinh( double x )
{
if (!isfinite(x)) *MSVCRT__errno() = MSVCRT_EDOM;
if (isnan(x)) *MSVCRT__errno() = MSVCRT_EDOM;
- return sinh(x);
+ return precise_sinh(x);
}