[FFmpeg-devel] [PATCH] libm: Add fallback definition for cbrt() using pow()

James Almer jamrial at gmail.com
Tue Jan 22 08:10:21 CET 2013


The function is known to be missing in at least one target (MSVC).

Signed-off-by: James Almer <jamrial at gmail.com>
---
 configure        | 1 +
 libavutil/libm.h | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/configure b/configure
index 8460e5f..a741fc3 100755
--- a/configure
+++ b/configure
@@ -1300,6 +1300,7 @@ HAVE_LIST_PUB='
 MATH_FUNCS="
     atanf
     atan2f
+    cbrt
     cbrtf
     cosf
     exp2
diff --git a/libavutil/libm.h b/libavutil/libm.h
index bfcc21c..6c17b28 100644
--- a/libavutil/libm.h
+++ b/libavutil/libm.h
@@ -48,6 +48,13 @@
 #define powf(x, y) ((float)pow(x, y))
 #endif
 
+#if !HAVE_CBRT
+static av_always_inline double cbrt(double x)
+{
+    return x < 0 ? -pow(-x, 1.0 / 3.0) : pow(x, 1.0 / 3.0);
+}
+#endif
+
 #if !HAVE_CBRTF
 static av_always_inline float cbrtf(float x)
 {
-- 
1.7.12.4



More information about the ffmpeg-devel mailing list