py/objfloat, py/modmath: Ensure M_PI and M_E defined.

In some compliation enviroments (e.g. mbed online compiler) with
strict standards compliance, <math.h> does not define constants such
as M_PI.  Provide fallback definitions of M_E and M_PI where needed.
stream-refactor
Colin Hogben 2016-05-09 22:11:34 +01:00 committed by Damien George
parent d45e5f8c35
commit a896951a9a
2 changed files with 13 additions and 0 deletions

View File

@ -31,6 +31,11 @@
#include <math.h>
// M_PI is not part of the math.h standard and may not be defined
#ifndef M_PI
#define M_PI (3.14159265358979323846)
#endif
/// \module math - mathematical functions
///
/// The `math` module provides some basic mathematical funtions for

View File

@ -41,6 +41,14 @@
#if MICROPY_OBJ_REPR != MICROPY_OBJ_REPR_C && MICROPY_OBJ_REPR != MICROPY_OBJ_REPR_D
// M_E and M_PI are not part of the math.h standard and may not be defined
#ifndef M_E
#define M_E (2.7182818284590452354)
#endif
#ifndef M_PI
#define M_PI (3.14159265358979323846)
#endif
typedef struct _mp_obj_float_t {
mp_obj_base_t base;
mp_float_t value;