Commit 31b835d0 authored by Alex Henrie's avatar Alex Henrie Committed by Alexandre Julliard

msvcr120: Add log1p.

parent 548382e6
......@@ -17429,6 +17429,8 @@ for ac_func in \
llrintf \
llround \
llroundf \
log1p \
log1pf \
log2 \
log2f \
lrint \
......
......@@ -2616,6 +2616,8 @@ AC_CHECK_FUNCS(\
llrintf \
llround \
llroundf \
log1p \
log1pf \
log2 \
log2f \
lrint \
......
......@@ -270,9 +270,9 @@
@ cdecl log(double) ucrtbase.log
@ cdecl log10(double) ucrtbase.log10
@ cdecl -arch=arm,x86_64 log10f(float) ucrtbase.log10f
@ stub log1p
@ stub log1pf
@ stub log1pl
@ cdecl log1p(double) ucrtbase.log1p
@ cdecl log1pf(float) ucrtbase.log1pf
@ cdecl log1pl(double) ucrtbase.log1pl
@ cdecl log2(double) ucrtbase.log2
@ cdecl log2f(float) ucrtbase.log2f
@ cdecl log2l(double) ucrtbase.log2l
......
......@@ -2259,9 +2259,9 @@
@ cdecl -arch=arm,x86_64 logf(float) MSVCRT_logf
@ cdecl log10(double) MSVCRT_log10
@ cdecl -arch=arm,x86_64 log10f(float) MSVCRT_log10f
@ stub log1p
@ stub log1pf
@ stub log1pl
@ cdecl log1p(double) MSVCR120_log1p
@ cdecl log1pf(float) MSVCR120_log1pf
@ cdecl log1pl(double) MSVCR120_log1pl
@ cdecl log2(double) MSVCR120_log2
@ cdecl log2f(float) MSVCR120_log2f
@ cdecl log2l(double) MSVCR120_log2l
......
......@@ -1922,9 +1922,9 @@
@ cdecl -arch=arm,x86_64 logf(float) msvcr120.logf
@ cdecl log10(double) msvcr120.log10
@ cdecl -arch=arm,x86_64 log10f(float) msvcr120.log10f
@ stub log1p
@ stub log1pf
@ stub log1pl
@ cdecl log1p(double) msvcr120.log1p
@ cdecl log1pf(float) msvcr120.log1pf
@ cdecl log1pl(double) msvcr120.log1pl
@ cdecl log2(double) msvcr120.log2
@ cdecl log2f(float) msvcr120.log2f
@ cdecl log2l(double) msvcr120.log2l
......
......@@ -2448,6 +2448,42 @@ LDOUBLE CDECL MSVCR120_expm1l(LDOUBLE x)
}
/*********************************************************************
* log1p (MSVCR120.@)
*/
double CDECL MSVCR120_log1p(double x)
{
if (x < -1) *MSVCRT__errno() = MSVCRT_EDOM;
else if (x == -1) *MSVCRT__errno() = MSVCRT_ERANGE;
#ifdef HAVE_LOG1P
return log1p(x);
#else
return log(1 + x);
#endif
}
/*********************************************************************
* log1pf (MSVCR120.@)
*/
float CDECL MSVCR120_log1pf(float x)
{
if (x < -1) *MSVCRT__errno() = MSVCRT_EDOM;
else if (x == -1) *MSVCRT__errno() = MSVCRT_ERANGE;
#ifdef HAVE_LOG1PF
return log1pf(x);
#else
return log(1 + x);
#endif
}
/*********************************************************************
* log1pl (MSVCR120.@)
*/
LDOUBLE CDECL MSVCR120_log1pl(LDOUBLE x)
{
return MSVCR120_log1p(x);
}
/*********************************************************************
* log2 (MSVCR120.@)
*/
double CDECL MSVCR120_log2(double x)
......
......@@ -2392,9 +2392,9 @@
@ cdecl log(double) MSVCRT_log
@ cdecl log10(double) MSVCRT_log10
@ cdecl -arch=arm,x86_64 log10f(float) MSVCRT_log10f
@ stub log1p
@ stub log1pf
@ stub log1pl
@ cdecl log1p(double) MSVCR120_log1p
@ cdecl log1pf(float) MSVCR120_log1pf
@ cdecl log1pl(double) MSVCR120_log1pl
@ cdecl log2(double) MSVCR120_log2
@ cdecl log2f(float) MSVCR120_log2f
@ cdecl log2l(double) MSVCR120_log2l
......
......@@ -522,6 +522,12 @@
/* Define to 1 if you have the `llroundf' function. */
#undef HAVE_LLROUNDF
/* Define to 1 if you have the `log1p' function. */
#undef HAVE_LOG1P
/* Define to 1 if you have the `log1pf' function. */
#undef HAVE_LOG1PF
/* Define to 1 if you have the `log2' function. */
#undef HAVE_LOG2
......
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