diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2017-08-17 09:42:39 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-17 09:42:39 -0500 |
commit | b9e5ea63c707747d7999a644be8b30d95eaceded (patch) | |
tree | 01b68eca76a5a8d96c678ff44197623eb5bbaf11 /numpy/core/src | |
parent | 26c79664d2edd48e1777cc4b31ecb952e2ec30d5 (diff) | |
parent | 3cfe9360e827dde42ff736e34760d90a29394819 (diff) | |
download | numpy-b9e5ea63c707747d7999a644be8b30d95eaceded.tar.gz |
Merge pull request #9575 from pv/cabs-blacklist
BUG: deal with broken cabs*() for MSVC on win32
Diffstat (limited to 'numpy/core/src')
-rw-r--r-- | numpy/core/src/multiarray/multiarray_tests.c.src | 119 | ||||
-rw-r--r-- | numpy/core/src/private/npy_config.h | 4 |
2 files changed, 122 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/multiarray_tests.c.src b/numpy/core/src/multiarray/multiarray_tests.c.src index 657c4064e..a20cf6257 100644 --- a/numpy/core/src/multiarray/multiarray_tests.c.src +++ b/numpy/core/src/multiarray/multiarray_tests.c.src @@ -3,6 +3,7 @@ #include <Python.h> #define _NPY_NO_DEPRECATIONS /* for NPY_CHAR */ #include "numpy/arrayobject.h" +#include "numpy/npy_math.h" #include "mem_overlap.h" #include "npy_extint128.h" #include "common.h" @@ -1586,10 +1587,98 @@ get_fpu_mode(PyObject *NPY_UNUSED(self), PyObject *args) return PyLong_FromLongLong(cw); } #else - return Py_RETURN_NONE; + Py_RETURN_NONE; #endif } +/* + * npymath wrappers + */ + +/**begin repeat + * #name = cabs, carg# + */ + +/**begin repeat1 + * #itype = npy_cfloat, npy_cdouble, npy_clongdouble# + * #ITYPE = NPY_CFLOAT, NPY_CDOUBLE, NPY_CLONGDOUBLE# + * #otype = npy_float, npy_double, npy_longdouble# + * #OTYPE = NPY_FLOAT, NPY_DOUBLE, NPY_LONGDOUBLE# + * #suffix= f, , l# + */ + +static PyObject * +call_npy_@name@@suffix@(PyObject *NPY_UNUSED(self), PyObject *args) +{ + PyObject *z_py = NULL, *z_arr = NULL, *w_arr = NULL; + + if (!PyArg_ParseTuple(args, "O", &z_py)) { + return NULL; + } + + z_arr = PyArray_FROMANY(z_py, @ITYPE@, 0, 0, NPY_ARRAY_CARRAY_RO); + if (z_arr == NULL) { + return NULL; + } + + w_arr = PyArray_SimpleNew(0, NULL, @OTYPE@); + if (w_arr == NULL) { + Py_DECREF(z_arr); + return NULL; + } + + *(@otype@*)PyArray_DATA((PyArrayObject *)w_arr) = + npy_@name@@suffix@(*(@itype@*)PyArray_DATA((PyArrayObject *)z_arr)); + + Py_DECREF(z_arr); + return w_arr; +} + +/**end repeat1**/ + +/**end repeat**/ + +/**begin repeat + * #name = log10, cosh, sinh, tan, tanh# + */ + +/**begin repeat1 + * #type = npy_float, npy_double, npy_longdouble# + * #TYPE = NPY_FLOAT, NPY_DOUBLE, NPY_LONGDOUBLE# + * #suffix= f, , l# + */ + +static PyObject * +call_npy_@name@@suffix@(PyObject *NPY_UNUSED(self), PyObject *args) +{ + PyObject *z_py = NULL, *z_arr = NULL, *w_arr = NULL; + + if (!PyArg_ParseTuple(args, "O", &z_py)) { + return NULL; + } + + z_arr = PyArray_FROMANY(z_py, @TYPE@, 0, 0, NPY_ARRAY_CARRAY_RO); + if (z_arr == NULL) { + return NULL; + } + + w_arr = PyArray_SimpleNew(0, NULL, @TYPE@); + if (w_arr == NULL) { + Py_DECREF(z_arr); + return NULL; + } + + *(@type@*)PyArray_DATA((PyArrayObject *)w_arr) = + npy_@name@@suffix@(*(@type@*)PyArray_DATA((PyArrayObject *)z_arr)); + + Py_DECREF(z_arr); + return w_arr; +} + +/**end repeat1**/ + +/**end repeat**/ + static PyMethodDef Multiarray_TestsMethods[] = { {"IsPythonScalar", @@ -1684,6 +1773,34 @@ static PyMethodDef Multiarray_TestsMethods[] = { {"get_fpu_mode", get_fpu_mode, METH_VARARGS, get_fpu_mode_doc}, +/**begin repeat + * #name = cabs, carg# + */ + +/**begin repeat1 + * #suffix = f, , l# + */ + {"npy_@name@@suffix@", + call_npy_@name@@suffix@, + METH_VARARGS, NULL}, +/**end repeat1**/ + +/**end repeat**/ + +/**begin repeat + * #name = log10, cosh, sinh, tan, tanh# + */ + +/**begin repeat1 + * #suffix= f, , l# + */ + {"npy_@name@@suffix@", + call_npy_@name@@suffix@, + METH_VARARGS, NULL}, +/**end repeat1**/ + +/**end repeat**/ + {NULL, NULL, 0, NULL} /* Sentinel */ }; diff --git a/numpy/core/src/private/npy_config.h b/numpy/core/src/private/npy_config.h index 1e2151447..107b3cb5b 100644 --- a/numpy/core/src/private/npy_config.h +++ b/numpy/core/src/private/npy_config.h @@ -65,6 +65,10 @@ /* MSVC _hypot messes with fp precision mode on 32-bit, see gh-9567 */ #if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(_WIN64) +#undef HAVE_CABS +#undef HAVE_CABSF +#undef HAVE_CABSL + #undef HAVE_HYPOT #undef HAVE_HYPOTF #undef HAVE_HYPOTL |