numpy 2.0.0
|
00001 #ifndef _NPY_PRIVATE__UFUNC_TYPE_RESOLUTION_H_ 00002 #define _NPY_PRIVATE__UFUNC_TYPE_RESOLUTION_H_ 00003 00004 NPY_NO_EXPORT int 00005 PyUFunc_SimpleBinaryComparisonTypeResolution(PyUFuncObject *ufunc, 00006 NPY_CASTING casting, 00007 PyArrayObject **operands, 00008 PyObject *type_tup, 00009 PyArray_Descr **out_dtypes, 00010 PyUFuncGenericFunction *out_innerloop, 00011 void **out_innerloopdata); 00012 00013 NPY_NO_EXPORT int 00014 PyUFunc_SimpleUnaryOperationTypeResolution(PyUFuncObject *ufunc, 00015 NPY_CASTING casting, 00016 PyArrayObject **operands, 00017 PyObject *type_tup, 00018 PyArray_Descr **out_dtypes, 00019 PyUFuncGenericFunction *out_innerloop, 00020 void **out_innerloopdata); 00021 00022 NPY_NO_EXPORT int 00023 PyUFunc_OnesLikeTypeResolution(PyUFuncObject *ufunc, 00024 NPY_CASTING casting, 00025 PyArrayObject **operands, 00026 PyObject *type_tup, 00027 PyArray_Descr **out_dtypes, 00028 PyUFuncGenericFunction *out_innerloop, 00029 void **out_innerloopdata); 00030 00031 NPY_NO_EXPORT int 00032 PyUFunc_SimpleBinaryOperationTypeResolution(PyUFuncObject *ufunc, 00033 NPY_CASTING casting, 00034 PyArrayObject **operands, 00035 PyObject *type_tup, 00036 PyArray_Descr **out_dtypes, 00037 PyUFuncGenericFunction *out_innerloop, 00038 void **out_innerloopdata); 00039 00040 NPY_NO_EXPORT int 00041 PyUFunc_AbsoluteTypeResolution(PyUFuncObject *ufunc, 00042 NPY_CASTING casting, 00043 PyArrayObject **operands, 00044 PyObject *type_tup, 00045 PyArray_Descr **out_dtypes, 00046 PyUFuncGenericFunction *out_innerloop, 00047 void **out_innerloopdata); 00048 00049 NPY_NO_EXPORT int 00050 PyUFunc_AdditionTypeResolution(PyUFuncObject *ufunc, 00051 NPY_CASTING casting, 00052 PyArrayObject **operands, 00053 PyObject *type_tup, 00054 PyArray_Descr **out_dtypes, 00055 PyUFuncGenericFunction *out_innerloop, 00056 void **out_innerloopdata); 00057 00058 NPY_NO_EXPORT int 00059 PyUFunc_SubtractionTypeResolution(PyUFuncObject *ufunc, 00060 NPY_CASTING casting, 00061 PyArrayObject **operands, 00062 PyObject *type_tup, 00063 PyArray_Descr **out_dtypes, 00064 PyUFuncGenericFunction *out_innerloop, 00065 void **out_innerloopdata); 00066 00067 NPY_NO_EXPORT int 00068 PyUFunc_MultiplicationTypeResolution(PyUFuncObject *ufunc, 00069 NPY_CASTING casting, 00070 PyArrayObject **operands, 00071 PyObject *type_tup, 00072 PyArray_Descr **out_dtypes, 00073 PyUFuncGenericFunction *out_innerloop, 00074 void **out_innerloopdata); 00075 NPY_NO_EXPORT int 00076 PyUFunc_DivisionTypeResolution(PyUFuncObject *ufunc, 00077 NPY_CASTING casting, 00078 PyArrayObject **operands, 00079 PyObject *type_tup, 00080 PyArray_Descr **out_dtypes, 00081 PyUFuncGenericFunction *out_innerloop, 00082 void **out_innerloopdata); 00083 00084 /* 00085 * Does a linear search for the best inner loop of the ufunc. 00086 * 00087 * Note that if an error is returned, the caller must free the non-zero 00088 * references in out_dtype. This function does not do its own clean-up. 00089 */ 00090 NPY_NO_EXPORT int 00091 find_best_ufunc_inner_loop(PyUFuncObject *self, 00092 PyArrayObject **op, 00093 NPY_CASTING input_casting, 00094 NPY_CASTING output_casting, 00095 int any_object, 00096 PyArray_Descr **out_dtype, 00097 PyUFuncGenericFunction *out_innerloop, 00098 void **out_innerloopdata); 00099 00100 /* 00101 * Does a linear search for the inner loop of the ufunc specified by type_tup. 00102 * 00103 * Note that if an error is returned, the caller must free the non-zero 00104 * references in out_dtype. This function does not do its own clean-up. 00105 */ 00106 NPY_NO_EXPORT int 00107 find_specified_ufunc_inner_loop(PyUFuncObject *self, 00108 PyObject *type_tup, 00109 PyArrayObject **op, 00110 NPY_CASTING casting, 00111 int any_object, 00112 PyArray_Descr **out_dtype, 00113 PyUFuncGenericFunction *out_innerloop, 00114 void **out_innerloopdata); 00115 00116 #endif