Define additional math.h constants if not already defined

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>
bb10
Jonathan Liu 2012-10-19 20:54:32 +11:00 committed by The Qt Project
parent f7893223e8
commit d3c1a9f387
1 changed files with 48 additions and 0 deletions

View 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.