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

Function wrapping_method_get_loop

numpy/core/src/umath/wrapping_array_method.c:142–177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

140
141
142static int
143wrapping_method_get_loop(
144 PyArrayMethod_Context *context,
145 int aligned, int move_references, const npy_intp *strides,
146 PyArrayMethod_StridedLoop **out_loop, NpyAuxData **out_transferdata,
147 NPY_ARRAYMETHOD_FLAGS *flags)
148{
149 assert(move_references == 0); /* only used internally for "decref" funcs */
150 int nin = context->method->nin, nout = context->method->nout;
151
152 wrapping_auxdata *auxdata = get_wrapping_auxdata();
153 if (auxdata == NULL) {
154 return -1;
155 }
156
157 auxdata->orig_context.method = context->method->wrapped_meth;
158 auxdata->orig_context.caller = context->caller;
159
160 if (context->method->translate_given_descrs(
161 nin, nout, context->method->wrapped_dtypes,
162 context->descriptors, auxdata->orig_context.descriptors) < 0) {
163 NPY_AUXDATA_FREE((NpyAuxData *)auxdata);
164 return -1;
165 }
166 if (context->method->wrapped_meth->get_strided_loop(
167 &auxdata->orig_context, aligned, 0, strides,
168 &auxdata->orig_loop, &auxdata->orig_auxdata,
169 flags) < 0) {
170 NPY_AUXDATA_FREE((NpyAuxData *)auxdata);
171 return -1;
172 }
173
174 *out_loop = (PyArrayMethod_StridedLoop *)&wrapping_method_strided_loop;
175 *out_transferdata = (NpyAuxData *)auxdata;
176 return 0;
177}
178
179
180/*

Callers

nothing calls this directly

Calls 1

get_wrapping_auxdataFunction · 0.85

Tested by

no test coverage detected