User guide
NumPy User Guide, Release 1.9.0
z = (uint64_t
*
)op;
z[0] = x[0] + y[0];
z[1] = x[1] + y[1];
z[2] = x[2] + y[2];
i1 += is1;
i2 += is2;
op += os;
}
}
/
*
This a pointer to the above function
*
/
PyUFuncGenericFunction funcs[1] = {&add_uint64_triplet};
/
*
These are the input and return dtypes of add_uint64_triplet.
*
/
static char types[3] = {NPY_UINT64, NPY_UINT64, NPY_UINT64};
static void
*
data[1] = {NULL};
#if defined(NPY_PY3K)
static struct PyModuleDef moduledef = {
PyModuleDef_HEAD_INIT,
"struct_ufunc_test",
NULL,
-1,
StructUfuncTestMethods,
NULL,
NULL,
NULL,
NULL
};
#endif
#if defined(NPY_PY3K)
PyMODINIT_FUNC PyInit_struct_ufunc_test(void)
#else
PyMODINIT_FUNC initstruct_ufunc_test(void)
#endif
{
PyObject
*
m,
*
add_triplet,
*
d;
PyObject
*
dtype_dict;
PyArray_Descr
*
dtype;
PyArray_Descr
*
dtypes[3];
#if defined(NPY_PY3K)
m = PyModule_Create(&moduledef);
#else
m = Py_InitModule("struct_ufunc_test", StructUfuncTestMethods);
#endif
if (m == NULL) {
#if defined(NPY_PY3K)
return NULL;
#else
return;
#endif
}
5.3. Writing your own ufunc 95