mirror of https://git.ffmpeg.org/ffmpeg.git
libm: add fallbacks for various single-precision functions
Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
c3e73100af
commit
fab0a8b2c6
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue