Commit 79715cce authored by Alex Henrie's avatar Alex Henrie Committed by Alexandre Julliard

msvcr120: Add expm1.

parent 26163f5c
......@@ -17421,6 +17421,8 @@ for ac_func in \
erff \
exp2 \
exp2f \
expm1 \
expm1f \
lgamma \
lgammaf \
llrint \
......
......@@ -2608,6 +2608,8 @@ AC_CHECK_FUNCS(\
erff \
exp2 \
exp2f \
expm1 \
expm1f \
lgamma \
lgammaf \
llrint \
......
......@@ -231,9 +231,9 @@
@ cdecl exp2f(float) ucrtbase.exp2f
@ cdecl exp2l(double) ucrtbase.exp2l
@ cdecl -arch=arm,x86_64 expf(float) ucrtbase.expf
@ stub expm1
@ stub expm1f
@ stub expm1l
@ cdecl expm1(double) ucrtbase.expm1
@ cdecl expm1f(float) ucrtbase.expm1f
@ cdecl expm1l(double) ucrtbase.expm1l
@ cdecl fabs(double) ucrtbase.fabs
@ cdecl -arch=arm fabsf(float) ucrtbase.fabsf
@ stub fdim
......
......@@ -2134,9 +2134,9 @@
@ cdecl exp2f(float) MSVCR120_exp2f
@ cdecl exp2l(double) MSVCR120_exp2l
@ cdecl -arch=arm,x86_64 expf(float) MSVCRT_expf
@ stub expm1
@ stub expm1f
@ stub expm1l
@ cdecl expm1(double) MSVCR120_expm1
@ cdecl expm1f(float) MSVCR120_expm1f
@ cdecl expm1l(double) MSVCR120_expm1l
@ cdecl fabs(double) MSVCRT_fabs
@ cdecl -arch=arm,x86_64 fabsf(float) MSVCRT_fabsf
@ cdecl fclose(ptr) MSVCRT_fclose
......
......@@ -1800,9 +1800,9 @@
@ cdecl exp2f(float) msvcr120.exp2f
@ cdecl exp2l(double) msvcr120.exp2l
@ cdecl -arch=arm,x86_64 expf(float) msvcr120.expf
@ stub expm1
@ stub expm1f
@ stub expm1l
@ cdecl expm1(double) msvcr120.expm1
@ cdecl expm1f(float) msvcr120.expm1f
@ cdecl expm1l(double) msvcr120.expm1l
@ cdecl fabs(double) msvcr120.fabs
@ cdecl -arch=arm,x86_64 fabsf(float) msvcr120.fabsf
@ cdecl fclose(ptr) msvcr120.fclose
......
......@@ -2412,6 +2412,42 @@ LDOUBLE CDECL MSVCR120_exp2l(LDOUBLE x)
}
/*********************************************************************
* expm1 (MSVCR120.@)
*/
double CDECL MSVCR120_expm1(double x)
{
#ifdef HAVE_EXPM1
double ret = expm1(x);
#else
double ret = exp(x) - 1;
#endif
if (!isfinite(ret)) *MSVCRT__errno() = MSVCRT_ERANGE;
return ret;
}
/*********************************************************************
* expm1f (MSVCR120.@)
*/
float CDECL MSVCR120_expm1f(float x)
{
#ifdef HAVE_EXPM1F
double ret = expm1f(x);
#else
double ret = exp(x) - 1;
#endif
if (!isfinite(ret)) *MSVCRT__errno() = MSVCRT_ERANGE;
return ret;
}
/*********************************************************************
* expm1l (MSVCR120.@)
*/
LDOUBLE CDECL MSVCR120_expm1l(LDOUBLE x)
{
return MSVCR120_expm1(x);
}
/*********************************************************************
* log2 (MSVCR120.@)
*/
double CDECL MSVCR120_log2(double x)
......
......@@ -2277,9 +2277,9 @@
@ cdecl exp2f(float) MSVCR120_exp2f
@ cdecl exp2l(double) MSVCR120_exp2l
@ cdecl -arch=arm,x86_64 expf(float) MSVCRT_expf
@ stub expm1
@ stub expm1f
@ stub expm1l
@ cdecl expm1(double) MSVCR120_expm1
@ cdecl expm1f(float) MSVCR120_expm1f
@ cdecl expm1l(double) MSVCR120_expm1l
@ cdecl fabs(double) MSVCRT_fabs
@ cdecl -arch=arm fabsf(float) MSVCRT_fabsf
@ cdecl fclose(ptr) MSVCRT_fclose
......
......@@ -156,6 +156,12 @@
/* Define to 1 if you have the `exp2f' function. */
#undef HAVE_EXP2F
/* Define to 1 if you have the `expm1' function. */
#undef HAVE_EXPM1
/* Define to 1 if you have the `expm1f' function. */
#undef HAVE_EXPM1F
/* Define to 1 if you have the `fallocate' function. */
#undef HAVE_FALLOCATE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment