NUMPY_API * Numeric.correlate(a1,a2,mode) */
| 1461 | * Numeric.correlate(a1,a2,mode) |
| 1462 | */ |
| 1463 | NPY_NO_EXPORT PyObject * |
| 1464 | PyArray_Correlate(PyObject *op1, PyObject *op2, int mode) |
| 1465 | { |
| 1466 | PyArrayObject *ap1, *ap2, *ret = NULL; |
| 1467 | int typenum; |
| 1468 | int unused; |
| 1469 | PyArray_Descr *typec; |
| 1470 | |
| 1471 | typenum = PyArray_ObjectType(op1, NPY_NOTYPE); |
| 1472 | if (typenum == NPY_NOTYPE) { |
| 1473 | return NULL; |
| 1474 | } |
| 1475 | typenum = PyArray_ObjectType(op2, typenum); |
| 1476 | if (typenum == NPY_NOTYPE) { |
| 1477 | return NULL; |
| 1478 | } |
| 1479 | |
| 1480 | typec = PyArray_DescrFromType(typenum); |
| 1481 | Py_INCREF(typec); |
| 1482 | ap1 = (PyArrayObject *)PyArray_FromAny(op1, typec, 1, 1, |
| 1483 | NPY_ARRAY_DEFAULT, NULL); |
| 1484 | if (ap1 == NULL) { |
| 1485 | Py_DECREF(typec); |
| 1486 | return NULL; |
| 1487 | } |
| 1488 | ap2 = (PyArrayObject *)PyArray_FromAny(op2, typec, 1, 1, |
| 1489 | NPY_ARRAY_DEFAULT, NULL); |
| 1490 | if (ap2 == NULL) { |
| 1491 | goto fail; |
| 1492 | } |
| 1493 | |
| 1494 | ret = _pyarray_correlate(ap1, ap2, typenum, mode, &unused); |
| 1495 | if (ret == NULL) { |
| 1496 | goto fail; |
| 1497 | } |
| 1498 | Py_DECREF(ap1); |
| 1499 | Py_DECREF(ap2); |
| 1500 | return (PyObject *)ret; |
| 1501 | |
| 1502 | fail: |
| 1503 | Py_XDECREF(ap1); |
| 1504 | Py_XDECREF(ap2); |
| 1505 | Py_XDECREF(ret); |
| 1506 | return NULL; |
| 1507 | } |
| 1508 | |
| 1509 | static PyObject * |
| 1510 | array_putmask(PyObject *NPY_UNUSED(module), PyObject *const *args, |
no test coverage detected