Given the operands for calling a ufunc, should determine the calculation input and output data types and return an inner loop function. This function should validate that the casting rule is being followed, and fail if it is not.
For backwards compatibility, the regular type resolution function does not support auxiliary data with object semantics. The type resolution call which returns a masked generic function returns a standard NpyAuxData object, for which the NPY_AUXDATA_FREE and NPY_AUXDATA_CLONE macros work.
ufunc: The ufunc object. casting: The 'casting' parameter provided to the ufunc. operands: An array of length (ufunc->nin + ufunc->nout),
System Message: ERROR/3 (<string>
, line 15) Unexpected indentation.
<blockquote> with the output parameters possibly NULL.</blockquote>
System Message: WARNING/2 (<string>
, line 16) Block quote ends without a blank line; unexpected unindent.
type_tup: Either NULL, or the type_tup passed to the ufunc. out_dtypes: An array which should be populated with new
System Message: ERROR/3 (<string>
, line 18) Unexpected indentation.
<blockquote> references to (ufunc->nin + ufunc->nout) new dtypes, one for each input and output. These dtypes should all be in native-endian format.</blockquote>
System Message: WARNING/2 (<string>
, line 21) Block quote ends without a blank line; unexpected unindent.
- out_innerloop: Should be populated with the correct ufunc inner
- loop for the given type.
- out_innerloopdata: Should be populated with the void* data to
- be passed into the out_innerloop function.
Should return 0 on success, -1 on failure (with exception set), or -2 if Py_NotImplemented should be returned.