Commit fab0a8b2 authored by Mans Rullgard's avatar Mans Rullgard

libm: add fallbacks for various single-precision functions

Signed-off-by: 's avatarMans Rullgard <mans@mansr.com>
parent c3e73100
......@@ -1125,20 +1125,28 @@ HAVE_LIST_PUB='
'
MATH_FUNCS="
atanf
atan2f
cbrtf
cosf
exp2
exp2f
expf
isinf
isnan
ldexpf
llrint
llrintf
log2
log2f
log10f
lrint
lrintf
powf
rint
round
roundf
sinf
trunc
truncf
"
......
......@@ -31,6 +31,7 @@
#include "libavcodec/aacps_tables.h"
#else
#include "libavutil/common.h"
#include "libavutil/libm.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem.h"
#define NR_ALLPASS_BANDS20 30
......
......@@ -29,6 +29,21 @@
#include "attributes.h"
#include "intfloat.h"
#if !HAVE_ATANF
#undef atanf
#define atanf(x) ((float)atan(x))
#endif
#if !HAVE_ATAN2F
#undef atan2f
#define atan2f(y, x) ((float)atan2(y, x))
#endif
#if !HAVE_POWF
#undef powf
#define powf(x, y) ((float)pow(x, y))
#endif
#if !HAVE_CBRTF
static av_always_inline float cbrtf(float x)
{
......@@ -36,6 +51,16 @@ static av_always_inline float cbrtf(float x)
}
#endif
#if !HAVE_COSF
#undef cosf
#define cosf(x) ((float)cos(x))
#endif
#if !HAVE_EXPF
#undef expf
#define expf(x) ((float)exp(x))
#endif
#if !HAVE_EXP2
#undef exp2
#define exp2(x) exp((x) * 0.693147180559945)
......@@ -66,6 +91,11 @@ static av_always_inline av_const int isnan(float x)
}
#endif /* HAVE_ISNAN */
#if !HAVE_LDEXPF
#undef ldexpf
#define ldexpf(x, exp) ((float)ldexp(x, exp))
#endif
#if !HAVE_LLRINT
#undef llrint
#define llrint(x) ((long long)rint(x))
......@@ -86,6 +116,16 @@ static av_always_inline av_const int isnan(float x)
#define log2f(x) ((float)log2(x))
#endif /* HAVE_LOG2F */
#if !HAVE_LOG10F
#undef log10f
#define log10f(x) ((float)log10(x))
#endif
#if !HAVE_SINF
#undef sinf
#define sinf(x) ((float)sin(x))
#endif
#if !HAVE_RINT
static inline double rint(double x)
{
......
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