numpy 2.0.0
src/umath/ufunc_type_resolution.h
Go to the documentation of this file.
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