summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/multiarray/methods.c9
-rw-r--r--numpy/core/tests/test_multiarray.py4
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))