Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
66bef6db
Commit
66bef6db
authored
Apr 03, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcrt: Use the sinhf() implementation from the bundled musl library.
With the changes from
4fd9daea
.
parent
248a1737
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
36 deletions
+5
-36
math.c
dlls/msvcrt/math.c
+0
-36
sinhf.c
libs/musl/src/math/sinhf.c
+5
-0
No files found.
dlls/msvcrt/math.c
View file @
66bef6db
...
...
@@ -983,8 +983,6 @@ float CDECL cosf( float x )
}
}
extern
float
__expo2f
(
float
x
,
float
sign
);
/*********************************************************************
* expf (MSVCRT.@)
*/
...
...
@@ -1277,40 +1275,6 @@ float CDECL sinf( float x )
}
}
/*********************************************************************
* sinhf (MSVCRT.@)
*/
float
CDECL
sinhf
(
float
x
)
{
UINT32
ui
=
*
(
UINT32
*
)
&
x
;
float
t
,
h
,
absx
;
h
=
0
.
5
;
if
(
ui
>>
31
)
h
=
-
h
;
/* |x| */
ui
&=
0x7fffffff
;
absx
=
*
(
float
*
)
&
ui
;
/* |x| < log(FLT_MAX) */
if
(
ui
<
0x42b17217
)
{
t
=
expm1f
(
absx
);
if
(
ui
<
0x3f800000
)
{
if
(
ui
<
0x3f800000
-
(
12
<<
23
))
return
x
;
return
h
*
(
2
*
t
-
t
*
t
/
(
t
+
1
));
}
return
h
*
(
t
+
t
/
(
t
+
1
));
}
/* |x| > logf(FLT_MAX) or nan */
if
(
ui
>
0x7f800000
)
*
(
DWORD
*
)
&
t
=
*
(
DWORD
*
)
&
x
|
0x400000
;
else
t
=
__expo2f
(
absx
,
2
*
h
);
return
t
;
}
static
BOOL
sqrtf_validate
(
float
*
x
)
{
short
c
=
_fdclass
(
*
x
);
...
...
libs/musl/src/math/sinhf.c
View file @
66bef6db
...
...
@@ -3,6 +3,7 @@
float
__cdecl
sinhf
(
float
x
)
{
union
{
float
f
;
uint32_t
i
;}
u
=
{.
f
=
x
};
uint32_t
sign
=
u
.
i
&
0x80000000
;
uint32_t
w
;
float
t
,
h
,
absx
;
...
...
@@ -26,6 +27,10 @@ float __cdecl sinhf(float x)
}
/* |x| > logf(FLT_MAX) or nan */
if
(
w
>
0x7f800000
)
{
u
.
i
=
w
|
sign
|
0x400000
;
return
u
.
f
;
}
t
=
__expo2f
(
absx
,
2
*
h
);
return
t
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment