From e65d8509f0657810511b96f2eec43b7cf31434e9 Mon Sep 17 00:00:00 2001
From: James Almer <jamrial@gmail.com>
Date: Tue, 22 Jan 2013 04:10:21 -0300
Subject: [PATCH] libm: Add fallback definition for cbrt() using pow()

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

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

diff --git a/configure b/configure
index 8460e5fad29..a741fc36df2 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 bfcc21c5daf..6c17b287b45 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)
 {
-- 
GitLab