On UCRT, there are separate -f suffixed math functions that can
be faster than doing the regular version that operates on doubles
and just truncate the results to float.
---
 mingw-w64-headers/crt/math.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
index 79f671fbc..97f7b4fb7 100644
--- a/mingw-w64-headers/crt/math.h
+++ b/mingw-w64-headers/crt/math.h
@@ -678,19 +678,19 @@ __mingw_choose_expr (                                     
    \
 
 /* 7.12.5 Hyperbolic functions: Double in C89  */
   extern float __cdecl sinhf(float _X);
-#ifndef __CRT__NO_INLINE
+#if !defined(__CRT__NO_INLINE) && !defined(_UCRT)
   __CRT_INLINE float sinhf(float _X) { return ((float)sinh((double)_X)); }
 #endif
   extern long double __cdecl sinhl(long double);
 
   extern float __cdecl coshf(float _X);
-#ifndef __CRT__NO_INLINE
+#if !defined(__CRT__NO_INLINE) && !defined(_UCRT)
   __CRT_INLINE float coshf(float _X) { return ((float)cosh((double)_X)); }
 #endif
   extern long double __cdecl coshl(long double);
 
   extern float __cdecl tanhf(float _X);
-#ifndef __CRT__NO_INLINE
+#if !defined(__CRT__NO_INLINE) && !defined(_UCRT)
   __CRT_INLINE float tanhf(float _X) { return ((float)tanh((double)_X)); }
 #endif
   extern long double __cdecl tanhl(long double);
@@ -714,7 +714,7 @@ __mingw_choose_expr (                                       
  \
 /* Exponentials and logarithms  */
 /* 7.12.6.1 Double in C89 */
   extern float __cdecl expf(float _X);
-#ifndef __CRT__NO_INLINE
+#if !defined(__CRT__NO_INLINE) && !defined(_UCRT)
   __CRT_INLINE float expf(float _X) { return ((float)exp((double)_X)); }
 #endif
   extern long double __cdecl expl(long double);
@@ -732,7 +732,7 @@ __mingw_choose_expr (                                       
  \
 
 /* 7.12.6.4 Double in C89 */
   extern float frexpf(float _X,int *_Y);
-#ifndef __CRT__NO_INLINE
+#if !defined(__CRT__NO_INLINE) && !defined(_UCRT)
   __CRT_INLINE float frexpf(float _X,int *_Y) { return 
((float)frexp((double)_X,_Y)); }
 #endif
   extern long double __cdecl frexpl(long double,int *);
@@ -746,7 +746,7 @@ __mingw_choose_expr (                                       
  \
 
 /* 7.12.6.6  Double in C89 */
   extern float __cdecl ldexpf(float _X,int _Y);
-#ifndef __CRT__NO_INLINE
+#if !defined(__CRT__NO_INLINE) && !defined(_UCRT)
   __CRT_INLINE float __cdecl ldexpf (float x, int expn) { return (float) ldexp 
((double)x, expn); }
 #endif
   extern long double __cdecl ldexpl (long double, int);
@@ -880,14 +880,14 @@ __mingw_choose_expr (                                     
    \
 /* 7.12.7.3  */
   extern double __cdecl hypot (double, double) 
__MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
   extern float __cdecl hypotf (float x, float y);
-#ifndef __CRT__NO_INLINE
+#if !defined(__CRT__NO_INLINE) && !defined(_UCRT)
   __CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot 
((double)x, (double)y);}
 #endif
   extern long double __cdecl hypotl (long double, long double);
 
 /* 7.12.7.4 The pow functions. Double in C89 */
   extern float __cdecl powf(float _X,float _Y);
-#ifndef __CRT__NO_INLINE
+#if !defined(__CRT__NO_INLINE) && !defined(_UCRT)
   __CRT_INLINE float powf(float _X,float _Y) { return 
((float)pow((double)_X,(double)_Y)); }
 #endif
   extern long double __cdecl powl (long double, long double);
-- 
2.34.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to