1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#ifndef NUMPY_CORE_SRC_COMMON_UFUNC_OVERRIDE_H_
#define NUMPY_CORE_SRC_COMMON_UFUNC_OVERRIDE_H_
#include "npy_config.h"
/*
* Check whether an object has __array_ufunc__ defined on its class and it
* is not the default, i.e., the object is not an ndarray, and its
* __array_ufunc__ is not the same as that of ndarray.
*
* Returns a new reference, the value of type(obj).__array_ufunc__ if it
* exists and is different from that of ndarray, and NULL otherwise.
*/
NPY_NO_EXPORT PyObject *
PyUFuncOverride_GetNonDefaultArrayUfunc(PyObject *obj);
/*
* Check whether an object has __array_ufunc__ defined on its class and it
* is not the default, i.e., the object is not an ndarray, and its
* __array_ufunc__ is not the same as that of ndarray.
*
* Returns 1 if this is the case, 0 if not.
*/
NPY_NO_EXPORT int
PyUFunc_HasOverride(PyObject *obj);
/*
* Get possible out argument from kwds, and returns the number of outputs
* contained within it: if a tuple, the number of elements in it, 1 otherwise.
* The out argument itself is returned in out_kwd_obj, and the outputs
* in the out_obj array (as borrowed references).
*
* Returns 0 if no outputs found, -1 if kwds is not a dict (with an error set).
*/
NPY_NO_EXPORT int
PyUFuncOverride_GetOutObjects(PyObject *kwds, PyObject **out_kwd_obj, PyObject ***out_objs);
#endif /* NUMPY_CORE_SRC_COMMON_UFUNC_OVERRIDE_H_ */
|