libm: provide fallback definition for cbrtf() using powf()

This adds a fallback for cbrtf() using powf(x, 1/3).  Since
powf() with a non-integer exponent requires a non-negative
base, special handling of negative inputs is needed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
Mans Rullgard 2012-06-22 15:37:46 +01:00
parent 4b1b1449d9
commit 153335625c
2 changed files with 9 additions and 0 deletions

2
configure vendored
View File

@ -1059,6 +1059,7 @@ HAVE_LIST="
asm_mod_y
attribute_may_alias
attribute_packed
cbrtf
closesocket
cmov
dcbzl
@ -2918,6 +2919,7 @@ done
check_lib math.h sin -lm && LIBM="-lm"
enabled vaapi && require vaapi va/va.h vaInitialize -lva
check_mathfunc cbrtf
check_mathfunc exp2
check_mathfunc exp2f
check_mathfunc llrint

View File

@ -28,6 +28,13 @@
#include "config.h"
#include "attributes.h"
#if !HAVE_CBRTF
static av_always_inline float cbrtf(float x)
{
return x < 0 ? -powf(-x, 1.0 / 3.0) : powf(x, 1.0 / 3.0);
}
#endif
#if !HAVE_EXP2
#undef exp2
#define exp2(x) exp((x) * 0.693147180559945)