MCPcopy Create free account
hub / github.com/numpy/numpy / NpyIter_RemoveMultiIndex

Function NpyIter_RemoveMultiIndex

numpy/core/src/multiarray/nditer_api.c:165–187  ·  view source on GitHub ↗

NUMPY_API * Removes multi-index support from an iterator. * * Returns NPY_SUCCEED or NPY_FAIL. */

Source from the content-addressed store, hash-verified

163 * Returns NPY_SUCCEED or NPY_FAIL.
164 */
165NPY_NO_EXPORT int
166NpyIter_RemoveMultiIndex(NpyIter *iter)
167{
168 npy_uint32 itflags;
169
170 /* Make sure the iterator is reset */
171 if (NpyIter_Reset(iter, NULL) != NPY_SUCCEED) {
172 return NPY_FAIL;
173 }
174
175 itflags = NIT_ITFLAGS(iter);
176 if (itflags&NPY_ITFLAG_HASMULTIINDEX) {
177 if (NIT_ITERSIZE(iter) < 0) {
178 PyErr_SetString(PyExc_ValueError, "iterator is too large");
179 return NPY_FAIL;
180 }
181
182 NIT_ITFLAGS(iter) = itflags & ~NPY_ITFLAG_HASMULTIINDEX;
183 npyiter_coalesce_axes(iter);
184 }
185
186 return NPY_SUCCEED;
187}
188
189/*NUMPY_API
190 * Removes the inner loop handling (so HasExternalLoop returns true)

Callers 5

arr_unravel_indexFunction · 0.85
PyUFunc_AccumulateFunction · 0.85
PyUFunc_ReduceatFunction · 0.85

Calls 2

NpyIter_ResetFunction · 0.85
npyiter_coalesce_axesFunction · 0.85

Tested by

no test coverage detected