Define additional math.h constants if not already defined
authorJonathan Liu <net147@gmail.com>
Fri, 19 Oct 2012 09:54:32 +0000 (20:54 +1100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 29 Oct 2012 23:06:26 +0000 (00:06 +0100)
The M_E, M_PI_2, etc. math.h constants are not defined with MinGW-w64
GCC when compiling with -std=c++11.

Task-number: QTBUG-27561
Change-Id: I2267c170dd3788abc9c37425a9be514bbae51f5a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Alexey Pavlov <alexpux@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/corelib/kernel/qmath.h

index e76c2da..c5aa90e 100644 (file)
@@ -192,10 +192,58 @@ inline qreal qPow(qreal x, qreal y)
         return pow(x, y);
 }
 
+#ifndef M_E
+#define M_E (2.7182818284590452354)
+#endif
+
+#ifndef M_LOG2E
+#define M_LOG2E (1.4426950408889634074)
+#endif
+
+#ifndef M_LOG10E
+#define M_LOG10E (0.43429448190325182765)
+#endif
+
+#ifndef M_LN2
+#define M_LN2 (0.69314718055994530942)
+#endif
+
+#ifndef M_LN10
+#define M_LN10 (2.30258509299404568402)
+#endif
+
 #ifndef M_PI
 #define M_PI (3.14159265358979323846)
 #endif
 
+#ifndef M_PI_2
+#define M_PI_2 (1.57079632679489661923)
+#endif
+
+#ifndef M_PI_4
+#define M_PI_4 (0.78539816339744830962)
+#endif
+
+#ifndef M_1_PI
+#define M_1_PI (0.31830988618379067154)
+#endif
+
+#ifndef M_2_PI
+#define M_2_PI (0.63661977236758134308)
+#endif
+
+#ifndef M_2_SQRTPI
+#define M_2_SQRTPI (1.12837916709551257390)
+#endif
+
+#ifndef M_SQRT2
+#define M_SQRT2 (1.41421356237309504880)
+#endif
+
+#ifndef M_SQRT1_2
+#define M_SQRT1_2 (0.70710678118654752440)
+#endif
+
 inline qreal qFastSin(qreal x)
 {
     int si = int(x * (0.5 * QT_SINE_TABLE_SIZE / M_PI)); // Would be more accurate with qRound, but slower.