Updated msvcrt-Math_Precision patchset

Fixes: https://bugs.winehq.org/show_bug.cgi?id=50161
Fixes: https://bugs.winehq.org/show_bug.cgi?id=50162
This commit is contained in:
Alistair Leslie-Hughes 2020-11-22 10:43:02 +11:00
parent 371d6ff606
commit f257f37b92

View File

@ -1,4 +1,4 @@
From e4fa62af575322bf44df531caaaf92fe6b0e7329 Mon Sep 17 00:00:00 2001
From 25f4c3fd7e333d9da438145ee0f0ed56ef74f4a6 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 10 Apr 2015 07:51:16 +0200
Subject: [PATCH] msvcrt: Calculate sinh/cosh/exp/pow with higher precision.
@ -6,15 +6,14 @@ Subject: [PATCH] msvcrt: Calculate sinh/cosh/exp/pow with higher precision.
Based on a patch by Zheng Chen.
---
dlls/msvcrt/math.c | 2 ++
dlls/msvcrt/unixlib.c | 61 ++++++++++++++++++++++++++++++++++++++++---
2 files changed, 60 insertions(+), 3 deletions(-)
dlls/msvcrt/unixlib.c | 63 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 59 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcrt/unixlib.c b/dlls/msvcrt/unixlib.c
index edc3d96af4a..ec2a313b892 100644
index 3913d61048a..a5a41df08a3 100644
--- a/dlls/msvcrt/unixlib.c
+++ b/dlls/msvcrt/unixlib.c
@@ -41,6 +41,61 @@
@@ -42,6 +42,61 @@
WINE_DEFAULT_DEBUG_CHANNEL(msvcrt);
@ -76,16 +75,16 @@ index edc3d96af4a..ec2a313b892 100644
/*********************************************************************
* acosh
*/
@@ -165,7 +220,7 @@ static float CDECL unix_ceilf( float x )
@@ -182,7 +237,7 @@ static float CDECL unix_cosf( float x )
*/
static double CDECL unix_cos( double x )
static double CDECL unix_cosh( double x )
{
- return cos( x );
- return cosh( x );
+ return precise_cosh( x );
}
/*********************************************************************
@@ -253,7 +308,7 @@ static float CDECL unix_erfcf(float x)
@@ -254,7 +309,7 @@ static float CDECL unix_erfcf(float x)
*/
static double CDECL unix_exp( double x )
{
@ -94,7 +93,16 @@ index edc3d96af4a..ec2a313b892 100644
}
/*********************************************************************
@@ -860,7 +915,7 @@ static float CDECL unix_sinf( float x )
@@ -689,7 +744,7 @@ static float CDECL unix_nexttowardf(float num, double next)
*/
static double CDECL unix_pow( double x, double y )
{
- return pow( x, y );
+ return precise_pow( x, y );
}
/*********************************************************************
@@ -861,7 +916,7 @@ static float CDECL unix_sinf( float x )
*/
static double CDECL unix_sinh( double x )
{