diff options
Diffstat (limited to 'numpy/core')
| -rw-r--r-- | numpy/core/include/numpy/npy_math.h | 4 | ||||
| -rw-r--r-- | numpy/core/setup_common.py | 9 | ||||
| -rw-r--r-- | numpy/core/src/private/npy_config.h | 26 |
3 files changed, 36 insertions, 3 deletions
diff --git a/numpy/core/include/numpy/npy_math.h b/numpy/core/include/numpy/npy_math.h index b7920460d..461651b08 100644 --- a/numpy/core/include/numpy/npy_math.h +++ b/numpy/core/include/numpy/npy_math.h @@ -164,7 +164,7 @@ double npy_spacing(double x); #ifndef NPY_HAVE_DECL_ISNAN #define npy_isnan(x) ((x) != (x)) #else - #ifdef _MSC_VER + #if defined(_MSC_VER) && (_MSC_VER < 1900) #define npy_isnan(x) _isnan((x)) #else #define npy_isnan(x) isnan(x) @@ -195,7 +195,7 @@ double npy_spacing(double x); #ifndef NPY_HAVE_DECL_ISINF #define npy_isinf(x) (!npy_isfinite(x) && !npy_isnan(x)) #else - #ifdef _MSC_VER + #if defined(_MSC_VER) && (_MSC_VER < 1900) #define npy_isinf(x) (!_finite((x)) && !_isnan((x))) #else #define npy_isinf(x) isinf((x)) diff --git a/numpy/core/setup_common.py b/numpy/core/setup_common.py index be5673a47..81eec041b 100644 --- a/numpy/core/setup_common.py +++ b/numpy/core/setup_common.py @@ -171,6 +171,15 @@ def check_long_double_representation(cmd): cmd._check_compiler() body = LONG_DOUBLE_REPRESENTATION_SRC % {'type': 'long double'} + # Disable whole program optimization (the default on vs2015, with python 3.5+) + # which generates intermediary object files and prevents checking the + # float representation. + if sys.platform == "win32": + try: + cmd.compiler.compile_options.remove("/GL") + except ValueError: + pass + # We need to use _compile because we need the object filename src, object = cmd._compile(body, None, None, 'c') try: diff --git a/numpy/core/src/private/npy_config.h b/numpy/core/src/private/npy_config.h index f768c9097..70a4c0c1f 100644 --- a/numpy/core/src/private/npy_config.h +++ b/numpy/core/src/private/npy_config.h @@ -6,9 +6,33 @@ #include "numpy/npy_cpu.h" /* Disable broken MS math functions */ -#if defined(_MSC_VER) || defined(__MINGW32_VERSION) +#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__MINGW32_VERSION) + #undef HAVE_ATAN2 +#undef HAVE_ATAN2F +#undef HAVE_ATAN2L + #undef HAVE_HYPOT +#undef HAVE_HYPOTF +#undef HAVE_HYPOTL + +#endif + +#if defined(_MSC_VER) && (_MSC_VER == 1900) + +#undef HAVE_CASIN +#undef HAVE_CASINF +#undef HAVE_CASINL +#undef HAVE_CASINH +#undef HAVE_CASINHF +#undef HAVE_CASINHL +#undef HAVE_CATAN +#undef HAVE_CATANF +#undef HAVE_CATANL +#undef HAVE_CATANH +#undef HAVE_CATANHF +#undef HAVE_CATANHL + #endif /* |
