diff options
-rw-r--r-- | numpy/core/src/multiarray/methods.c | 9 | ||||
-rw-r--r-- | numpy/core/tests/test_multiarray.py | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/numpy/core/src/multiarray/methods.c b/numpy/core/src/multiarray/methods.c index ab3cae113..c5a5fdedb 100644 --- a/numpy/core/src/multiarray/methods.c +++ b/numpy/core/src/multiarray/methods.c @@ -1847,7 +1847,7 @@ array_cumprod(PyArrayObject *self, PyObject *args, PyObject *kwds) static PyObject * array_dot(PyArrayObject *self, PyObject *args, PyObject *kwds) { - PyObject *b, *out = NULL; + PyObject *fname, *ret, *b, *out = NULL; static PyObject *numpycore = NULL; char * kwords[] = {"b", "out", NULL }; @@ -1863,10 +1863,13 @@ array_dot(PyArrayObject *self, PyObject *args, PyObject *kwds) return NULL; } } + fname = PyString_FromString("dot"); if (out == NULL) { - return PyObject_CallMethod(numpycore, "dot", "OO", self, b); + ret = PyObject_CallMethodObjArgs(numpycore, fname, self, b, NULL); } - return PyObject_CallMethod(numpycore, "dot", "OOO", self, b, out); + ret = PyObject_CallMethodObjArgs(numpycore, fname, self, b, out, NULL); + Py_DECREF(fname); + return ret; } diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py index 9449046b9..b3c0626dc 100644 --- a/numpy/core/tests/test_multiarray.py +++ b/numpy/core/tests/test_multiarray.py @@ -902,10 +902,12 @@ class TestMethods(TestCase): assert_equal(np.dot(a, b), a.dot(b)) assert_equal(np.dot(np.dot(a, b), c), a.dot(b).dot(c)) - # test changes from gh-2687 (trac 2096) + # test passing in an output array c = np.zeros_like(a) a.dot(b,c) assert_equal(c, np.dot(a,b)) + + # test keyword args c = np.zeros_like(a) a.dot(b=b,out=c) assert_equal(c, np.dot(a,b)) |