

/** Warning this file is autogenerated!!!

    Please make changes to the code generator program (generate_umath.py)
**/
#include "ufunc_object.h"
#include "ufunc_type_resolution.h"
#include "loops.h"
#include "matmul.h"
#include "clip.h"
#include "dtypemeta.h"
#include "_umath_doc_generated.h"

static PyUFuncGenericFunction _arg_functions[] = {CFLOAT__arg, CDOUBLE__arg, CLONGDOUBLE__arg};
static void * _arg_data[] = {(void *)NULL, (void *)NULL, (void *)NULL};
static char _arg_signatures[] = {NPY_CFLOAT, NPY_FLOAT, NPY_CDOUBLE, NPY_DOUBLE, NPY_CLONGDOUBLE, NPY_LONGDOUBLE};
static PyUFuncGenericFunction _ones_like_functions[] = {BOOL__ones_like, BYTE__ones_like, UBYTE__ones_like, SHORT__ones_like, USHORT__ones_like, INT__ones_like, UINT__ones_like, LONG__ones_like, ULONG__ones_like, LONGLONG__ones_like, ULONGLONG__ones_like, HALF__ones_like, FLOAT__ones_like, DOUBLE__ones_like, LONGDOUBLE__ones_like, CFLOAT__ones_like, CDOUBLE__ones_like, CLONGDOUBLE__ones_like, TIMEDELTA__ones_like, DATETIME__ones_like, NULL};
static void * _ones_like_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char _ones_like_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DATETIME, NPY_DATETIME, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction absolute_functions[] = {BOOL_absolute, BYTE_absolute, UBYTE_absolute, SHORT_absolute, USHORT_absolute, INT_absolute, UINT_absolute, LONG_absolute, ULONG_absolute, LONGLONG_absolute, ULONGLONG_absolute, HALF_absolute, FLOAT_absolute, DOUBLE_absolute, LONGDOUBLE_absolute, TIMEDELTA_absolute, CFLOAT_absolute, CDOUBLE_absolute, CLONGDOUBLE_absolute, NULL};
static void * absolute_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char absolute_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_CFLOAT, NPY_FLOAT, NPY_CDOUBLE, NPY_DOUBLE, NPY_CLONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction add_functions[] = {BOOL_logical_or, BYTE_add, UBYTE_add, SHORT_add, USHORT_add, INT_add, UINT_add, LONG_add, ULONG_add, LONGLONG_add, ULONGLONG_add, HALF_add, FLOAT_add, DOUBLE_add, LONGDOUBLE_add, CFLOAT_add, CDOUBLE_add, CLONGDOUBLE_add, DATETIME_Mm_M_add, TIMEDELTA_mm_m_add, DATETIME_mM_M_add, NULL};
static void * add_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char add_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_DATETIME, NPY_TIMEDELTA, NPY_DATETIME, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DATETIME, NPY_DATETIME, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction arccos_functions[] = {HALF_arccos, FLOAT_arccos, DOUBLE_arccos, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * arccos_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"arccos"};
static char arccos_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction arccosh_functions[] = {HALF_arccosh, FLOAT_arccosh, DOUBLE_arccosh, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * arccosh_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"arccosh"};
static char arccosh_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction arcsin_functions[] = {HALF_arcsin, FLOAT_arcsin, DOUBLE_arcsin, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * arcsin_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"arcsin"};
static char arcsin_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction arcsinh_functions[] = {HALF_arcsinh, FLOAT_arcsinh, DOUBLE_arcsinh, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * arcsinh_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"arcsinh"};
static char arcsinh_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction arctan_functions[] = {HALF_arctan, FLOAT_arctan, DOUBLE_arctan, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * arctan_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"arctan"};
static char arctan_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction arctan2_functions[] = {NULL, FLOAT_arctan2, DOUBLE_arctan2, NULL, NULL};
static void * arctan2_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"arctan2"};
static char arctan2_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction arctanh_functions[] = {HALF_arctanh, FLOAT_arctanh, DOUBLE_arctanh, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * arctanh_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"arctanh"};
static char arctanh_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction bitwise_and_functions[] = {BOOL_logical_and, BYTE_bitwise_and, UBYTE_bitwise_and, SHORT_bitwise_and, USHORT_bitwise_and, INT_bitwise_and, UINT_bitwise_and, LONG_bitwise_and, ULONG_bitwise_and, LONGLONG_bitwise_and, ULONGLONG_bitwise_and, NULL};
static void * bitwise_and_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char bitwise_and_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction bitwise_or_functions[] = {BOOL_logical_or, BYTE_bitwise_or, UBYTE_bitwise_or, SHORT_bitwise_or, USHORT_bitwise_or, INT_bitwise_or, UINT_bitwise_or, LONG_bitwise_or, ULONG_bitwise_or, LONGLONG_bitwise_or, ULONGLONG_bitwise_or, NULL};
static void * bitwise_or_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char bitwise_or_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction bitwise_xor_functions[] = {BOOL_not_equal, BYTE_bitwise_xor, UBYTE_bitwise_xor, SHORT_bitwise_xor, USHORT_bitwise_xor, INT_bitwise_xor, UINT_bitwise_xor, LONG_bitwise_xor, ULONG_bitwise_xor, LONGLONG_bitwise_xor, ULONGLONG_bitwise_xor, NULL};
static void * bitwise_xor_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char bitwise_xor_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction cbrt_functions[] = {HALF_cbrt, FLOAT_cbrt, DOUBLE_cbrt, NULL, NULL, NULL, NULL, NULL};
static void * cbrt_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"cbrt"};
static char cbrt_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction ceil_functions[] = {NULL, FLOAT_ceil, DOUBLE_ceil, NULL, NULL, NULL, NULL};
static void * ceil_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char ceil_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction clip_functions[] = {BOOL_clip, BYTE_clip, UBYTE_clip, SHORT_clip, USHORT_clip, INT_clip, UINT_clip, LONG_clip, ULONG_clip, LONGLONG_clip, ULONGLONG_clip, HALF_clip, FLOAT_clip, DOUBLE_clip, LONGDOUBLE_clip, CFLOAT_clip, CDOUBLE_clip, CLONGDOUBLE_clip, TIMEDELTA_clip, DATETIME_clip, NULL};
static void * clip_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char clip_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DATETIME, NPY_DATETIME, NPY_DATETIME, NPY_DATETIME, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction conjugate_functions[] = {BYTE_conjugate, UBYTE_conjugate, SHORT_conjugate, USHORT_conjugate, INT_conjugate, UINT_conjugate, LONG_conjugate, ULONG_conjugate, LONGLONG_conjugate, ULONGLONG_conjugate, HALF_conjugate, FLOAT_conjugate, DOUBLE_conjugate, LONGDOUBLE_conjugate, CFLOAT_conjugate, CDOUBLE_conjugate, CLONGDOUBLE_conjugate, NULL};
static void * conjugate_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"conjugate"};
static char conjugate_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction copysign_functions[] = {HALF_copysign, FLOAT_copysign, DOUBLE_copysign, LONGDOUBLE_copysign};
static void * copysign_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char copysign_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE};
static PyUFuncGenericFunction cos_functions[] = {HALF_cos, FLOAT_cos, DOUBLE_cos, NULL, NULL, NULL, NULL, NULL};
static void * cos_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"cos"};
static char cos_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction cosh_functions[] = {HALF_cosh, FLOAT_cosh, DOUBLE_cosh, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * cosh_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"cosh"};
static char cosh_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction deg2rad_functions[] = {NULL, NULL, NULL, NULL, NULL};
static void * deg2rad_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"deg2rad"};
static char deg2rad_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction degrees_functions[] = {NULL, NULL, NULL, NULL, NULL};
static void * degrees_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"degrees"};
static char degrees_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction divide_functions[] = {HALF_divide, FLOAT_divide, DOUBLE_divide, LONGDOUBLE_divide, CFLOAT_divide, CDOUBLE_divide, CLONGDOUBLE_divide, TIMEDELTA_mq_m_divide, TIMEDELTA_md_m_divide, TIMEDELTA_mm_d_divide, NULL};
static void * divide_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char divide_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_LONGLONG, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DOUBLE, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction divmod_functions[] = {BYTE_divmod, UBYTE_divmod, SHORT_divmod, USHORT_divmod, INT_divmod, UINT_divmod, LONG_divmod, ULONG_divmod, LONGLONG_divmod, ULONGLONG_divmod, HALF_divmod, FLOAT_divmod, DOUBLE_divmod, LONGDOUBLE_divmod, TIMEDELTA_mm_qm_divmod};
static void * divmod_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char divmod_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_LONGLONG, NPY_TIMEDELTA};
static PyUFuncGenericFunction equal_functions[] = {BOOL_equal, BYTE_equal, UBYTE_equal, SHORT_equal, USHORT_equal, INT_equal, UINT_equal, LONG_equal, ULONG_equal, LONGLONG_equal, ULONGLONG_equal, LONGLONG_qQ_bool_equal, LONGLONG_Qq_bool_equal, HALF_equal, FLOAT_equal, DOUBLE_equal, LONGDOUBLE_equal, CFLOAT_equal, CDOUBLE_equal, CLONGDOUBLE_equal, DATETIME_equal, TIMEDELTA_equal, OBJECT_equal, OBJECT_OO_O_equal};
static void * equal_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char equal_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_LONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_DATETIME, NPY_DATETIME, NPY_BOOL, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction exp_functions[] = {HALF_exp, FLOAT_exp, DOUBLE_exp, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * exp_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"exp"};
static char exp_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction exp2_functions[] = {HALF_exp2, FLOAT_exp2, DOUBLE_exp2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * exp2_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"exp2"};
static char exp2_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction expm1_functions[] = {HALF_expm1, FLOAT_expm1, DOUBLE_expm1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * expm1_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"expm1"};
static char expm1_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction fabs_functions[] = {NULL, NULL, NULL, NULL, NULL};
static void * fabs_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"fabs"};
static char fabs_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction float_power_functions[] = {NULL, NULL, NULL, NULL};
static void * float_power_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char float_power_signatures[] = {NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE};
static PyUFuncGenericFunction floor_functions[] = {NULL, FLOAT_floor, DOUBLE_floor, NULL, NULL, NULL, NULL};
static void * floor_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char floor_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction floor_divide_functions[] = {BYTE_divide, UBYTE_divide, SHORT_divide, USHORT_divide, INT_divide, UINT_divide, LONG_divide, ULONG_divide, LONGLONG_divide, ULONGLONG_divide, HALF_floor_divide, FLOAT_floor_divide, DOUBLE_floor_divide, LONGDOUBLE_floor_divide, TIMEDELTA_mq_m_floor_divide, TIMEDELTA_md_m_floor_divide, TIMEDELTA_mm_q_floor_divide, NULL};
static void * floor_divide_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char floor_divide_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_TIMEDELTA, NPY_LONGLONG, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_LONGLONG, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction fmax_functions[] = {BOOL_logical_or, BYTE_fmax, UBYTE_fmax, SHORT_fmax, USHORT_fmax, INT_fmax, UINT_fmax, LONG_fmax, ULONG_fmax, LONGLONG_fmax, ULONGLONG_fmax, HALF_fmax, FLOAT_fmax, DOUBLE_fmax, LONGDOUBLE_fmax, CFLOAT_fmax, CDOUBLE_fmax, CLONGDOUBLE_fmax, TIMEDELTA_fmax, DATETIME_fmax, NULL};
static void * fmax_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char fmax_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DATETIME, NPY_DATETIME, NPY_DATETIME, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction fmin_functions[] = {BOOL_logical_and, BYTE_fmin, UBYTE_fmin, SHORT_fmin, USHORT_fmin, INT_fmin, UINT_fmin, LONG_fmin, ULONG_fmin, LONGLONG_fmin, ULONGLONG_fmin, HALF_fmin, FLOAT_fmin, DOUBLE_fmin, LONGDOUBLE_fmin, CFLOAT_fmin, CDOUBLE_fmin, CLONGDOUBLE_fmin, TIMEDELTA_fmin, DATETIME_fmin, NULL};
static void * fmin_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char fmin_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DATETIME, NPY_DATETIME, NPY_DATETIME, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction fmod_functions[] = {BYTE_fmod, UBYTE_fmod, SHORT_fmod, USHORT_fmod, INT_fmod, UINT_fmod, LONG_fmod, ULONG_fmod, LONGLONG_fmod, ULONGLONG_fmod, NULL, NULL, NULL, NULL, NULL};
static void * fmod_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"fmod"};
static char fmod_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction frexp_functions[] = {HALF_frexp, FLOAT_frexp, DOUBLE_frexp, LONGDOUBLE_frexp};
static void * frexp_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char frexp_signatures[] = {NPY_HALF, NPY_HALF, NPY_INT, NPY_FLOAT, NPY_FLOAT, NPY_INT, NPY_DOUBLE, NPY_DOUBLE, NPY_INT, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_INT};
static PyUFuncGenericFunction gcd_functions[] = {BYTE_gcd, UBYTE_gcd, SHORT_gcd, USHORT_gcd, INT_gcd, UINT_gcd, LONG_gcd, ULONG_gcd, LONGLONG_gcd, ULONGLONG_gcd, NULL};
static void * gcd_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char gcd_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction greater_functions[] = {BOOL_greater, BYTE_greater, UBYTE_greater, SHORT_greater, USHORT_greater, INT_greater, UINT_greater, LONG_greater, ULONG_greater, LONGLONG_greater, ULONGLONG_greater, LONGLONG_qQ_bool_greater, LONGLONG_Qq_bool_greater, HALF_greater, FLOAT_greater, DOUBLE_greater, LONGDOUBLE_greater, CFLOAT_greater, CDOUBLE_greater, CLONGDOUBLE_greater, DATETIME_greater, TIMEDELTA_greater, OBJECT_greater, OBJECT_OO_O_greater};
static void * greater_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char greater_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_LONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_DATETIME, NPY_DATETIME, NPY_BOOL, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction greater_equal_functions[] = {BOOL_greater_equal, BYTE_greater_equal, UBYTE_greater_equal, SHORT_greater_equal, USHORT_greater_equal, INT_greater_equal, UINT_greater_equal, LONG_greater_equal, ULONG_greater_equal, LONGLONG_greater_equal, ULONGLONG_greater_equal, LONGLONG_qQ_bool_greater_equal, LONGLONG_Qq_bool_greater_equal, HALF_greater_equal, FLOAT_greater_equal, DOUBLE_greater_equal, LONGDOUBLE_greater_equal, CFLOAT_greater_equal, CDOUBLE_greater_equal, CLONGDOUBLE_greater_equal, DATETIME_greater_equal, TIMEDELTA_greater_equal, OBJECT_greater_equal, OBJECT_OO_O_greater_equal};
static void * greater_equal_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char greater_equal_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_LONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_DATETIME, NPY_DATETIME, NPY_BOOL, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction heaviside_functions[] = {NULL, NULL, NULL, NULL};
static void * heaviside_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char heaviside_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE};
static PyUFuncGenericFunction hypot_functions[] = {NULL, NULL, NULL, NULL, NULL};
static void * hypot_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"hypot"};
static char hypot_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction invert_functions[] = {BOOL_logical_not, BYTE_invert, UBYTE_invert, SHORT_invert, USHORT_invert, INT_invert, UINT_invert, LONG_invert, ULONG_invert, LONGLONG_invert, ULONGLONG_invert, NULL};
static void * invert_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char invert_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction isfinite_functions[] = {BOOL_isfinite, BYTE_isfinite, UBYTE_isfinite, SHORT_isfinite, USHORT_isfinite, INT_isfinite, UINT_isfinite, LONG_isfinite, ULONG_isfinite, LONGLONG_isfinite, ULONGLONG_isfinite, HALF_isfinite, FLOAT_isfinite, DOUBLE_isfinite, LONGDOUBLE_isfinite, CFLOAT_isfinite, CDOUBLE_isfinite, CLONGDOUBLE_isfinite, TIMEDELTA_isfinite, DATETIME_isfinite};
static void * isfinite_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char isfinite_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_BOOL, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_BOOL, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_BOOL, NPY_TIMEDELTA, NPY_BOOL, NPY_DATETIME, NPY_BOOL};
static PyUFuncGenericFunction isinf_functions[] = {BOOL_isinf, BYTE_isinf, UBYTE_isinf, SHORT_isinf, USHORT_isinf, INT_isinf, UINT_isinf, LONG_isinf, ULONG_isinf, LONGLONG_isinf, ULONGLONG_isinf, HALF_isinf, FLOAT_isinf, DOUBLE_isinf, LONGDOUBLE_isinf, CFLOAT_isinf, CDOUBLE_isinf, CLONGDOUBLE_isinf, TIMEDELTA_isinf, DATETIME_isinf};
static void * isinf_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char isinf_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_BOOL, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_BOOL, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_BOOL, NPY_TIMEDELTA, NPY_BOOL, NPY_DATETIME, NPY_BOOL};
static PyUFuncGenericFunction isnan_functions[] = {BOOL_isnan, BYTE_isnan, UBYTE_isnan, SHORT_isnan, USHORT_isnan, INT_isnan, UINT_isnan, LONG_isnan, ULONG_isnan, LONGLONG_isnan, ULONGLONG_isnan, HALF_isnan, FLOAT_isnan, DOUBLE_isnan, LONGDOUBLE_isnan, CFLOAT_isnan, CDOUBLE_isnan, CLONGDOUBLE_isnan, TIMEDELTA_isnan, DATETIME_isnan};
static void * isnan_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char isnan_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_BOOL, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_BOOL, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_BOOL, NPY_TIMEDELTA, NPY_BOOL, NPY_DATETIME, NPY_BOOL};
static PyUFuncGenericFunction isnat_functions[] = {DATETIME_isnat, TIMEDELTA_isnat};
static void * isnat_data[] = {(void *)NULL, (void *)NULL};
static char isnat_signatures[] = {NPY_DATETIME, NPY_BOOL, NPY_TIMEDELTA, NPY_BOOL};
static PyUFuncGenericFunction lcm_functions[] = {BYTE_lcm, UBYTE_lcm, SHORT_lcm, USHORT_lcm, INT_lcm, UINT_lcm, LONG_lcm, ULONG_lcm, LONGLONG_lcm, ULONGLONG_lcm, NULL};
static void * lcm_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char lcm_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction ldexp_functions[] = {HALF_ldexp, FLOAT_ldexp, HALF_ldexp_long, FLOAT_ldexp_long, DOUBLE_ldexp, DOUBLE_ldexp_long, LONGDOUBLE_ldexp, LONGDOUBLE_ldexp_long};
static void * ldexp_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char ldexp_signatures[] = {NPY_HALF, NPY_INT, NPY_HALF, NPY_FLOAT, NPY_INT, NPY_FLOAT, NPY_HALF, NPY_LONG, NPY_HALF, NPY_FLOAT, NPY_LONG, NPY_FLOAT, NPY_DOUBLE, NPY_INT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONG, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_INT, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONG, NPY_LONGDOUBLE};
static PyUFuncGenericFunction left_shift_functions[] = {BYTE_left_shift, UBYTE_left_shift, SHORT_left_shift, USHORT_left_shift, INT_left_shift, UINT_left_shift, LONG_left_shift, ULONG_left_shift, LONGLONG_left_shift, ULONGLONG_left_shift, NULL};
static void * left_shift_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char left_shift_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction less_functions[] = {BOOL_less, BYTE_less, UBYTE_less, SHORT_less, USHORT_less, INT_less, UINT_less, LONG_less, ULONG_less, LONGLONG_less, ULONGLONG_less, LONGLONG_qQ_bool_less, LONGLONG_Qq_bool_less, HALF_less, FLOAT_less, DOUBLE_less, LONGDOUBLE_less, CFLOAT_less, CDOUBLE_less, CLONGDOUBLE_less, DATETIME_less, TIMEDELTA_less, OBJECT_less, OBJECT_OO_O_less};
static void * less_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char less_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_LONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_DATETIME, NPY_DATETIME, NPY_BOOL, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction less_equal_functions[] = {BOOL_less_equal, BYTE_less_equal, UBYTE_less_equal, SHORT_less_equal, USHORT_less_equal, INT_less_equal, UINT_less_equal, LONG_less_equal, ULONG_less_equal, LONGLONG_less_equal, ULONGLONG_less_equal, LONGLONG_qQ_bool_less_equal, LONGLONG_Qq_bool_less_equal, HALF_less_equal, FLOAT_less_equal, DOUBLE_less_equal, LONGDOUBLE_less_equal, CFLOAT_less_equal, CDOUBLE_less_equal, CLONGDOUBLE_less_equal, DATETIME_less_equal, TIMEDELTA_less_equal, OBJECT_less_equal, OBJECT_OO_O_less_equal};
static void * less_equal_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char less_equal_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_LONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_DATETIME, NPY_DATETIME, NPY_BOOL, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction log_functions[] = {HALF_log, FLOAT_log, DOUBLE_log, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * log_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"log"};
static char log_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction log10_functions[] = {HALF_log10, FLOAT_log10, DOUBLE_log10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * log10_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"log10"};
static char log10_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction log1p_functions[] = {HALF_log1p, FLOAT_log1p, DOUBLE_log1p, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * log1p_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"log1p"};
static char log1p_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction log2_functions[] = {HALF_log2, FLOAT_log2, DOUBLE_log2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * log2_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"log2"};
static char log2_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction logaddexp_functions[] = {NULL, NULL, NULL, NULL};
static void * logaddexp_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char logaddexp_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE};
static PyUFuncGenericFunction logaddexp2_functions[] = {NULL, NULL, NULL, NULL};
static void * logaddexp2_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char logaddexp2_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE};
static PyUFuncGenericFunction logical_and_functions[] = {BOOL_logical_and, BYTE_logical_and, UBYTE_logical_and, SHORT_logical_and, USHORT_logical_and, INT_logical_and, UINT_logical_and, LONG_logical_and, ULONG_logical_and, LONGLONG_logical_and, ULONGLONG_logical_and, HALF_logical_and, FLOAT_logical_and, DOUBLE_logical_and, LONGDOUBLE_logical_and, CFLOAT_logical_and, CDOUBLE_logical_and, CLONGDOUBLE_logical_and, NULL};
static void * logical_and_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char logical_and_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction logical_not_functions[] = {BOOL_logical_not, BYTE_logical_not, UBYTE_logical_not, SHORT_logical_not, USHORT_logical_not, INT_logical_not, UINT_logical_not, LONG_logical_not, ULONG_logical_not, LONGLONG_logical_not, ULONGLONG_logical_not, HALF_logical_not, FLOAT_logical_not, DOUBLE_logical_not, LONGDOUBLE_logical_not, CFLOAT_logical_not, CDOUBLE_logical_not, CLONGDOUBLE_logical_not, NULL};
static void * logical_not_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char logical_not_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_BOOL, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_BOOL, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_BOOL, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction logical_or_functions[] = {BOOL_logical_or, BYTE_logical_or, UBYTE_logical_or, SHORT_logical_or, USHORT_logical_or, INT_logical_or, UINT_logical_or, LONG_logical_or, ULONG_logical_or, LONGLONG_logical_or, ULONGLONG_logical_or, HALF_logical_or, FLOAT_logical_or, DOUBLE_logical_or, LONGDOUBLE_logical_or, CFLOAT_logical_or, CDOUBLE_logical_or, CLONGDOUBLE_logical_or, NULL};
static void * logical_or_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char logical_or_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction logical_xor_functions[] = {BOOL_not_equal, BYTE_logical_xor, UBYTE_logical_xor, SHORT_logical_xor, USHORT_logical_xor, INT_logical_xor, UINT_logical_xor, LONG_logical_xor, ULONG_logical_xor, LONGLONG_logical_xor, ULONGLONG_logical_xor, HALF_logical_xor, FLOAT_logical_xor, DOUBLE_logical_xor, LONGDOUBLE_logical_xor, CFLOAT_logical_xor, CDOUBLE_logical_xor, CLONGDOUBLE_logical_xor, NULL};
static void * logical_xor_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"logical_xor"};
static char logical_xor_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction matmul_functions[] = {BOOL_matmul, BYTE_matmul, UBYTE_matmul, SHORT_matmul, USHORT_matmul, INT_matmul, UINT_matmul, LONG_matmul, ULONG_matmul, LONGLONG_matmul, ULONGLONG_matmul, HALF_matmul, FLOAT_matmul, DOUBLE_matmul, LONGDOUBLE_matmul, CFLOAT_matmul, CDOUBLE_matmul, CLONGDOUBLE_matmul, OBJECT_matmul};
static void * matmul_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char matmul_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction maximum_functions[] = {BOOL_logical_or, BYTE_maximum, UBYTE_maximum, SHORT_maximum, USHORT_maximum, INT_maximum, UINT_maximum, LONG_maximum, ULONG_maximum, LONGLONG_maximum, ULONGLONG_maximum, HALF_maximum, FLOAT_maximum, DOUBLE_maximum, LONGDOUBLE_maximum, CFLOAT_maximum, CDOUBLE_maximum, CLONGDOUBLE_maximum, TIMEDELTA_maximum, DATETIME_maximum, NULL};
static void * maximum_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char maximum_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DATETIME, NPY_DATETIME, NPY_DATETIME, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction minimum_functions[] = {BOOL_logical_and, BYTE_minimum, UBYTE_minimum, SHORT_minimum, USHORT_minimum, INT_minimum, UINT_minimum, LONG_minimum, ULONG_minimum, LONGLONG_minimum, ULONGLONG_minimum, HALF_minimum, FLOAT_minimum, DOUBLE_minimum, LONGDOUBLE_minimum, CFLOAT_minimum, CDOUBLE_minimum, CLONGDOUBLE_minimum, TIMEDELTA_minimum, DATETIME_minimum, NULL};
static void * minimum_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char minimum_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DATETIME, NPY_DATETIME, NPY_DATETIME, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction modf_functions[] = {HALF_modf, FLOAT_modf, DOUBLE_modf, LONGDOUBLE_modf};
static void * modf_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char modf_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE};
static PyUFuncGenericFunction multiply_functions[] = {BOOL_logical_and, BYTE_multiply, UBYTE_multiply, SHORT_multiply, USHORT_multiply, INT_multiply, UINT_multiply, LONG_multiply, ULONG_multiply, LONGLONG_multiply, ULONGLONG_multiply, HALF_multiply, FLOAT_multiply, DOUBLE_multiply, LONGDOUBLE_multiply, CFLOAT_multiply, CDOUBLE_multiply, CLONGDOUBLE_multiply, TIMEDELTA_mq_m_multiply, TIMEDELTA_qm_m_multiply, TIMEDELTA_md_m_multiply, TIMEDELTA_dm_m_multiply, NULL};
static void * multiply_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char multiply_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_LONGLONG, NPY_TIMEDELTA, NPY_LONGLONG, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DOUBLE, NPY_TIMEDELTA, NPY_DOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction negative_functions[] = {BYTE_negative, UBYTE_negative, SHORT_negative, USHORT_negative, INT_negative, UINT_negative, LONG_negative, ULONG_negative, LONGLONG_negative, ULONGLONG_negative, HALF_negative, FLOAT_negative, DOUBLE_negative, LONGDOUBLE_negative, TIMEDELTA_negative, NULL, NULL, NULL, NULL};
static void * negative_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char negative_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction nextafter_functions[] = {HALF_nextafter, FLOAT_nextafter, DOUBLE_nextafter, LONGDOUBLE_nextafter};
static void * nextafter_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char nextafter_signatures[] = {NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE};
static PyUFuncGenericFunction not_equal_functions[] = {BOOL_not_equal, BYTE_not_equal, UBYTE_not_equal, SHORT_not_equal, USHORT_not_equal, INT_not_equal, UINT_not_equal, LONG_not_equal, ULONG_not_equal, LONGLONG_not_equal, ULONGLONG_not_equal, LONGLONG_qQ_bool_not_equal, LONGLONG_Qq_bool_not_equal, HALF_not_equal, FLOAT_not_equal, DOUBLE_not_equal, LONGDOUBLE_not_equal, CFLOAT_not_equal, CDOUBLE_not_equal, CLONGDOUBLE_not_equal, DATETIME_not_equal, TIMEDELTA_not_equal, OBJECT_not_equal, OBJECT_OO_O_not_equal};
static void * not_equal_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char not_equal_signatures[] = {NPY_BOOL, NPY_BOOL, NPY_BOOL, NPY_BYTE, NPY_BYTE, NPY_BOOL, NPY_UBYTE, NPY_UBYTE, NPY_BOOL, NPY_SHORT, NPY_SHORT, NPY_BOOL, NPY_USHORT, NPY_USHORT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_UINT, NPY_UINT, NPY_BOOL, NPY_LONG, NPY_LONG, NPY_BOOL, NPY_ULONG, NPY_ULONG, NPY_BOOL, NPY_LONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_LONGLONG, NPY_ULONGLONG, NPY_BOOL, NPY_ULONGLONG, NPY_LONGLONG, NPY_BOOL, NPY_HALF, NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_BOOL, NPY_CFLOAT, NPY_CFLOAT, NPY_BOOL, NPY_CDOUBLE, NPY_CDOUBLE, NPY_BOOL, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_BOOL, NPY_DATETIME, NPY_DATETIME, NPY_BOOL, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_BOOL, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction positive_functions[] = {BYTE_positive, UBYTE_positive, SHORT_positive, USHORT_positive, INT_positive, UINT_positive, LONG_positive, ULONG_positive, LONGLONG_positive, ULONGLONG_positive, HALF_positive, FLOAT_positive, DOUBLE_positive, LONGDOUBLE_positive, TIMEDELTA_positive, NULL, NULL, NULL, NULL};
static void * positive_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char positive_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction power_functions[] = {BYTE_power, UBYTE_power, SHORT_power, USHORT_power, INT_power, UINT_power, LONG_power, ULONG_power, LONGLONG_power, ULONGLONG_power, NULL, FLOAT_power, DOUBLE_power, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * power_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char power_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction rad2deg_functions[] = {NULL, NULL, NULL, NULL, NULL};
static void * rad2deg_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"rad2deg"};
static char rad2deg_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction radians_functions[] = {NULL, NULL, NULL, NULL, NULL};
static void * radians_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"radians"};
static char radians_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction reciprocal_functions[] = {BYTE_reciprocal, UBYTE_reciprocal, SHORT_reciprocal, USHORT_reciprocal, INT_reciprocal, UINT_reciprocal, LONG_reciprocal, ULONG_reciprocal, LONGLONG_reciprocal, ULONGLONG_reciprocal, HALF_reciprocal, FLOAT_reciprocal, DOUBLE_reciprocal, LONGDOUBLE_reciprocal, CFLOAT_reciprocal, CDOUBLE_reciprocal, CLONGDOUBLE_reciprocal, NULL};
static void * reciprocal_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char reciprocal_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction remainder_functions[] = {BYTE_remainder, UBYTE_remainder, SHORT_remainder, USHORT_remainder, INT_remainder, UINT_remainder, LONG_remainder, ULONG_remainder, LONGLONG_remainder, ULONGLONG_remainder, HALF_remainder, FLOAT_remainder, DOUBLE_remainder, LONGDOUBLE_remainder, TIMEDELTA_mm_m_remainder, NULL};
static void * remainder_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char remainder_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction right_shift_functions[] = {BYTE_right_shift, UBYTE_right_shift, SHORT_right_shift, USHORT_right_shift, INT_right_shift, UINT_right_shift, LONG_right_shift, ULONG_right_shift, LONGLONG_right_shift, ULONGLONG_right_shift, NULL};
static void * right_shift_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char right_shift_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction rint_functions[] = {NULL, FLOAT_rint, DOUBLE_rint, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * rint_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"rint"};
static char rint_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction sign_functions[] = {BYTE_sign, UBYTE_sign, SHORT_sign, USHORT_sign, INT_sign, UINT_sign, LONG_sign, ULONG_sign, LONGLONG_sign, ULONGLONG_sign, HALF_sign, FLOAT_sign, DOUBLE_sign, LONGDOUBLE_sign, CFLOAT_sign, CDOUBLE_sign, CLONGDOUBLE_sign, TIMEDELTA_sign, OBJECT_sign};
static void * sign_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char sign_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction signbit_functions[] = {HALF_signbit, FLOAT_signbit, DOUBLE_signbit, LONGDOUBLE_signbit};
static void * signbit_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char signbit_signatures[] = {NPY_HALF, NPY_BOOL, NPY_FLOAT, NPY_BOOL, NPY_DOUBLE, NPY_BOOL, NPY_LONGDOUBLE, NPY_BOOL};
static PyUFuncGenericFunction sin_functions[] = {HALF_sin, FLOAT_sin, DOUBLE_sin, NULL, NULL, NULL, NULL, NULL};
static void * sin_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"sin"};
static char sin_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction sinh_functions[] = {HALF_sinh, FLOAT_sinh, DOUBLE_sinh, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * sinh_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"sinh"};
static char sinh_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction spacing_functions[] = {HALF_spacing, FLOAT_spacing, DOUBLE_spacing, LONGDOUBLE_spacing};
static void * spacing_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char spacing_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE};
static PyUFuncGenericFunction sqrt_functions[] = {NULL, FLOAT_sqrt, DOUBLE_sqrt, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * sqrt_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"sqrt"};
static char sqrt_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction square_functions[] = {BYTE_square, UBYTE_square, SHORT_square, USHORT_square, INT_square, UINT_square, LONG_square, ULONG_square, LONGLONG_square, ULONGLONG_square, HALF_square, FLOAT_square, DOUBLE_square, LONGDOUBLE_square, CFLOAT_square, CDOUBLE_square, CLONGDOUBLE_square, NULL};
static void * square_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char square_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction subtract_functions[] = {BYTE_subtract, UBYTE_subtract, SHORT_subtract, USHORT_subtract, INT_subtract, UINT_subtract, LONG_subtract, ULONG_subtract, LONGLONG_subtract, ULONGLONG_subtract, HALF_subtract, FLOAT_subtract, DOUBLE_subtract, LONGDOUBLE_subtract, CFLOAT_subtract, CDOUBLE_subtract, CLONGDOUBLE_subtract, DATETIME_Mm_M_subtract, TIMEDELTA_mm_m_subtract, DATETIME_MM_m_subtract, NULL};
static void * subtract_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char subtract_signatures[] = {NPY_BYTE, NPY_BYTE, NPY_BYTE, NPY_UBYTE, NPY_UBYTE, NPY_UBYTE, NPY_SHORT, NPY_SHORT, NPY_SHORT, NPY_USHORT, NPY_USHORT, NPY_USHORT, NPY_INT, NPY_INT, NPY_INT, NPY_UINT, NPY_UINT, NPY_UINT, NPY_LONG, NPY_LONG, NPY_LONG, NPY_ULONG, NPY_ULONG, NPY_ULONG, NPY_LONGLONG, NPY_LONGLONG, NPY_LONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_ULONGLONG, NPY_HALF, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_DATETIME, NPY_TIMEDELTA, NPY_DATETIME, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_TIMEDELTA, NPY_DATETIME, NPY_DATETIME, NPY_TIMEDELTA, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction tan_functions[] = {HALF_tan, FLOAT_tan, DOUBLE_tan, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * tan_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"tan"};
static char tan_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction tanh_functions[] = {HALF_tanh, FLOAT_tanh, DOUBLE_tanh, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static void * tanh_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)"tanh"};
static char tanh_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_CFLOAT, NPY_CFLOAT, NPY_CDOUBLE, NPY_CDOUBLE, NPY_CLONGDOUBLE, NPY_CLONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
static PyUFuncGenericFunction trunc_functions[] = {NULL, FLOAT_trunc, DOUBLE_trunc, NULL, NULL, NULL, NULL};
static void * trunc_data[] = {(void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL, (void *)NULL};
static char trunc_signatures[] = {NPY_HALF, NPY_HALF, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_FLOAT, NPY_FLOAT, NPY_DOUBLE, NPY_DOUBLE, NPY_LONGDOUBLE, NPY_LONGDOUBLE, NPY_OBJECT, NPY_OBJECT};
/* Returns a borrowed ref of the second value in the matching info tuple */
PyObject *
get_info_no_cast(PyUFuncObject *ufunc, PyArray_DTypeMeta *op_dtype,
                 int ndtypes);

static int
InitOperators(PyObject *dictionary) {
    PyObject *f, *identity;

    _ones_like_functions[20] = PyUFunc_O_O;
    _ones_like_data[20] = (void *) Py_get_one;
    absolute_functions[19] = PyUFunc_O_O;
    absolute_data[19] = (void *) PyNumber_Absolute;
    add_functions[21] = PyUFunc_OO_O;
    add_data[21] = (void *) PyNumber_Add;
    arccos_functions[3] = PyUFunc_e_e_As_f_f;
    arccos_data[3] = (void *) npy_acosf;
    arccos_functions[4] = PyUFunc_f_f;
    arccos_data[4] = (void *) npy_acosf;
    arccos_functions[5] = PyUFunc_d_d;
    arccos_data[5] = (void *) npy_acos;
    arccos_functions[6] = PyUFunc_g_g;
    arccos_data[6] = (void *) npy_acosl;
    arccos_functions[7] = PyUFunc_F_F;
    arccos_data[7] = (void *) nc_acosf;
    arccos_functions[8] = PyUFunc_D_D;
    arccos_data[8] = (void *) nc_acos;
    arccos_functions[9] = PyUFunc_G_G;
    arccos_data[9] = (void *) nc_acosl;
    arccos_functions[10] = PyUFunc_O_O_method;
    arccosh_functions[3] = PyUFunc_e_e_As_f_f;
    arccosh_data[3] = (void *) npy_acoshf;
    arccosh_functions[4] = PyUFunc_f_f;
    arccosh_data[4] = (void *) npy_acoshf;
    arccosh_functions[5] = PyUFunc_d_d;
    arccosh_data[5] = (void *) npy_acosh;
    arccosh_functions[6] = PyUFunc_g_g;
    arccosh_data[6] = (void *) npy_acoshl;
    arccosh_functions[7] = PyUFunc_F_F;
    arccosh_data[7] = (void *) nc_acoshf;
    arccosh_functions[8] = PyUFunc_D_D;
    arccosh_data[8] = (void *) nc_acosh;
    arccosh_functions[9] = PyUFunc_G_G;
    arccosh_data[9] = (void *) nc_acoshl;
    arccosh_functions[10] = PyUFunc_O_O_method;
    arcsin_functions[3] = PyUFunc_e_e_As_f_f;
    arcsin_data[3] = (void *) npy_asinf;
    arcsin_functions[4] = PyUFunc_f_f;
    arcsin_data[4] = (void *) npy_asinf;
    arcsin_functions[5] = PyUFunc_d_d;
    arcsin_data[5] = (void *) npy_asin;
    arcsin_functions[6] = PyUFunc_g_g;
    arcsin_data[6] = (void *) npy_asinl;
    arcsin_functions[7] = PyUFunc_F_F;
    arcsin_data[7] = (void *) nc_asinf;
    arcsin_functions[8] = PyUFunc_D_D;
    arcsin_data[8] = (void *) nc_asin;
    arcsin_functions[9] = PyUFunc_G_G;
    arcsin_data[9] = (void *) nc_asinl;
    arcsin_functions[10] = PyUFunc_O_O_method;
    arcsinh_functions[3] = PyUFunc_e_e_As_f_f;
    arcsinh_data[3] = (void *) npy_asinhf;
    arcsinh_functions[4] = PyUFunc_f_f;
    arcsinh_data[4] = (void *) npy_asinhf;
    arcsinh_functions[5] = PyUFunc_d_d;
    arcsinh_data[5] = (void *) npy_asinh;
    arcsinh_functions[6] = PyUFunc_g_g;
    arcsinh_data[6] = (void *) npy_asinhl;
    arcsinh_functions[7] = PyUFunc_F_F;
    arcsinh_data[7] = (void *) nc_asinhf;
    arcsinh_functions[8] = PyUFunc_D_D;
    arcsinh_data[8] = (void *) nc_asinh;
    arcsinh_functions[9] = PyUFunc_G_G;
    arcsinh_data[9] = (void *) nc_asinhl;
    arcsinh_functions[10] = PyUFunc_O_O_method;
    arctan_functions[3] = PyUFunc_e_e_As_f_f;
    arctan_data[3] = (void *) npy_atanf;
    arctan_functions[4] = PyUFunc_f_f;
    arctan_data[4] = (void *) npy_atanf;
    arctan_functions[5] = PyUFunc_d_d;
    arctan_data[5] = (void *) npy_atan;
    arctan_functions[6] = PyUFunc_g_g;
    arctan_data[6] = (void *) npy_atanl;
    arctan_functions[7] = PyUFunc_F_F;
    arctan_data[7] = (void *) nc_atanf;
    arctan_functions[8] = PyUFunc_D_D;
    arctan_data[8] = (void *) nc_atan;
    arctan_functions[9] = PyUFunc_G_G;
    arctan_data[9] = (void *) nc_atanl;
    arctan_functions[10] = PyUFunc_O_O_method;
    arctan2_functions[0] = PyUFunc_ee_e_As_ff_f;
    arctan2_data[0] = (void *) npy_atan2f;
    arctan2_functions[3] = PyUFunc_gg_g;
    arctan2_data[3] = (void *) npy_atan2l;
    arctan2_functions[4] = PyUFunc_OO_O_method;
    arctanh_functions[3] = PyUFunc_e_e_As_f_f;
    arctanh_data[3] = (void *) npy_atanhf;
    arctanh_functions[4] = PyUFunc_f_f;
    arctanh_data[4] = (void *) npy_atanhf;
    arctanh_functions[5] = PyUFunc_d_d;
    arctanh_data[5] = (void *) npy_atanh;
    arctanh_functions[6] = PyUFunc_g_g;
    arctanh_data[6] = (void *) npy_atanhl;
    arctanh_functions[7] = PyUFunc_F_F;
    arctanh_data[7] = (void *) nc_atanhf;
    arctanh_functions[8] = PyUFunc_D_D;
    arctanh_data[8] = (void *) nc_atanh;
    arctanh_functions[9] = PyUFunc_G_G;
    arctanh_data[9] = (void *) nc_atanhl;
    arctanh_functions[10] = PyUFunc_O_O_method;
    bitwise_and_functions[11] = PyUFunc_OO_O;
    bitwise_and_data[11] = (void *) PyNumber_And;
    bitwise_or_functions[11] = PyUFunc_OO_O;
    bitwise_or_data[11] = (void *) PyNumber_Or;
    bitwise_xor_functions[11] = PyUFunc_OO_O;
    bitwise_xor_data[11] = (void *) PyNumber_Xor;
    cbrt_functions[3] = PyUFunc_e_e_As_f_f;
    cbrt_data[3] = (void *) npy_cbrtf;
    cbrt_functions[4] = PyUFunc_f_f;
    cbrt_data[4] = (void *) npy_cbrtf;
    cbrt_functions[5] = PyUFunc_d_d;
    cbrt_data[5] = (void *) npy_cbrt;
    cbrt_functions[6] = PyUFunc_g_g;
    cbrt_data[6] = (void *) npy_cbrtl;
    cbrt_functions[7] = PyUFunc_O_O_method;
    ceil_functions[0] = PyUFunc_e_e_As_f_f;
    ceil_data[0] = (void *) npy_ceilf;
    ceil_functions[3] = PyUFunc_f_f;
    ceil_data[3] = (void *) npy_ceilf;
    ceil_functions[4] = PyUFunc_d_d;
    ceil_data[4] = (void *) npy_ceil;
    ceil_functions[5] = PyUFunc_g_g;
    ceil_data[5] = (void *) npy_ceill;
    ceil_functions[6] = PyUFunc_O_O;
    ceil_data[6] = (void *) npy_ObjectCeil;
    clip_functions[20] = PyUFunc_OOO_O;
    clip_data[20] = (void *) npy_ObjectClip;
    conjugate_functions[17] = PyUFunc_O_O_method;
    cos_functions[3] = PyUFunc_g_g;
    cos_data[3] = (void *) npy_cosl;
    cos_functions[4] = PyUFunc_F_F;
    cos_data[4] = (void *) nc_cosf;
    cos_functions[5] = PyUFunc_D_D;
    cos_data[5] = (void *) nc_cos;
    cos_functions[6] = PyUFunc_G_G;
    cos_data[6] = (void *) nc_cosl;
    cos_functions[7] = PyUFunc_O_O_method;
    cosh_functions[3] = PyUFunc_e_e_As_f_f;
    cosh_data[3] = (void *) npy_coshf;
    cosh_functions[4] = PyUFunc_f_f;
    cosh_data[4] = (void *) npy_coshf;
    cosh_functions[5] = PyUFunc_d_d;
    cosh_data[5] = (void *) npy_cosh;
    cosh_functions[6] = PyUFunc_g_g;
    cosh_data[6] = (void *) npy_coshl;
    cosh_functions[7] = PyUFunc_F_F;
    cosh_data[7] = (void *) nc_coshf;
    cosh_functions[8] = PyUFunc_D_D;
    cosh_data[8] = (void *) nc_cosh;
    cosh_functions[9] = PyUFunc_G_G;
    cosh_data[9] = (void *) nc_coshl;
    cosh_functions[10] = PyUFunc_O_O_method;
    deg2rad_functions[0] = PyUFunc_e_e_As_f_f;
    deg2rad_data[0] = (void *) npy_deg2radf;
    deg2rad_functions[1] = PyUFunc_f_f;
    deg2rad_data[1] = (void *) npy_deg2radf;
    deg2rad_functions[2] = PyUFunc_d_d;
    deg2rad_data[2] = (void *) npy_deg2rad;
    deg2rad_functions[3] = PyUFunc_g_g;
    deg2rad_data[3] = (void *) npy_deg2radl;
    deg2rad_functions[4] = PyUFunc_O_O_method;
    degrees_functions[0] = PyUFunc_e_e_As_f_f;
    degrees_data[0] = (void *) npy_degreesf;
    degrees_functions[1] = PyUFunc_f_f;
    degrees_data[1] = (void *) npy_degreesf;
    degrees_functions[2] = PyUFunc_d_d;
    degrees_data[2] = (void *) npy_degrees;
    degrees_functions[3] = PyUFunc_g_g;
    degrees_data[3] = (void *) npy_degreesl;
    degrees_functions[4] = PyUFunc_O_O_method;
    divide_functions[10] = PyUFunc_OO_O;
    divide_data[10] = (void *) PyNumber_TrueDivide;
    exp_functions[3] = PyUFunc_f_f;
    exp_data[3] = (void *) npy_expf;
    exp_functions[4] = PyUFunc_d_d;
    exp_data[4] = (void *) npy_exp;
    exp_functions[5] = PyUFunc_g_g;
    exp_data[5] = (void *) npy_expl;
    exp_functions[6] = PyUFunc_F_F;
    exp_data[6] = (void *) nc_expf;
    exp_functions[7] = PyUFunc_D_D;
    exp_data[7] = (void *) nc_exp;
    exp_functions[8] = PyUFunc_G_G;
    exp_data[8] = (void *) nc_expl;
    exp_functions[9] = PyUFunc_O_O_method;
    exp2_functions[3] = PyUFunc_e_e_As_f_f;
    exp2_data[3] = (void *) npy_exp2f;
    exp2_functions[4] = PyUFunc_f_f;
    exp2_data[4] = (void *) npy_exp2f;
    exp2_functions[5] = PyUFunc_d_d;
    exp2_data[5] = (void *) npy_exp2;
    exp2_functions[6] = PyUFunc_g_g;
    exp2_data[6] = (void *) npy_exp2l;
    exp2_functions[7] = PyUFunc_F_F;
    exp2_data[7] = (void *) nc_exp2f;
    exp2_functions[8] = PyUFunc_D_D;
    exp2_data[8] = (void *) nc_exp2;
    exp2_functions[9] = PyUFunc_G_G;
    exp2_data[9] = (void *) nc_exp2l;
    exp2_functions[10] = PyUFunc_O_O_method;
    expm1_functions[3] = PyUFunc_e_e_As_f_f;
    expm1_data[3] = (void *) npy_expm1f;
    expm1_functions[4] = PyUFunc_f_f;
    expm1_data[4] = (void *) npy_expm1f;
    expm1_functions[5] = PyUFunc_d_d;
    expm1_data[5] = (void *) npy_expm1;
    expm1_functions[6] = PyUFunc_g_g;
    expm1_data[6] = (void *) npy_expm1l;
    expm1_functions[7] = PyUFunc_F_F;
    expm1_data[7] = (void *) nc_expm1f;
    expm1_functions[8] = PyUFunc_D_D;
    expm1_data[8] = (void *) nc_expm1;
    expm1_functions[9] = PyUFunc_G_G;
    expm1_data[9] = (void *) nc_expm1l;
    expm1_functions[10] = PyUFunc_O_O_method;
    fabs_functions[0] = PyUFunc_e_e_As_f_f;
    fabs_data[0] = (void *) npy_fabsf;
    fabs_functions[1] = PyUFunc_f_f;
    fabs_data[1] = (void *) npy_fabsf;
    fabs_functions[2] = PyUFunc_d_d;
    fabs_data[2] = (void *) npy_fabs;
    fabs_functions[3] = PyUFunc_g_g;
    fabs_data[3] = (void *) npy_fabsl;
    fabs_functions[4] = PyUFunc_O_O_method;
    float_power_functions[0] = PyUFunc_dd_d;
    float_power_data[0] = (void *) npy_pow;
    float_power_functions[1] = PyUFunc_gg_g;
    float_power_data[1] = (void *) npy_powl;
    float_power_functions[2] = PyUFunc_DD_D;
    float_power_data[2] = (void *) nc_pow;
    float_power_functions[3] = PyUFunc_GG_G;
    float_power_data[3] = (void *) nc_powl;
    floor_functions[0] = PyUFunc_e_e_As_f_f;
    floor_data[0] = (void *) npy_floorf;
    floor_functions[3] = PyUFunc_f_f;
    floor_data[3] = (void *) npy_floorf;
    floor_functions[4] = PyUFunc_d_d;
    floor_data[4] = (void *) npy_floor;
    floor_functions[5] = PyUFunc_g_g;
    floor_data[5] = (void *) npy_floorl;
    floor_functions[6] = PyUFunc_O_O;
    floor_data[6] = (void *) npy_ObjectFloor;
    floor_divide_functions[17] = PyUFunc_OO_O;
    floor_divide_data[17] = (void *) PyNumber_FloorDivide;
    fmax_functions[20] = PyUFunc_OO_O;
    fmax_data[20] = (void *) npy_ObjectMax;
    fmin_functions[20] = PyUFunc_OO_O;
    fmin_data[20] = (void *) npy_ObjectMin;
    fmod_functions[10] = PyUFunc_ee_e_As_ff_f;
    fmod_data[10] = (void *) npy_fmodf;
    fmod_functions[11] = PyUFunc_ff_f;
    fmod_data[11] = (void *) npy_fmodf;
    fmod_functions[12] = PyUFunc_dd_d;
    fmod_data[12] = (void *) npy_fmod;
    fmod_functions[13] = PyUFunc_gg_g;
    fmod_data[13] = (void *) npy_fmodl;
    fmod_functions[14] = PyUFunc_OO_O_method;
    gcd_functions[10] = PyUFunc_OO_O;
    gcd_data[10] = (void *) npy_ObjectGCD;
    heaviside_functions[0] = PyUFunc_ee_e_As_ff_f;
    heaviside_data[0] = (void *) npy_heavisidef;
    heaviside_functions[1] = PyUFunc_ff_f;
    heaviside_data[1] = (void *) npy_heavisidef;
    heaviside_functions[2] = PyUFunc_dd_d;
    heaviside_data[2] = (void *) npy_heaviside;
    heaviside_functions[3] = PyUFunc_gg_g;
    heaviside_data[3] = (void *) npy_heavisidel;
    hypot_functions[0] = PyUFunc_ee_e_As_ff_f;
    hypot_data[0] = (void *) npy_hypotf;
    hypot_functions[1] = PyUFunc_ff_f;
    hypot_data[1] = (void *) npy_hypotf;
    hypot_functions[2] = PyUFunc_dd_d;
    hypot_data[2] = (void *) npy_hypot;
    hypot_functions[3] = PyUFunc_gg_g;
    hypot_data[3] = (void *) npy_hypotl;
    hypot_functions[4] = PyUFunc_OO_O_method;
    invert_functions[11] = PyUFunc_O_O;
    invert_data[11] = (void *) PyNumber_Invert;
    lcm_functions[10] = PyUFunc_OO_O;
    lcm_data[10] = (void *) npy_ObjectLCM;
    left_shift_functions[10] = PyUFunc_OO_O;
    left_shift_data[10] = (void *) PyNumber_Lshift;
    log_functions[3] = PyUFunc_f_f;
    log_data[3] = (void *) npy_logf;
    log_functions[4] = PyUFunc_d_d;
    log_data[4] = (void *) npy_log;
    log_functions[5] = PyUFunc_g_g;
    log_data[5] = (void *) npy_logl;
    log_functions[6] = PyUFunc_F_F;
    log_data[6] = (void *) nc_logf;
    log_functions[7] = PyUFunc_D_D;
    log_data[7] = (void *) nc_log;
    log_functions[8] = PyUFunc_G_G;
    log_data[8] = (void *) nc_logl;
    log_functions[9] = PyUFunc_O_O_method;
    log10_functions[3] = PyUFunc_e_e_As_f_f;
    log10_data[3] = (void *) npy_log10f;
    log10_functions[4] = PyUFunc_f_f;
    log10_data[4] = (void *) npy_log10f;
    log10_functions[5] = PyUFunc_d_d;
    log10_data[5] = (void *) npy_log10;
    log10_functions[6] = PyUFunc_g_g;
    log10_data[6] = (void *) npy_log10l;
    log10_functions[7] = PyUFunc_F_F;
    log10_data[7] = (void *) nc_log10f;
    log10_functions[8] = PyUFunc_D_D;
    log10_data[8] = (void *) nc_log10;
    log10_functions[9] = PyUFunc_G_G;
    log10_data[9] = (void *) nc_log10l;
    log10_functions[10] = PyUFunc_O_O_method;
    log1p_functions[3] = PyUFunc_e_e_As_f_f;
    log1p_data[3] = (void *) npy_log1pf;
    log1p_functions[4] = PyUFunc_f_f;
    log1p_data[4] = (void *) npy_log1pf;
    log1p_functions[5] = PyUFunc_d_d;
    log1p_data[5] = (void *) npy_log1p;
    log1p_functions[6] = PyUFunc_g_g;
    log1p_data[6] = (void *) npy_log1pl;
    log1p_functions[7] = PyUFunc_F_F;
    log1p_data[7] = (void *) nc_log1pf;
    log1p_functions[8] = PyUFunc_D_D;
    log1p_data[8] = (void *) nc_log1p;
    log1p_functions[9] = PyUFunc_G_G;
    log1p_data[9] = (void *) nc_log1pl;
    log1p_functions[10] = PyUFunc_O_O_method;
    log2_functions[3] = PyUFunc_e_e_As_f_f;
    log2_data[3] = (void *) npy_log2f;
    log2_functions[4] = PyUFunc_f_f;
    log2_data[4] = (void *) npy_log2f;
    log2_functions[5] = PyUFunc_d_d;
    log2_data[5] = (void *) npy_log2;
    log2_functions[6] = PyUFunc_g_g;
    log2_data[6] = (void *) npy_log2l;
    log2_functions[7] = PyUFunc_F_F;
    log2_data[7] = (void *) nc_log2f;
    log2_functions[8] = PyUFunc_D_D;
    log2_data[8] = (void *) nc_log2;
    log2_functions[9] = PyUFunc_G_G;
    log2_data[9] = (void *) nc_log2l;
    log2_functions[10] = PyUFunc_O_O_method;
    logaddexp_functions[0] = PyUFunc_ee_e_As_ff_f;
    logaddexp_data[0] = (void *) npy_logaddexpf;
    logaddexp_functions[1] = PyUFunc_ff_f;
    logaddexp_data[1] = (void *) npy_logaddexpf;
    logaddexp_functions[2] = PyUFunc_dd_d;
    logaddexp_data[2] = (void *) npy_logaddexp;
    logaddexp_functions[3] = PyUFunc_gg_g;
    logaddexp_data[3] = (void *) npy_logaddexpl;
    logaddexp2_functions[0] = PyUFunc_ee_e_As_ff_f;
    logaddexp2_data[0] = (void *) npy_logaddexp2f;
    logaddexp2_functions[1] = PyUFunc_ff_f;
    logaddexp2_data[1] = (void *) npy_logaddexp2f;
    logaddexp2_functions[2] = PyUFunc_dd_d;
    logaddexp2_data[2] = (void *) npy_logaddexp2;
    logaddexp2_functions[3] = PyUFunc_gg_g;
    logaddexp2_data[3] = (void *) npy_logaddexp2l;
    logical_and_functions[18] = PyUFunc_OO_O;
    logical_and_data[18] = (void *) npy_ObjectLogicalAnd;
    logical_not_functions[18] = PyUFunc_O_O;
    logical_not_data[18] = (void *) npy_ObjectLogicalNot;
    logical_or_functions[18] = PyUFunc_OO_O;
    logical_or_data[18] = (void *) npy_ObjectLogicalOr;
    logical_xor_functions[18] = PyUFunc_OO_O_method;
    maximum_functions[20] = PyUFunc_OO_O;
    maximum_data[20] = (void *) npy_ObjectMax;
    minimum_functions[20] = PyUFunc_OO_O;
    minimum_data[20] = (void *) npy_ObjectMin;
    multiply_functions[22] = PyUFunc_OO_O;
    multiply_data[22] = (void *) PyNumber_Multiply;
    negative_functions[15] = PyUFunc_F_F;
    negative_data[15] = (void *) nc_negf;
    negative_functions[16] = PyUFunc_D_D;
    negative_data[16] = (void *) nc_neg;
    negative_functions[17] = PyUFunc_G_G;
    negative_data[17] = (void *) nc_negl;
    negative_functions[18] = PyUFunc_O_O;
    negative_data[18] = (void *) PyNumber_Negative;
    positive_functions[15] = PyUFunc_F_F;
    positive_data[15] = (void *) nc_posf;
    positive_functions[16] = PyUFunc_D_D;
    positive_data[16] = (void *) nc_pos;
    positive_functions[17] = PyUFunc_G_G;
    positive_data[17] = (void *) nc_posl;
    positive_functions[18] = PyUFunc_O_O;
    positive_data[18] = (void *) PyNumber_Positive;
    power_functions[10] = PyUFunc_ee_e_As_ff_f;
    power_data[10] = (void *) npy_powf;
    power_functions[13] = PyUFunc_ee_e_As_ff_f;
    power_data[13] = (void *) npy_powf;
    power_functions[14] = PyUFunc_ff_f;
    power_data[14] = (void *) npy_powf;
    power_functions[15] = PyUFunc_dd_d;
    power_data[15] = (void *) npy_pow;
    power_functions[16] = PyUFunc_gg_g;
    power_data[16] = (void *) npy_powl;
    power_functions[17] = PyUFunc_FF_F;
    power_data[17] = (void *) nc_powf;
    power_functions[18] = PyUFunc_DD_D;
    power_data[18] = (void *) nc_pow;
    power_functions[19] = PyUFunc_GG_G;
    power_data[19] = (void *) nc_powl;
    power_functions[20] = PyUFunc_OO_O;
    power_data[20] = (void *) npy_ObjectPower;
    rad2deg_functions[0] = PyUFunc_e_e_As_f_f;
    rad2deg_data[0] = (void *) npy_rad2degf;
    rad2deg_functions[1] = PyUFunc_f_f;
    rad2deg_data[1] = (void *) npy_rad2degf;
    rad2deg_functions[2] = PyUFunc_d_d;
    rad2deg_data[2] = (void *) npy_rad2deg;
    rad2deg_functions[3] = PyUFunc_g_g;
    rad2deg_data[3] = (void *) npy_rad2degl;
    rad2deg_functions[4] = PyUFunc_O_O_method;
    radians_functions[0] = PyUFunc_e_e_As_f_f;
    radians_data[0] = (void *) npy_radiansf;
    radians_functions[1] = PyUFunc_f_f;
    radians_data[1] = (void *) npy_radiansf;
    radians_functions[2] = PyUFunc_d_d;
    radians_data[2] = (void *) npy_radians;
    radians_functions[3] = PyUFunc_g_g;
    radians_data[3] = (void *) npy_radiansl;
    radians_functions[4] = PyUFunc_O_O_method;
    reciprocal_functions[17] = PyUFunc_O_O;
    reciprocal_data[17] = (void *) Py_reciprocal;
    remainder_functions[15] = PyUFunc_OO_O;
    remainder_data[15] = (void *) PyNumber_Remainder;
    right_shift_functions[10] = PyUFunc_OO_O;
    right_shift_data[10] = (void *) PyNumber_Rshift;
    rint_functions[0] = PyUFunc_e_e_As_f_f;
    rint_data[0] = (void *) npy_rintf;
    rint_functions[3] = PyUFunc_f_f;
    rint_data[3] = (void *) npy_rintf;
    rint_functions[4] = PyUFunc_d_d;
    rint_data[4] = (void *) npy_rint;
    rint_functions[5] = PyUFunc_g_g;
    rint_data[5] = (void *) npy_rintl;
    rint_functions[6] = PyUFunc_F_F;
    rint_data[6] = (void *) nc_rintf;
    rint_functions[7] = PyUFunc_D_D;
    rint_data[7] = (void *) nc_rint;
    rint_functions[8] = PyUFunc_G_G;
    rint_data[8] = (void *) nc_rintl;
    rint_functions[9] = PyUFunc_O_O_method;
    sin_functions[3] = PyUFunc_g_g;
    sin_data[3] = (void *) npy_sinl;
    sin_functions[4] = PyUFunc_F_F;
    sin_data[4] = (void *) nc_sinf;
    sin_functions[5] = PyUFunc_D_D;
    sin_data[5] = (void *) nc_sin;
    sin_functions[6] = PyUFunc_G_G;
    sin_data[6] = (void *) nc_sinl;
    sin_functions[7] = PyUFunc_O_O_method;
    sinh_functions[3] = PyUFunc_e_e_As_f_f;
    sinh_data[3] = (void *) npy_sinhf;
    sinh_functions[4] = PyUFunc_f_f;
    sinh_data[4] = (void *) npy_sinhf;
    sinh_functions[5] = PyUFunc_d_d;
    sinh_data[5] = (void *) npy_sinh;
    sinh_functions[6] = PyUFunc_g_g;
    sinh_data[6] = (void *) npy_sinhl;
    sinh_functions[7] = PyUFunc_F_F;
    sinh_data[7] = (void *) nc_sinhf;
    sinh_functions[8] = PyUFunc_D_D;
    sinh_data[8] = (void *) nc_sinh;
    sinh_functions[9] = PyUFunc_G_G;
    sinh_data[9] = (void *) nc_sinhl;
    sinh_functions[10] = PyUFunc_O_O_method;
    sqrt_functions[0] = PyUFunc_e_e_As_f_f;
    sqrt_data[0] = (void *) npy_sqrtf;
    sqrt_functions[3] = PyUFunc_f_f;
    sqrt_data[3] = (void *) npy_sqrtf;
    sqrt_functions[4] = PyUFunc_d_d;
    sqrt_data[4] = (void *) npy_sqrt;
    sqrt_functions[5] = PyUFunc_g_g;
    sqrt_data[5] = (void *) npy_sqrtl;
    sqrt_functions[6] = PyUFunc_F_F;
    sqrt_data[6] = (void *) nc_sqrtf;
    sqrt_functions[7] = PyUFunc_D_D;
    sqrt_data[7] = (void *) nc_sqrt;
    sqrt_functions[8] = PyUFunc_G_G;
    sqrt_data[8] = (void *) nc_sqrtl;
    sqrt_functions[9] = PyUFunc_O_O_method;
    square_functions[17] = PyUFunc_O_O;
    square_data[17] = (void *) Py_square;
    subtract_functions[20] = PyUFunc_OO_O;
    subtract_data[20] = (void *) PyNumber_Subtract;
    tan_functions[3] = PyUFunc_e_e_As_f_f;
    tan_data[3] = (void *) npy_tanf;
    tan_functions[4] = PyUFunc_f_f;
    tan_data[4] = (void *) npy_tanf;
    tan_functions[5] = PyUFunc_d_d;
    tan_data[5] = (void *) npy_tan;
    tan_functions[6] = PyUFunc_g_g;
    tan_data[6] = (void *) npy_tanl;
    tan_functions[7] = PyUFunc_F_F;
    tan_data[7] = (void *) nc_tanf;
    tan_functions[8] = PyUFunc_D_D;
    tan_data[8] = (void *) nc_tan;
    tan_functions[9] = PyUFunc_G_G;
    tan_data[9] = (void *) nc_tanl;
    tan_functions[10] = PyUFunc_O_O_method;
    tanh_functions[3] = PyUFunc_e_e_As_f_f;
    tanh_data[3] = (void *) npy_tanhf;
    tanh_functions[4] = PyUFunc_f_f;
    tanh_data[4] = (void *) npy_tanhf;
    tanh_functions[5] = PyUFunc_d_d;
    tanh_data[5] = (void *) npy_tanh;
    tanh_functions[6] = PyUFunc_g_g;
    tanh_data[6] = (void *) npy_tanhl;
    tanh_functions[7] = PyUFunc_F_F;
    tanh_data[7] = (void *) nc_tanhf;
    tanh_functions[8] = PyUFunc_D_D;
    tanh_data[8] = (void *) nc_tanh;
    tanh_functions[9] = PyUFunc_G_G;
    tanh_data[9] = (void *) nc_tanhl;
    tanh_functions[10] = PyUFunc_O_O_method;
    trunc_functions[0] = PyUFunc_e_e_As_f_f;
    trunc_data[0] = (void *) npy_truncf;
    trunc_functions[3] = PyUFunc_f_f;
    trunc_data[3] = (void *) npy_truncf;
    trunc_functions[4] = PyUFunc_d_d;
    trunc_data[4] = (void *) npy_trunc;
    trunc_functions[5] = PyUFunc_g_g;
    trunc_data[5] = (void *) npy_truncl;
    trunc_functions[6] = PyUFunc_O_O;
    trunc_data[6] = (void *) npy_ObjectTrunc;
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_logical.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[0] = BOOL_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[0] = BOOL_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[0] = BOOL_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[0] = BOOL_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(fmax_functions[0] = BOOL_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(fmin_functions[0] = BOOL_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[0] = BOOL_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[0] = BOOL_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[0] = BOOL_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[0] = BOOL_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[0] = BOOL_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[0] = BOOL_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[0] = BOOL_logical_and);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_autovec.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[1] = BYTE_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[2] = UBYTE_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[3] = SHORT_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[4] = USHORT_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[5] = INT_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[6] = UINT_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[7] = LONG_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[8] = ULONG_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[9] = LONGLONG_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[10] = ULONGLONG_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[11] = HALF_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[1] = BYTE_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[2] = UBYTE_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[3] = SHORT_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[4] = USHORT_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[5] = INT_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[6] = UINT_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[7] = LONG_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[8] = ULONG_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[9] = LONGLONG_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[10] = ULONGLONG_add);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[1] = BYTE_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[2] = UBYTE_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[3] = SHORT_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[4] = USHORT_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[5] = INT_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[6] = UINT_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[7] = LONG_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[8] = ULONG_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[9] = LONGLONG_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_and_functions[10] = ULONGLONG_bitwise_and);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[1] = BYTE_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[2] = UBYTE_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[3] = SHORT_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[4] = USHORT_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[5] = INT_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[6] = UINT_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[7] = LONG_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[8] = ULONG_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[9] = LONGLONG_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_or_functions[10] = ULONGLONG_bitwise_or);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[1] = BYTE_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[2] = UBYTE_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[3] = SHORT_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[4] = USHORT_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[5] = INT_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[6] = UINT_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[7] = LONG_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[8] = ULONG_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[9] = LONGLONG_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[10] = ULONGLONG_bitwise_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[0] = BYTE_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[1] = UBYTE_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[2] = SHORT_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[3] = USHORT_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[4] = INT_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[5] = UINT_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[6] = LONG_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[7] = ULONG_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[8] = LONGLONG_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[9] = ULONGLONG_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[1] = BYTE_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[2] = UBYTE_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[3] = SHORT_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[4] = USHORT_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[5] = INT_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[6] = UINT_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[7] = LONG_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[8] = ULONG_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[9] = LONGLONG_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(invert_functions[10] = ULONGLONG_invert);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[0] = BOOL_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[1] = BYTE_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[2] = UBYTE_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[3] = SHORT_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[4] = USHORT_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[5] = INT_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[6] = UINT_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[7] = LONG_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[8] = ULONG_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[9] = LONGLONG_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[10] = ULONGLONG_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[0] = BOOL_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[1] = BYTE_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[2] = UBYTE_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[3] = SHORT_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[4] = USHORT_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[5] = INT_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[6] = UINT_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[7] = LONG_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[8] = ULONG_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[9] = LONGLONG_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[10] = ULONGLONG_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[18] = TIMEDELTA_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[19] = DATETIME_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[0] = BOOL_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[1] = BYTE_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[2] = UBYTE_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[3] = SHORT_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[4] = USHORT_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[5] = INT_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[6] = UINT_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[7] = LONG_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[8] = ULONG_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[9] = LONGLONG_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[10] = ULONGLONG_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[0] = BYTE_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[1] = UBYTE_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[2] = SHORT_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[3] = USHORT_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[4] = INT_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[5] = UINT_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[6] = LONG_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[7] = ULONG_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[8] = LONGLONG_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(left_shift_functions[9] = ULONGLONG_left_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[1] = BYTE_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[2] = UBYTE_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[3] = SHORT_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[4] = USHORT_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[5] = INT_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[6] = UINT_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[7] = LONG_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[8] = ULONG_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[9] = LONGLONG_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_and_functions[10] = ULONGLONG_logical_and);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[1] = BYTE_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[2] = UBYTE_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[3] = SHORT_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[4] = USHORT_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[5] = INT_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[6] = UINT_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[7] = LONG_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[8] = ULONG_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[9] = LONGLONG_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_not_functions[10] = ULONGLONG_logical_not);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[1] = BYTE_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[2] = UBYTE_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[3] = SHORT_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[4] = USHORT_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[5] = INT_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[6] = UINT_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[7] = LONG_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[8] = ULONG_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[9] = LONGLONG_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_or_functions[10] = ULONGLONG_logical_or);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[1] = BYTE_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[2] = UBYTE_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[3] = SHORT_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[4] = USHORT_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[5] = INT_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[6] = UINT_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[7] = LONG_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[8] = ULONG_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[9] = LONGLONG_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[10] = ULONGLONG_logical_xor);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[1] = BYTE_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[2] = UBYTE_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[3] = SHORT_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[4] = USHORT_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[5] = INT_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[6] = UINT_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[7] = LONG_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[8] = ULONG_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[9] = LONGLONG_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[10] = ULONGLONG_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[0] = BYTE_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[1] = UBYTE_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[2] = SHORT_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[3] = USHORT_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[4] = INT_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[5] = UINT_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[6] = LONG_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[7] = ULONG_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[8] = LONGLONG_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[9] = ULONGLONG_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[0] = BYTE_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[1] = UBYTE_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[2] = SHORT_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[3] = USHORT_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[4] = INT_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[5] = UINT_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[6] = LONG_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[7] = ULONG_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[8] = LONGLONG_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(right_shift_functions[9] = ULONGLONG_right_shift);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[0] = BYTE_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[1] = UBYTE_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[2] = SHORT_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[3] = USHORT_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[4] = INT_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[5] = UINT_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[6] = LONG_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[7] = ULONG_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[8] = LONGLONG_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(sign_functions[9] = ULONGLONG_sign);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[0] = BYTE_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[1] = UBYTE_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[2] = SHORT_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[3] = USHORT_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[4] = INT_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[5] = UINT_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[6] = LONG_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[7] = ULONG_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[8] = LONGLONG_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[9] = ULONGLONG_square);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[0] = BYTE_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[1] = UBYTE_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[2] = SHORT_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[3] = USHORT_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[4] = INT_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[5] = UINT_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[6] = LONG_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[7] = ULONG_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[8] = LONGLONG_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[9] = ULONGLONG_subtract);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_unary_fp.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[12] = FLOAT_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[13] = DOUBLE_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(ceil_functions[1] = FLOAT_ceil);
    
    NPY_CPU_DISPATCH_CALL_XB(ceil_functions[2] = DOUBLE_ceil);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_functions[1] = FLOAT_floor);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_functions[2] = DOUBLE_floor);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[11] = FLOAT_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(reciprocal_functions[12] = DOUBLE_reciprocal);
    
    NPY_CPU_DISPATCH_CALL_XB(rint_functions[1] = FLOAT_rint);
    
    NPY_CPU_DISPATCH_CALL_XB(rint_functions[2] = DOUBLE_rint);
    
    NPY_CPU_DISPATCH_CALL_XB(sqrt_functions[1] = FLOAT_sqrt);
    
    NPY_CPU_DISPATCH_CALL_XB(sqrt_functions[2] = DOUBLE_sqrt);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[11] = FLOAT_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[12] = DOUBLE_square);
    
    NPY_CPU_DISPATCH_CALL_XB(trunc_functions[1] = FLOAT_trunc);
    
    NPY_CPU_DISPATCH_CALL_XB(trunc_functions[2] = DOUBLE_trunc);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_unary_complex.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[16] = CFLOAT_absolute);
    
    NPY_CPU_DISPATCH_CALL_XB(absolute_functions[17] = CDOUBLE_absolute);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_arithm_fp.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[12] = FLOAT_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[13] = DOUBLE_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[15] = CFLOAT_add);
    
    NPY_CPU_DISPATCH_CALL_XB(add_functions[16] = CDOUBLE_add);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[14] = CFLOAT_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(conjugate_functions[15] = CDOUBLE_conjugate);
    
    NPY_CPU_DISPATCH_CALL_XB(divide_functions[1] = FLOAT_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(divide_functions[2] = DOUBLE_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[12] = FLOAT_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[13] = DOUBLE_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[15] = CFLOAT_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(multiply_functions[16] = CDOUBLE_multiply);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[14] = CFLOAT_square);
    
    NPY_CPU_DISPATCH_CALL_XB(square_functions[15] = CDOUBLE_square);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[11] = FLOAT_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[12] = DOUBLE_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[14] = CFLOAT_subtract);
    
    NPY_CPU_DISPATCH_CALL_XB(subtract_functions[15] = CDOUBLE_subtract);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_umath_fp.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(arccos_functions[0] = HALF_arccos);
    
    NPY_CPU_DISPATCH_CALL_XB(arccos_functions[1] = FLOAT_arccos);
    
    NPY_CPU_DISPATCH_CALL_XB(arccos_functions[2] = DOUBLE_arccos);
    
    NPY_CPU_DISPATCH_CALL_XB(arccosh_functions[0] = HALF_arccosh);
    
    NPY_CPU_DISPATCH_CALL_XB(arccosh_functions[1] = FLOAT_arccosh);
    
    NPY_CPU_DISPATCH_CALL_XB(arccosh_functions[2] = DOUBLE_arccosh);
    
    NPY_CPU_DISPATCH_CALL_XB(arcsin_functions[0] = HALF_arcsin);
    
    NPY_CPU_DISPATCH_CALL_XB(arcsin_functions[1] = FLOAT_arcsin);
    
    NPY_CPU_DISPATCH_CALL_XB(arcsin_functions[2] = DOUBLE_arcsin);
    
    NPY_CPU_DISPATCH_CALL_XB(arcsinh_functions[0] = HALF_arcsinh);
    
    NPY_CPU_DISPATCH_CALL_XB(arcsinh_functions[1] = FLOAT_arcsinh);
    
    NPY_CPU_DISPATCH_CALL_XB(arcsinh_functions[2] = DOUBLE_arcsinh);
    
    NPY_CPU_DISPATCH_CALL_XB(arctan_functions[0] = HALF_arctan);
    
    NPY_CPU_DISPATCH_CALL_XB(arctan_functions[1] = FLOAT_arctan);
    
    NPY_CPU_DISPATCH_CALL_XB(arctan_functions[2] = DOUBLE_arctan);
    
    NPY_CPU_DISPATCH_CALL_XB(arctan2_functions[1] = FLOAT_arctan2);
    
    NPY_CPU_DISPATCH_CALL_XB(arctan2_functions[2] = DOUBLE_arctan2);
    
    NPY_CPU_DISPATCH_CALL_XB(arctanh_functions[0] = HALF_arctanh);
    
    NPY_CPU_DISPATCH_CALL_XB(arctanh_functions[1] = FLOAT_arctanh);
    
    NPY_CPU_DISPATCH_CALL_XB(arctanh_functions[2] = DOUBLE_arctanh);
    
    NPY_CPU_DISPATCH_CALL_XB(cbrt_functions[0] = HALF_cbrt);
    
    NPY_CPU_DISPATCH_CALL_XB(cbrt_functions[1] = FLOAT_cbrt);
    
    NPY_CPU_DISPATCH_CALL_XB(cbrt_functions[2] = DOUBLE_cbrt);
    
    NPY_CPU_DISPATCH_CALL_XB(cos_functions[0] = HALF_cos);
    
    NPY_CPU_DISPATCH_CALL_XB(cosh_functions[0] = HALF_cosh);
    
    NPY_CPU_DISPATCH_CALL_XB(cosh_functions[1] = FLOAT_cosh);
    
    NPY_CPU_DISPATCH_CALL_XB(cosh_functions[2] = DOUBLE_cosh);
    
    NPY_CPU_DISPATCH_CALL_XB(exp_functions[0] = HALF_exp);
    
    NPY_CPU_DISPATCH_CALL_XB(exp2_functions[0] = HALF_exp2);
    
    NPY_CPU_DISPATCH_CALL_XB(exp2_functions[1] = FLOAT_exp2);
    
    NPY_CPU_DISPATCH_CALL_XB(exp2_functions[2] = DOUBLE_exp2);
    
    NPY_CPU_DISPATCH_CALL_XB(expm1_functions[0] = HALF_expm1);
    
    NPY_CPU_DISPATCH_CALL_XB(expm1_functions[1] = FLOAT_expm1);
    
    NPY_CPU_DISPATCH_CALL_XB(expm1_functions[2] = DOUBLE_expm1);
    
    NPY_CPU_DISPATCH_CALL_XB(log_functions[0] = HALF_log);
    
    NPY_CPU_DISPATCH_CALL_XB(log10_functions[0] = HALF_log10);
    
    NPY_CPU_DISPATCH_CALL_XB(log10_functions[1] = FLOAT_log10);
    
    NPY_CPU_DISPATCH_CALL_XB(log10_functions[2] = DOUBLE_log10);
    
    NPY_CPU_DISPATCH_CALL_XB(log1p_functions[0] = HALF_log1p);
    
    NPY_CPU_DISPATCH_CALL_XB(log1p_functions[1] = FLOAT_log1p);
    
    NPY_CPU_DISPATCH_CALL_XB(log1p_functions[2] = DOUBLE_log1p);
    
    NPY_CPU_DISPATCH_CALL_XB(log2_functions[0] = HALF_log2);
    
    NPY_CPU_DISPATCH_CALL_XB(log2_functions[1] = FLOAT_log2);
    
    NPY_CPU_DISPATCH_CALL_XB(log2_functions[2] = DOUBLE_log2);
    
    NPY_CPU_DISPATCH_CALL_XB(power_functions[11] = FLOAT_power);
    
    NPY_CPU_DISPATCH_CALL_XB(power_functions[12] = DOUBLE_power);
    
    NPY_CPU_DISPATCH_CALL_XB(sin_functions[0] = HALF_sin);
    
    NPY_CPU_DISPATCH_CALL_XB(sinh_functions[0] = HALF_sinh);
    
    NPY_CPU_DISPATCH_CALL_XB(sinh_functions[1] = FLOAT_sinh);
    
    NPY_CPU_DISPATCH_CALL_XB(sinh_functions[2] = DOUBLE_sinh);
    
    NPY_CPU_DISPATCH_CALL_XB(tan_functions[0] = HALF_tan);
    
    NPY_CPU_DISPATCH_CALL_XB(tan_functions[1] = FLOAT_tan);
    
    NPY_CPU_DISPATCH_CALL_XB(tan_functions[2] = DOUBLE_tan);
    
    NPY_CPU_DISPATCH_CALL_XB(tanh_functions[0] = HALF_tanh);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_comparison.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(bitwise_xor_functions[0] = BOOL_not_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(equal_functions[14] = FLOAT_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(equal_functions[15] = DOUBLE_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(greater_functions[14] = FLOAT_greater);
    
    NPY_CPU_DISPATCH_CALL_XB(greater_functions[15] = DOUBLE_greater);
    
    NPY_CPU_DISPATCH_CALL_XB(greater_equal_functions[14] = FLOAT_greater_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(greater_equal_functions[15] = DOUBLE_greater_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(less_functions[14] = FLOAT_less);
    
    NPY_CPU_DISPATCH_CALL_XB(less_functions[15] = DOUBLE_less);
    
    NPY_CPU_DISPATCH_CALL_XB(less_equal_functions[14] = FLOAT_less_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(less_equal_functions[15] = DOUBLE_less_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(logical_xor_functions[0] = BOOL_not_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(not_equal_functions[14] = FLOAT_not_equal);
    
    NPY_CPU_DISPATCH_CALL_XB(not_equal_functions[15] = DOUBLE_not_equal);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_trigonometric.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(cos_functions[1] = FLOAT_cos);
    
    NPY_CPU_DISPATCH_CALL_XB(cos_functions[2] = DOUBLE_cos);
    
    NPY_CPU_DISPATCH_CALL_XB(sin_functions[1] = FLOAT_sin);
    
    NPY_CPU_DISPATCH_CALL_XB(sin_functions[2] = DOUBLE_sin);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_modulo.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[0] = BYTE_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[1] = UBYTE_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[2] = SHORT_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[3] = USHORT_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[4] = INT_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[5] = UINT_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[6] = LONG_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[7] = ULONG_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[8] = LONGLONG_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(divmod_functions[9] = ULONGLONG_divmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[0] = BYTE_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[1] = UBYTE_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[2] = SHORT_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[3] = USHORT_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[4] = INT_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[5] = UINT_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[6] = LONG_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[7] = ULONG_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[8] = LONGLONG_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(fmod_functions[9] = ULONGLONG_fmod);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[0] = BYTE_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[1] = UBYTE_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[2] = SHORT_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[3] = USHORT_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[4] = INT_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[5] = UINT_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[6] = LONG_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[7] = ULONG_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[8] = LONGLONG_remainder);
    
    NPY_CPU_DISPATCH_CALL_XB(remainder_functions[9] = ULONGLONG_remainder);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_exponent_log.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(exp_functions[1] = FLOAT_exp);
    
    NPY_CPU_DISPATCH_CALL_XB(exp_functions[2] = DOUBLE_exp);
    
    NPY_CPU_DISPATCH_CALL_XB(frexp_functions[1] = FLOAT_frexp);
    
    NPY_CPU_DISPATCH_CALL_XB(frexp_functions[2] = DOUBLE_frexp);
    
    NPY_CPU_DISPATCH_CALL_XB(ldexp_functions[1] = FLOAT_ldexp);
    
    NPY_CPU_DISPATCH_CALL_XB(ldexp_functions[4] = DOUBLE_ldexp);
    
    NPY_CPU_DISPATCH_CALL_XB(log_functions[1] = FLOAT_log);
    
    NPY_CPU_DISPATCH_CALL_XB(log_functions[2] = DOUBLE_log);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_arithmetic.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[0] = BYTE_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[1] = UBYTE_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[2] = SHORT_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[3] = USHORT_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[4] = INT_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[5] = UINT_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[6] = LONG_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[7] = ULONG_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[8] = LONGLONG_divide);
    
    NPY_CPU_DISPATCH_CALL_XB(floor_divide_functions[9] = ULONGLONG_divide);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_minmax.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(fmax_functions[12] = FLOAT_fmax);
    
    NPY_CPU_DISPATCH_CALL_XB(fmax_functions[13] = DOUBLE_fmax);
    
    NPY_CPU_DISPATCH_CALL_XB(fmax_functions[14] = LONGDOUBLE_fmax);
    
    NPY_CPU_DISPATCH_CALL_XB(fmin_functions[12] = FLOAT_fmin);
    
    NPY_CPU_DISPATCH_CALL_XB(fmin_functions[13] = DOUBLE_fmin);
    
    NPY_CPU_DISPATCH_CALL_XB(fmin_functions[14] = LONGDOUBLE_fmin);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[1] = BYTE_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[2] = UBYTE_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[3] = SHORT_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[4] = USHORT_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[5] = INT_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[6] = UINT_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[7] = LONG_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[8] = ULONG_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[9] = LONGLONG_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[10] = ULONGLONG_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[12] = FLOAT_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[13] = DOUBLE_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(maximum_functions[14] = LONGDOUBLE_maximum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[1] = BYTE_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[2] = UBYTE_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[3] = SHORT_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[4] = USHORT_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[5] = INT_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[6] = UINT_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[7] = LONG_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[8] = ULONG_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[9] = LONGLONG_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[10] = ULONGLONG_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[12] = FLOAT_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[13] = DOUBLE_minimum);
    
    NPY_CPU_DISPATCH_CALL_XB(minimum_functions[14] = LONGDOUBLE_minimum);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_unary_fp_le.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[12] = FLOAT_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isfinite_functions[13] = DOUBLE_isfinite);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[12] = FLOAT_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isinf_functions[13] = DOUBLE_isinf);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[12] = FLOAT_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(isnan_functions[13] = DOUBLE_isnan);
    
    NPY_CPU_DISPATCH_CALL_XB(signbit_functions[1] = FLOAT_signbit);
    
    NPY_CPU_DISPATCH_CALL_XB(signbit_functions[2] = DOUBLE_signbit);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_unary.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[0] = BYTE_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[1] = UBYTE_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[2] = SHORT_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[3] = USHORT_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[4] = INT_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[5] = UINT_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[6] = LONG_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[7] = ULONG_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[8] = LONGLONG_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[9] = ULONGLONG_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[11] = FLOAT_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[12] = DOUBLE_negative);
    
    NPY_CPU_DISPATCH_CALL_XB(negative_functions[13] = LONGDOUBLE_negative);
    
    
    #ifndef NPY_DISABLE_OPTIMIZATION
    #include "loops_hyperbolic.dispatch.h"
    #endif
    
    NPY_CPU_DISPATCH_CALL_XB(tanh_functions[1] = FLOAT_tanh);
    
    NPY_CPU_DISPATCH_CALL_XB(tanh_functions[2] = DOUBLE_tanh);

    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        _arg_functions, _arg_data, _arg_signatures, 3,
        1, 1, PyUFunc_None, "_arg",
        DOC_NUMPY_CORE_UMATH__ARG, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "_arg", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        _ones_like_functions, _ones_like_data, _ones_like_signatures, 21,
        1, 1, PyUFunc_None, "_ones_like",
        DOC_NUMPY_CORE_UMATH__ONES_LIKE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_OnesLikeTypeResolver;
    PyDict_SetItemString(dictionary, "_ones_like", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        absolute_functions, absolute_data, absolute_signatures, 20,
        1, 1, PyUFunc_None, "absolute",
        DOC_NUMPY_CORE_UMATH_ABSOLUTE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_AbsoluteTypeResolver;
    PyDict_SetItemString(dictionary, "absolute", f);
    Py_DECREF(f);
    identity = PyLong_FromLong(0);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        add_functions, add_data, add_signatures, 22,
        2, 1, PyUFunc_IdentityValue, "add",
        DOC_NUMPY_CORE_UMATH_ADD, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_AdditionTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_BYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_BYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_BYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         BYTE_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UBYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_UBYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_UBYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UBYTE_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_SHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_SHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_SHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         SHORT_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_USHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_USHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_USHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         USHORT_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_INT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_INT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_INT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         INT_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UINT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_UINT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_UINT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UINT_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_LONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_LONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONG_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_ULONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_ULONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONG_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_LONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_LONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGLONG_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_ULONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_ULONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONGLONG_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CFLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_CFLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_CFLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CFLOAT_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_CDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_CDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CDOUBLE_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CLONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "add with NPY_CLONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "add with NPY_CLONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CLONGDOUBLE_add_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "add", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        arccos_functions, arccos_data, arccos_signatures, 11,
        1, 1, PyUFunc_None, "arccos",
        DOC_NUMPY_CORE_UMATH_ARCCOS, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "arccos", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        arccosh_functions, arccosh_data, arccosh_signatures, 11,
        1, 1, PyUFunc_None, "arccosh",
        DOC_NUMPY_CORE_UMATH_ARCCOSH, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "arccosh", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        arcsin_functions, arcsin_data, arcsin_signatures, 11,
        1, 1, PyUFunc_None, "arcsin",
        DOC_NUMPY_CORE_UMATH_ARCSIN, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "arcsin", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        arcsinh_functions, arcsinh_data, arcsinh_signatures, 11,
        1, 1, PyUFunc_None, "arcsinh",
        DOC_NUMPY_CORE_UMATH_ARCSINH, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "arcsinh", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        arctan_functions, arctan_data, arctan_signatures, 11,
        1, 1, PyUFunc_None, "arctan",
        DOC_NUMPY_CORE_UMATH_ARCTAN, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "arctan", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        arctan2_functions, arctan2_data, arctan2_signatures, 5,
        2, 1, PyUFunc_None, "arctan2",
        DOC_NUMPY_CORE_UMATH_ARCTAN2, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "arctan2", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        arctanh_functions, arctanh_data, arctanh_signatures, 11,
        1, 1, PyUFunc_None, "arctanh",
        DOC_NUMPY_CORE_UMATH_ARCTANH, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "arctanh", f);
    Py_DECREF(f);
    identity = PyLong_FromLong(-1);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        bitwise_and_functions, bitwise_and_data, bitwise_and_signatures, 12,
        2, 1, PyUFunc_IdentityValue, "bitwise_and",
        DOC_NUMPY_CORE_UMATH_BITWISE_AND, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "bitwise_and", f);
    Py_DECREF(f);
    identity = PyLong_FromLong(0);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        bitwise_or_functions, bitwise_or_data, bitwise_or_signatures, 12,
        2, 1, PyUFunc_IdentityValue, "bitwise_or",
        DOC_NUMPY_CORE_UMATH_BITWISE_OR, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "bitwise_or", f);
    Py_DECREF(f);
    identity = PyLong_FromLong(0);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        bitwise_xor_functions, bitwise_xor_data, bitwise_xor_signatures, 12,
        2, 1, PyUFunc_IdentityValue, "bitwise_xor",
        DOC_NUMPY_CORE_UMATH_BITWISE_XOR, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "bitwise_xor", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        cbrt_functions, cbrt_data, cbrt_signatures, 8,
        1, 1, PyUFunc_None, "cbrt",
        DOC_NUMPY_CORE_UMATH_CBRT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "cbrt", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        ceil_functions, ceil_data, ceil_signatures, 7,
        1, 1, PyUFunc_None, "ceil",
        DOC_NUMPY_CORE_UMATH_CEIL, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "ceil", f);
    Py_DECREF(f);
    identity = (Py_INCREF(Py_None), Py_None);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        clip_functions, clip_data, clip_signatures, 21,
        3, 1, PyUFunc_IdentityValue, "clip",
        DOC_NUMPY_CORE_UMATH_CLIP, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    PyDict_SetItemString(dictionary, "clip", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        conjugate_functions, conjugate_data, conjugate_signatures, 18,
        1, 1, PyUFunc_None, "conjugate",
        DOC_NUMPY_CORE_UMATH_CONJUGATE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "conjugate", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        copysign_functions, copysign_data, copysign_signatures, 4,
        2, 1, PyUFunc_None, "copysign",
        DOC_NUMPY_CORE_UMATH_COPYSIGN, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "copysign", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        cos_functions, cos_data, cos_signatures, 8,
        1, 1, PyUFunc_None, "cos",
        DOC_NUMPY_CORE_UMATH_COS, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "cos", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        cosh_functions, cosh_data, cosh_signatures, 11,
        1, 1, PyUFunc_None, "cosh",
        DOC_NUMPY_CORE_UMATH_COSH, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "cosh", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        deg2rad_functions, deg2rad_data, deg2rad_signatures, 5,
        1, 1, PyUFunc_None, "deg2rad",
        DOC_NUMPY_CORE_UMATH_DEG2RAD, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "deg2rad", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        degrees_functions, degrees_data, degrees_signatures, 5,
        1, 1, PyUFunc_None, "degrees",
        DOC_NUMPY_CORE_UMATH_DEGREES, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "degrees", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        divide_functions, divide_data, divide_signatures, 11,
        2, 1, PyUFunc_None, "divide",
        DOC_NUMPY_CORE_UMATH_DIVIDE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_TrueDivisionTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "divide with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "divide with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "divide with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "divide with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "divide with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "divide with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "divide with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "divide with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "divide", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        divmod_functions, divmod_data, divmod_signatures, 15,
        2, 2, PyUFunc_None, "divmod",
        DOC_NUMPY_CORE_UMATH_DIVMOD, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_DivmodTypeResolver;
    PyDict_SetItemString(dictionary, "divmod", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        equal_functions, equal_data, equal_signatures, 24,
        2, 1, PyUFunc_None, "equal",
        DOC_NUMPY_CORE_UMATH_EQUAL, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "equal", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        exp_functions, exp_data, exp_signatures, 10,
        1, 1, PyUFunc_None, "exp",
        DOC_NUMPY_CORE_UMATH_EXP, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "exp", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        exp2_functions, exp2_data, exp2_signatures, 11,
        1, 1, PyUFunc_None, "exp2",
        DOC_NUMPY_CORE_UMATH_EXP2, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "exp2", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        expm1_functions, expm1_data, expm1_signatures, 11,
        1, 1, PyUFunc_None, "expm1",
        DOC_NUMPY_CORE_UMATH_EXPM1, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "expm1", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        fabs_functions, fabs_data, fabs_signatures, 5,
        1, 1, PyUFunc_None, "fabs",
        DOC_NUMPY_CORE_UMATH_FABS, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "fabs", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        float_power_functions, float_power_data, float_power_signatures, 4,
        2, 1, PyUFunc_None, "float_power",
        DOC_NUMPY_CORE_UMATH_FLOAT_POWER, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "float_power", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        floor_functions, floor_data, floor_signatures, 7,
        1, 1, PyUFunc_None, "floor",
        DOC_NUMPY_CORE_UMATH_FLOOR, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "floor", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        floor_divide_functions, floor_divide_data, floor_divide_signatures, 18,
        2, 1, PyUFunc_None, "floor_divide",
        DOC_NUMPY_CORE_UMATH_FLOOR_DIVIDE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_DivisionTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_BYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_BYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_BYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         BYTE_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UBYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_UBYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_UBYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UBYTE_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_SHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_SHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_SHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         SHORT_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_USHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_USHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_USHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         USHORT_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_INT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_INT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_INT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         INT_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UINT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_UINT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_UINT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UINT_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_LONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_LONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONG_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_ULONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_ULONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONG_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_LONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_LONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGLONG_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "floor_divide with NPY_ULONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "floor_divide with NPY_ULONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONGLONG_floor_divide_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "floor_divide", f);
    Py_DECREF(f);
    identity = (Py_INCREF(Py_None), Py_None);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        fmax_functions, fmax_data, fmax_signatures, 21,
        2, 1, PyUFunc_IdentityValue, "fmax",
        DOC_NUMPY_CORE_UMATH_FMAX, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_BYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_BYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_BYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         BYTE_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UBYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_UBYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_UBYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UBYTE_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_SHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_SHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_SHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         SHORT_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_USHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_USHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_USHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         USHORT_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_INT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_INT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_INT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         INT_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UINT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_UINT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_UINT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UINT_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_LONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_LONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONG_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_ULONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_ULONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONG_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_LONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_LONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGLONG_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmax with NPY_ULONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmax with NPY_ULONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONGLONG_fmax_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "fmax", f);
    Py_DECREF(f);
    identity = (Py_INCREF(Py_None), Py_None);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        fmin_functions, fmin_data, fmin_signatures, 21,
        2, 1, PyUFunc_IdentityValue, "fmin",
        DOC_NUMPY_CORE_UMATH_FMIN, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_BYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_BYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_BYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         BYTE_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UBYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_UBYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_UBYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UBYTE_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_SHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_SHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_SHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         SHORT_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_USHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_USHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_USHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         USHORT_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_INT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_INT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_INT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         INT_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UINT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_UINT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_UINT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UINT_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_LONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_LONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONG_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_ULONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_ULONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONG_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_LONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_LONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGLONG_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "fmin with NPY_ULONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "fmin with NPY_ULONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONGLONG_fmin_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "fmin", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        fmod_functions, fmod_data, fmod_signatures, 15,
        2, 1, PyUFunc_None, "fmod",
        DOC_NUMPY_CORE_UMATH_FMOD, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "fmod", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        frexp_functions, frexp_data, frexp_signatures, 4,
        1, 2, PyUFunc_None, "frexp",
        DOC_NUMPY_CORE_UMATH_FREXP, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "frexp", f);
    Py_DECREF(f);
    identity = PyLong_FromLong(0);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        gcd_functions, gcd_data, gcd_signatures, 11,
        2, 1, PyUFunc_IdentityValue, "gcd",
        DOC_NUMPY_CORE_UMATH_GCD, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    PyDict_SetItemString(dictionary, "gcd", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        greater_functions, greater_data, greater_signatures, 24,
        2, 1, PyUFunc_None, "greater",
        DOC_NUMPY_CORE_UMATH_GREATER, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "greater", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        greater_equal_functions, greater_equal_data, greater_equal_signatures, 24,
        2, 1, PyUFunc_None, "greater_equal",
        DOC_NUMPY_CORE_UMATH_GREATER_EQUAL, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "greater_equal", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        heaviside_functions, heaviside_data, heaviside_signatures, 4,
        2, 1, PyUFunc_None, "heaviside",
        DOC_NUMPY_CORE_UMATH_HEAVISIDE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "heaviside", f);
    Py_DECREF(f);
    identity = PyLong_FromLong(0);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        hypot_functions, hypot_data, hypot_signatures, 5,
        2, 1, PyUFunc_IdentityValue, "hypot",
        DOC_NUMPY_CORE_UMATH_HYPOT, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "hypot", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        invert_functions, invert_data, invert_signatures, 12,
        1, 1, PyUFunc_None, "invert",
        DOC_NUMPY_CORE_UMATH_INVERT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "invert", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        isfinite_functions, isfinite_data, isfinite_signatures, 20,
        1, 1, PyUFunc_None, "isfinite",
        DOC_NUMPY_CORE_UMATH_ISFINITE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_IsFiniteTypeResolver;
    PyDict_SetItemString(dictionary, "isfinite", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        isinf_functions, isinf_data, isinf_signatures, 20,
        1, 1, PyUFunc_None, "isinf",
        DOC_NUMPY_CORE_UMATH_ISINF, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_IsFiniteTypeResolver;
    PyDict_SetItemString(dictionary, "isinf", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        isnan_functions, isnan_data, isnan_signatures, 20,
        1, 1, PyUFunc_None, "isnan",
        DOC_NUMPY_CORE_UMATH_ISNAN, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_IsFiniteTypeResolver;
    PyDict_SetItemString(dictionary, "isnan", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        isnat_functions, isnat_data, isnat_signatures, 2,
        1, 1, PyUFunc_None, "isnat",
        DOC_NUMPY_CORE_UMATH_ISNAT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_IsNaTTypeResolver;
    PyDict_SetItemString(dictionary, "isnat", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        lcm_functions, lcm_data, lcm_signatures, 11,
        2, 1, PyUFunc_None, "lcm",
        DOC_NUMPY_CORE_UMATH_LCM, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    PyDict_SetItemString(dictionary, "lcm", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        ldexp_functions, ldexp_data, ldexp_signatures, 8,
        2, 1, PyUFunc_None, "ldexp",
        DOC_NUMPY_CORE_UMATH_LDEXP, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "ldexp", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        left_shift_functions, left_shift_data, left_shift_signatures, 11,
        2, 1, PyUFunc_None, "left_shift",
        DOC_NUMPY_CORE_UMATH_LEFT_SHIFT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "left_shift", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        less_functions, less_data, less_signatures, 24,
        2, 1, PyUFunc_None, "less",
        DOC_NUMPY_CORE_UMATH_LESS, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "less", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        less_equal_functions, less_equal_data, less_equal_signatures, 24,
        2, 1, PyUFunc_None, "less_equal",
        DOC_NUMPY_CORE_UMATH_LESS_EQUAL, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "less_equal", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        log_functions, log_data, log_signatures, 10,
        1, 1, PyUFunc_None, "log",
        DOC_NUMPY_CORE_UMATH_LOG, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "log", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        log10_functions, log10_data, log10_signatures, 11,
        1, 1, PyUFunc_None, "log10",
        DOC_NUMPY_CORE_UMATH_LOG10, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "log10", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        log1p_functions, log1p_data, log1p_signatures, 11,
        1, 1, PyUFunc_None, "log1p",
        DOC_NUMPY_CORE_UMATH_LOG1P, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "log1p", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        log2_functions, log2_data, log2_signatures, 11,
        1, 1, PyUFunc_None, "log2",
        DOC_NUMPY_CORE_UMATH_LOG2, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "log2", f);
    Py_DECREF(f);
    identity = PyFloat_FromDouble(-NPY_INFINITY);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        logaddexp_functions, logaddexp_data, logaddexp_signatures, 4,
        2, 1, PyUFunc_IdentityValue, "logaddexp",
        DOC_NUMPY_CORE_UMATH_LOGADDEXP, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "logaddexp", f);
    Py_DECREF(f);
    identity = PyFloat_FromDouble(-NPY_INFINITY);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        logaddexp2_functions, logaddexp2_data, logaddexp2_signatures, 4,
        2, 1, PyUFunc_IdentityValue, "logaddexp2",
        DOC_NUMPY_CORE_UMATH_LOGADDEXP2, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "logaddexp2", f);
    Py_DECREF(f);
    identity = (Py_INCREF(Py_True), Py_True);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        logical_and_functions, logical_and_data, logical_and_signatures, 19,
        2, 1, PyUFunc_IdentityValue, "logical_and",
        DOC_NUMPY_CORE_UMATH_LOGICAL_AND, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "logical_and", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        logical_not_functions, logical_not_data, logical_not_signatures, 19,
        1, 1, PyUFunc_None, "logical_not",
        DOC_NUMPY_CORE_UMATH_LOGICAL_NOT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "logical_not", f);
    Py_DECREF(f);
    identity = (Py_INCREF(Py_False), Py_False);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        logical_or_functions, logical_or_data, logical_or_signatures, 19,
        2, 1, PyUFunc_IdentityValue, "logical_or",
        DOC_NUMPY_CORE_UMATH_LOGICAL_OR, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "logical_or", f);
    Py_DECREF(f);
    identity = (Py_INCREF(Py_False), Py_False);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        logical_xor_functions, logical_xor_data, logical_xor_signatures, 19,
        2, 1, PyUFunc_IdentityValue, "logical_xor",
        DOC_NUMPY_CORE_UMATH_LOGICAL_XOR, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "logical_xor", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        matmul_functions, matmul_data, matmul_signatures, 19,
        2, 1, PyUFunc_None, "matmul",
        DOC_NUMPY_CORE_UMATH_MATMUL, 0, "(n?,k),(k,m?)->(n?,m?)", identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    PyDict_SetItemString(dictionary, "matmul", f);
    Py_DECREF(f);
    identity = (Py_INCREF(Py_None), Py_None);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        maximum_functions, maximum_data, maximum_signatures, 21,
        2, 1, PyUFunc_IdentityValue, "maximum",
        DOC_NUMPY_CORE_UMATH_MAXIMUM, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_BYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_BYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_BYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         BYTE_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UBYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_UBYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_UBYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UBYTE_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_SHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_SHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_SHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         SHORT_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_USHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_USHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_USHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         USHORT_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_INT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_INT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_INT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         INT_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UINT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_UINT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_UINT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UINT_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_LONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_LONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONG_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_ULONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_ULONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONG_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_LONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_LONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGLONG_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "maximum with NPY_ULONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "maximum with NPY_ULONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONGLONG_maximum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "maximum", f);
    Py_DECREF(f);
    identity = (Py_INCREF(Py_None), Py_None);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        minimum_functions, minimum_data, minimum_signatures, 21,
        2, 1, PyUFunc_IdentityValue, "minimum",
        DOC_NUMPY_CORE_UMATH_MINIMUM, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_BYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_BYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_BYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         BYTE_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UBYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_UBYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_UBYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UBYTE_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_SHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_SHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_SHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         SHORT_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_USHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_USHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_USHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         USHORT_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_INT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_INT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_INT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         INT_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UINT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_UINT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_UINT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UINT_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_LONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_LONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONG_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_ULONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_ULONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONG_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_LONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_LONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGLONG_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "minimum with NPY_ULONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "minimum with NPY_ULONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONGLONG_minimum_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "minimum", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        modf_functions, modf_data, modf_signatures, 4,
        1, 2, PyUFunc_None, "modf",
        DOC_NUMPY_CORE_UMATH_MODF, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "modf", f);
    Py_DECREF(f);
    identity = PyLong_FromLong(1);
    if (1 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        multiply_functions, multiply_data, multiply_signatures, 23,
        2, 1, PyUFunc_IdentityValue, "multiply",
        DOC_NUMPY_CORE_UMATH_MULTIPLY, 0, NULL, identity
    );
    if (1) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_MultiplicationTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_BYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_BYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_BYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         BYTE_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UBYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_UBYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_UBYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UBYTE_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_SHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_SHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_SHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         SHORT_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_USHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_USHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_USHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         USHORT_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_INT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_INT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_INT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         INT_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UINT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_UINT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_UINT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UINT_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_LONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_LONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONG_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_ULONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_ULONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONG_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_LONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_LONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGLONG_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_ULONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_ULONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONGLONG_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CFLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_CFLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_CFLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CFLOAT_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_CDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_CDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CDOUBLE_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CLONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "multiply with NPY_CLONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "multiply with NPY_CLONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CLONGDOUBLE_multiply_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "multiply", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        negative_functions, negative_data, negative_signatures, 19,
        1, 1, PyUFunc_None, "negative",
        DOC_NUMPY_CORE_UMATH_NEGATIVE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_NegativeTypeResolver;
    PyDict_SetItemString(dictionary, "negative", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        nextafter_functions, nextafter_data, nextafter_signatures, 4,
        2, 1, PyUFunc_None, "nextafter",
        DOC_NUMPY_CORE_UMATH_NEXTAFTER, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "nextafter", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        not_equal_functions, not_equal_data, not_equal_signatures, 24,
        2, 1, PyUFunc_None, "not_equal",
        DOC_NUMPY_CORE_UMATH_NOT_EQUAL, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleBinaryComparisonTypeResolver;
    PyDict_SetItemString(dictionary, "not_equal", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        positive_functions, positive_data, positive_signatures, 19,
        1, 1, PyUFunc_None, "positive",
        DOC_NUMPY_CORE_UMATH_POSITIVE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    PyDict_SetItemString(dictionary, "positive", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        power_functions, power_data, power_signatures, 21,
        2, 1, PyUFunc_None, "power",
        DOC_NUMPY_CORE_UMATH_POWER, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "power", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        rad2deg_functions, rad2deg_data, rad2deg_signatures, 5,
        1, 1, PyUFunc_None, "rad2deg",
        DOC_NUMPY_CORE_UMATH_RAD2DEG, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "rad2deg", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        radians_functions, radians_data, radians_signatures, 5,
        1, 1, PyUFunc_None, "radians",
        DOC_NUMPY_CORE_UMATH_RADIANS, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "radians", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        reciprocal_functions, reciprocal_data, reciprocal_signatures, 18,
        1, 1, PyUFunc_None, "reciprocal",
        DOC_NUMPY_CORE_UMATH_RECIPROCAL, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "reciprocal", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        remainder_functions, remainder_data, remainder_signatures, 16,
        2, 1, PyUFunc_None, "remainder",
        DOC_NUMPY_CORE_UMATH_REMAINDER, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_RemainderTypeResolver;
    PyDict_SetItemString(dictionary, "remainder", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        right_shift_functions, right_shift_data, right_shift_signatures, 11,
        2, 1, PyUFunc_None, "right_shift",
        DOC_NUMPY_CORE_UMATH_RIGHT_SHIFT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "right_shift", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        rint_functions, rint_data, rint_signatures, 10,
        1, 1, PyUFunc_None, "rint",
        DOC_NUMPY_CORE_UMATH_RINT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "rint", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        sign_functions, sign_data, sign_signatures, 19,
        1, 1, PyUFunc_None, "sign",
        DOC_NUMPY_CORE_UMATH_SIGN, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SimpleUniformOperationTypeResolver;
    PyDict_SetItemString(dictionary, "sign", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        signbit_functions, signbit_data, signbit_signatures, 4,
        1, 1, PyUFunc_None, "signbit",
        DOC_NUMPY_CORE_UMATH_SIGNBIT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "signbit", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        sin_functions, sin_data, sin_signatures, 8,
        1, 1, PyUFunc_None, "sin",
        DOC_NUMPY_CORE_UMATH_SIN, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "sin", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        sinh_functions, sinh_data, sinh_signatures, 11,
        1, 1, PyUFunc_None, "sinh",
        DOC_NUMPY_CORE_UMATH_SINH, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "sinh", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        spacing_functions, spacing_data, spacing_signatures, 4,
        1, 1, PyUFunc_None, "spacing",
        DOC_NUMPY_CORE_UMATH_SPACING, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "spacing", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        sqrt_functions, sqrt_data, sqrt_signatures, 10,
        1, 1, PyUFunc_None, "sqrt",
        DOC_NUMPY_CORE_UMATH_SQRT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "sqrt", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        square_functions, square_data, square_signatures, 18,
        1, 1, PyUFunc_None, "square",
        DOC_NUMPY_CORE_UMATH_SQUARE, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "square", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        subtract_functions, subtract_data, subtract_signatures, 21,
        2, 1, PyUFunc_None, "subtract",
        DOC_NUMPY_CORE_UMATH_SUBTRACT, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    ((PyUFuncObject *)f)->type_resolver = &PyUFunc_SubtractionTypeResolver;
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_BYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_BYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_BYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         BYTE_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UBYTE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_UBYTE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_UBYTE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UBYTE_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_SHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_SHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_SHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         SHORT_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_USHORT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_USHORT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_USHORT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         USHORT_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_INT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_INT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_INT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         INT_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_UINT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_UINT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_UINT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         UINT_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_LONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_LONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONG_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_ULONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_ULONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONG_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_LONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_LONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGLONG_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_ULONGLONG);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_ULONGLONG");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_ULONGLONG");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         ULONGLONG_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_HALF);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_HALF");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_HALF");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         HALF_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_FLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_FLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_FLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         FLOAT_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_DOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_DOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_DOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         DOUBLE_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_LONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_LONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_LONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         LONGDOUBLE_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CFLOAT);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_CFLOAT");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_CFLOAT");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CFLOAT_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_CDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_CDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CDOUBLE_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    
    {
        PyArray_DTypeMeta *dtype = PyArray_DTypeFromTypeNum(NPY_CLONGDOUBLE);
        PyObject *info = get_info_no_cast((PyUFuncObject *)f,
                                           dtype, 3);
        if (info == NULL) {
            return -1;
        }
        if (info == Py_None) {
            PyErr_SetString(PyExc_RuntimeError,
                "cannot add indexed loop to ufunc "
                "subtract with NPY_CLONGDOUBLE");
            return -1;
        }
        if (!PyObject_TypeCheck(info, &PyArrayMethod_Type)) {
            PyErr_SetString(PyExc_RuntimeError,
                "Not a PyArrayMethodObject in ufunc "
                "subtract with NPY_CLONGDOUBLE");
        }
        ((PyArrayMethodObject*)info)->contiguous_indexed_loop =
                                                         CLONGDOUBLE_subtract_indexed;
        /* info is borrowed, no need to decref*/
    }
    
    PyDict_SetItemString(dictionary, "subtract", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        tan_functions, tan_data, tan_signatures, 11,
        1, 1, PyUFunc_None, "tan",
        DOC_NUMPY_CORE_UMATH_TAN, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "tan", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        tanh_functions, tanh_data, tanh_signatures, 11,
        1, 1, PyUFunc_None, "tanh",
        DOC_NUMPY_CORE_UMATH_TANH, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "tanh", f);
    Py_DECREF(f);
    identity = NULL;
    if (0 && identity == NULL) {
        return -1;
    }
    f = PyUFunc_FromFuncAndDataAndSignatureAndIdentity(
        trunc_functions, trunc_data, trunc_signatures, 7,
        1, 1, PyUFunc_None, "trunc",
        DOC_NUMPY_CORE_UMATH_TRUNC, 0, NULL, identity
    );
    if (0) {
        Py_DECREF(identity);
    }
    if (f == NULL) {
        return -1;
    }
    
    PyDict_SetItemString(dictionary, "trunc", f);
    Py_DECREF(f);

    return 0;
}
