Python 3.10 support?
astrojuanlu opened this issue · 1 comments
astrojuanlu commented
Hi! Not sure what's the status of this repository, but I'm trying to install it in a Python 3.10 environment, without success. This is the error I see:
$ pip install "numpy==1.21.4"
Collecting numpy==1.21.4
Using cached numpy-1.21.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB)
Installing collected packages: numpy
Successfully installed numpy-1.21.4
$ pip install git+https://github.com/numpy/numpy-dtypes.git
Collecting git+https://github.com/numpy/numpy-dtypes.git
Cloning https://github.com/numpy/numpy-dtypes.git to /tmp/pip-req-build-5qobkhf3
Running command git clone --filter=blob:none -q https://github.com/numpy/numpy-dtypes.git /tmp/pip-req-build-5qobkhf3
Resolved https://github.com/numpy/numpy-dtypes.git to commit 3ae1e733814c9a3d4f5dc6464c1f0d3714f5e96c
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Using legacy 'setup.py install' for npytypes, since package 'wheel' is not installed.
Installing collected packages: npytypes
Running setup.py install for npytypes: started
Running setup.py install for npytypes: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /home/juanlu/Projects/Other/fastunits/.venv310/bin/python3.10 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-5qobkhf3/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-5qobkhf3/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-b0r7l0f6/install-record.txt --single-version-externally-managed --compile --install-headers /home/juanlu/Projects/Other/fastunits/.venv310/include/site/python3.10/npytypes
cwd: /tmp/pip-req-build-5qobkhf3/
Complete output (943 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.10
creating build/lib.linux-x86_64-3.10/npytypes
copying npytypes/__init__.py -> build/lib.linux-x86_64-3.10/npytypes
creating build/lib.linux-x86_64-3.10/npytypes/quaternion
copying npytypes/quaternion/__init__.py -> build/lib.linux-x86_64-3.10/npytypes/quaternion
copying npytypes/quaternion/info.py -> build/lib.linux-x86_64-3.10/npytypes/quaternion
creating build/lib.linux-x86_64-3.10/npytypes/rational
copying npytypes/rational/__init__.py -> build/lib.linux-x86_64-3.10/npytypes/rational
copying npytypes/rational/info.py -> build/lib.linux-x86_64-3.10/npytypes/rational
copying npytypes/rational/test_rational.py -> build/lib.linux-x86_64-3.10/npytypes/rational
running build_ext
building 'npytypes.rational.rational' extension
creating build/temp.linux-x86_64-3.10
creating build/temp.linux-x86_64-3.10/npytypes
creating build/temp.linux-x86_64-3.10/npytypes/rational
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/juanlu/Projects/Other/fastunits/.venv310/lib/python3.10/site-packages/numpy/core/include -I/home/juanlu/Projects/Other/fastunits/.venv310/include -I/usr/include/python3.10 -c npytypes/rational/rational.c -o build/temp.linux-x86_64-3.10/npytypes/rational/rational.o
npytypes/rational/rational.c:592:5: warning: initialization of ‘int (*)(PyObject *)’ {aka ‘int (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} [-Wincompatible-pointer-types]
592 | pyrational_absolute, /* nb_absolute */
| ^~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:592:5: note: (near initialization for ‘pyrational_as_number.nb_bool’)
npytypes/rational/rational.c:593:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *)’ {aka ‘int (*)(struct _object *)’} [-Wincompatible-pointer-types]
593 | pyrational_nonzero, /* nb_nonzero */
| ^~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:593:5: note: (near initialization for ‘pyrational_as_number.nb_invert’)
npytypes/rational/rational.c:602:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} [-Wincompatible-pointer-types]
602 | pyrational_int, /* nb_long */
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:602:5: note: (near initialization for ‘pyrational_as_number.nb_inplace_add’)
npytypes/rational/rational.c:603:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} [-Wincompatible-pointer-types]
603 | pyrational_float, /* nb_float */
| ^~~~~~~~~~~~~~~~
npytypes/rational/rational.c:603:5: note: (near initialization for ‘pyrational_as_number.nb_inplace_subtract’)
npytypes/rational/rational.c:621:5: warning: excess elements in struct initializer
621 | 0, /* nb_inplace_floor_divide */
| ^
npytypes/rational/rational.c:621:5: note: (near initialization for ‘pyrational_as_number’)
npytypes/rational/rational.c:622:5: warning: excess elements in struct initializer
622 | 0, /* nb_inplace_true_divide */
| ^
npytypes/rational/rational.c:622:5: note: (near initialization for ‘pyrational_as_number’)
npytypes/rational/rational.c:623:5: warning: excess elements in struct initializer
623 | 0, /* nb_index */
| ^
npytypes/rational/rational.c:623:5: note: (near initialization for ‘pyrational_as_number’)
npytypes/rational/rational.c:938:53: warning: initialization of ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} from incompatible pointer type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’} [-Wincompatible-pointer-types]
938 | PyUFuncGenericFunction rational_ufunc_true_divide = rational_ufunc_divide;
| ^~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c: In function ‘PyInit_rational’:
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1157:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1157 | REGISTER_UFUNC_BINARY_RATIONAL(add)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1157:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1157 | REGISTER_UFUNC_BINARY_RATIONAL(add)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1158:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1158 | REGISTER_UFUNC_BINARY_RATIONAL(subtract)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1158:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1158 | REGISTER_UFUNC_BINARY_RATIONAL(subtract)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1159:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1159 | REGISTER_UFUNC_BINARY_RATIONAL(multiply)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1159:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1159 | REGISTER_UFUNC_BINARY_RATIONAL(multiply)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1160:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1160 | REGISTER_UFUNC_BINARY_RATIONAL(divide)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1160:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1160 | REGISTER_UFUNC_BINARY_RATIONAL(divide)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1161:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1161 | REGISTER_UFUNC_BINARY_RATIONAL(remainder)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1161:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1161 | REGISTER_UFUNC_BINARY_RATIONAL(remainder)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1163:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1163 | REGISTER_UFUNC_BINARY_RATIONAL(floor_divide)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1163:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1163 | REGISTER_UFUNC_BINARY_RATIONAL(floor_divide)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1164:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1164 | REGISTER_UFUNC_BINARY_RATIONAL(minimum)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1164:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1164 | REGISTER_UFUNC_BINARY_RATIONAL(minimum)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1165:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1165 | REGISTER_UFUNC_BINARY_RATIONAL(maximum)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1153:50: note: in expansion of macro ‘REGISTER_UFUNC’
1153 | #define REGISTER_UFUNC_BINARY_RATIONAL(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1165:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_RATIONAL’
1165 | REGISTER_UFUNC_BINARY_RATIONAL(maximum)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1167:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1167 | REGISTER_UFUNC_BINARY_COMPARE(equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1167:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1167 | REGISTER_UFUNC_BINARY_COMPARE(equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1168:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1168 | REGISTER_UFUNC_BINARY_COMPARE(not_equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1168:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1168 | REGISTER_UFUNC_BINARY_COMPARE(not_equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1169:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1169 | REGISTER_UFUNC_BINARY_COMPARE(less)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1169:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1169 | REGISTER_UFUNC_BINARY_COMPARE(less)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1170:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1170 | REGISTER_UFUNC_BINARY_COMPARE(greater)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1170:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1170 | REGISTER_UFUNC_BINARY_COMPARE(greater)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1171:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1171 | REGISTER_UFUNC_BINARY_COMPARE(less_equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1171:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1171 | REGISTER_UFUNC_BINARY_COMPARE(less_equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1172:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1172 | REGISTER_UFUNC_BINARY_COMPARE(greater_equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1154:49: note: in expansion of macro ‘REGISTER_UFUNC’
1154 | #define REGISTER_UFUNC_BINARY_COMPARE(name) REGISTER_UFUNC(name,{npy_rational,npy_rational,NPY_BOOL})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1172:5: note: in expansion of macro ‘REGISTER_UFUNC_BINARY_COMPARE’
1172 | REGISTER_UFUNC_BINARY_COMPARE(greater_equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1174:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1174 | REGISTER_UFUNC_UNARY(negative)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1174:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1174 | REGISTER_UFUNC_UNARY(negative)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1175:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1175 | REGISTER_UFUNC_UNARY(absolute)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1175:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1175 | REGISTER_UFUNC_UNARY(absolute)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1176:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1176 | REGISTER_UFUNC_UNARY(floor)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1176:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1176 | REGISTER_UFUNC_UNARY(floor)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1177:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1177 | REGISTER_UFUNC_UNARY(ceil)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1177:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1177 | REGISTER_UFUNC_UNARY(ceil)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1178:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1178 | REGISTER_UFUNC_UNARY(trunc)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1178:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1178 | REGISTER_UFUNC_UNARY(trunc)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1179:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1179 | REGISTER_UFUNC_UNARY(rint)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1179:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1179 | REGISTER_UFUNC_UNARY(rint)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1180:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1180 | REGISTER_UFUNC_UNARY(square)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1180:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1180 | REGISTER_UFUNC_UNARY(square)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1181:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1181 | REGISTER_UFUNC_UNARY(reciprocal)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1181:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1181 | REGISTER_UFUNC_UNARY(reciprocal)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1182:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1182 | REGISTER_UFUNC_UNARY(sign)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1149:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1149 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,_types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1155:40: note: in expansion of macro ‘REGISTER_UFUNC’
1155 | #define REGISTER_UFUNC_UNARY(name) REGISTER_UFUNC(name,{npy_rational,npy_rational})
| ^~~~~~~~~~~~~~
npytypes/rational/rational.c:1182:5: note: in expansion of macro ‘REGISTER_UFUNC_UNARY’
1182 | REGISTER_UFUNC_UNARY(sign)
| ^~~~~~~~~~~~~~~~~~~~
npytypes/rational/rational.c:1205:73: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1205 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)gufunc,npy_rational,rational_gufunc_matrix_multiply,types2,0) < 0) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1205:73: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
npytypes/rational/rational.c:1217:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1217 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1222:5: note: in expansion of macro ‘NEW_UNARY_UFUNC’
1222 | NEW_UNARY_UFUNC(numerator,NPY_INT64,"rational number numerator");
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1217:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1217 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1222:5: note: in expansion of macro ‘NEW_UNARY_UFUNC’
1222 | NEW_UNARY_UFUNC(numerator,NPY_INT64,"rational number numerator");
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1217:76: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
1217 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,types,0)<0) { \
| ^~~~~~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/rational/rational.c:1223:5: note: in expansion of macro ‘NEW_UNARY_UFUNC’
1223 | NEW_UNARY_UFUNC(denominator,NPY_INT64,"rational number denominator");
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1217:76: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
1217 | if (PyUFunc_RegisterLoopForType((PyUFuncObject*)ufunc,npy_rational,rational_ufunc_##name,types,0)<0) { \
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1223:5: note: in expansion of macro ‘NEW_UNARY_UFUNC’
1223 | NEW_UNARY_UFUNC(denominator,NPY_INT64,"rational number denominator");
| ^~~~~~~~~~~~~~~
npytypes/rational/rational.c:1236:19: warning: initialization of ‘void (*)(char **, const npy_intp *, const npy_intp *, void *)’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} from incompatible pointer type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’} [-Wincompatible-pointer-types]
1236 | GCD_LCM_UFUNC(gcd,NPY_INT64,"greatest common denominator of two integers");
| ^~~
npytypes/rational/rational.c:1227:56: note: in definition of macro ‘GCD_LCM_UFUNC’
1227 | static const PyUFuncGenericFunction func[1] = {name##_ufunc}; \
| ^~~~
npytypes/rational/rational.c:1236:19: note: (near initialization for ‘func[0]’)
1236 | GCD_LCM_UFUNC(gcd,NPY_INT64,"greatest common denominator of two integers");
| ^~~
npytypes/rational/rational.c:1227:56: note: in definition of macro ‘GCD_LCM_UFUNC’
1227 | static const PyUFuncGenericFunction func[1] = {name##_ufunc}; \
| ^~~~
npytypes/rational/rational.c:1237:19: warning: initialization of ‘void (*)(char **, const npy_intp *, const npy_intp *, void *)’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} from incompatible pointer type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’} [-Wincompatible-pointer-types]
1237 | GCD_LCM_UFUNC(lcm,NPY_INT64,"least common multiple of two integers");
| ^~~
npytypes/rational/rational.c:1227:56: note: in definition of macro ‘GCD_LCM_UFUNC’
1227 | static const PyUFuncGenericFunction func[1] = {name##_ufunc}; \
| ^~~~
npytypes/rational/rational.c:1237:19: note: (near initialization for ‘func[0]’)
1237 | GCD_LCM_UFUNC(lcm,NPY_INT64,"least common multiple of two integers");
| ^~~
npytypes/rational/rational.c:1227:56: note: in definition of macro ‘GCD_LCM_UFUNC’
1227 | static const PyUFuncGenericFunction func[1] = {name##_ufunc}; \
| ^~~~
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.10/npytypes/rational/rational.o -o build/lib.linux-x86_64-3.10/npytypes/rational/rational.cpython-310-x86_64-linux-gnu.so
building 'npytypes.quaternion.numpy_quaternion' extension
creating build/temp.linux-x86_64-3.10/npytypes/quaternion
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/juanlu/Projects/Other/fastunits/.venv310/lib/python3.10/site-packages/numpy/core/include -I/home/juanlu/Projects/Other/fastunits/.venv310/include -I/usr/include/python3.10 -c npytypes/quaternion/numpy_quaternion.c -o build/temp.linux-x86_64-3.10/npytypes/quaternion/numpy_quaternion.o -std=c99
npytypes/quaternion/numpy_quaternion.c: In function ‘quaternion_arrtype_hash’:
npytypes/quaternion/numpy_quaternion.c:411:50: error: incompatible type for argument 1 of ‘_Py_HashDouble’
411 | value = (10000004 * value) ^ _Py_HashDouble(q.w);
| ~^~
| |
| double
In file included from /usr/include/python3.10/Python.h:77,
from npytypes/quaternion/numpy_quaternion.c:32:
/usr/include/python3.10/pyhash.h:10:38: note: expected ‘PyObject *’ {aka ‘struct _object *’} but argument is of type ‘double’
10 | PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double);
| ^~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:411:34: error: too few arguments to function ‘_Py_HashDouble’
411 | value = (10000004 * value) ^ _Py_HashDouble(q.w);
| ^~~~~~~~~~~~~~
In file included from /usr/include/python3.10/Python.h:77,
from npytypes/quaternion/numpy_quaternion.c:32:
/usr/include/python3.10/pyhash.h:10:23: note: declared here
10 | PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:412:50: error: incompatible type for argument 1 of ‘_Py_HashDouble’
412 | value = (10000004 * value) ^ _Py_HashDouble(q.x);
| ~^~
| |
| double
In file included from /usr/include/python3.10/Python.h:77,
from npytypes/quaternion/numpy_quaternion.c:32:
/usr/include/python3.10/pyhash.h:10:38: note: expected ‘PyObject *’ {aka ‘struct _object *’} but argument is of type ‘double’
10 | PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double);
| ^~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:412:34: error: too few arguments to function ‘_Py_HashDouble’
412 | value = (10000004 * value) ^ _Py_HashDouble(q.x);
| ^~~~~~~~~~~~~~
In file included from /usr/include/python3.10/Python.h:77,
from npytypes/quaternion/numpy_quaternion.c:32:
/usr/include/python3.10/pyhash.h:10:23: note: declared here
10 | PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:413:50: error: incompatible type for argument 1 of ‘_Py_HashDouble’
413 | value = (10000004 * value) ^ _Py_HashDouble(q.y);
| ~^~
| |
| double
In file included from /usr/include/python3.10/Python.h:77,
from npytypes/quaternion/numpy_quaternion.c:32:
/usr/include/python3.10/pyhash.h:10:38: note: expected ‘PyObject *’ {aka ‘struct _object *’} but argument is of type ‘double’
10 | PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double);
| ^~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:413:34: error: too few arguments to function ‘_Py_HashDouble’
413 | value = (10000004 * value) ^ _Py_HashDouble(q.y);
| ^~~~~~~~~~~~~~
In file included from /usr/include/python3.10/Python.h:77,
from npytypes/quaternion/numpy_quaternion.c:32:
/usr/include/python3.10/pyhash.h:10:23: note: declared here
10 | PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:414:50: error: incompatible type for argument 1 of ‘_Py_HashDouble’
414 | value = (10000004 * value) ^ _Py_HashDouble(q.z);
| ~^~
| |
| double
In file included from /usr/include/python3.10/Python.h:77,
from npytypes/quaternion/numpy_quaternion.c:32:
/usr/include/python3.10/pyhash.h:10:38: note: expected ‘PyObject *’ {aka ‘struct _object *’} but argument is of type ‘double’
10 | PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double);
| ^~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:414:34: error: too few arguments to function ‘_Py_HashDouble’
414 | value = (10000004 * value) ^ _Py_HashDouble(q.z);
| ^~~~~~~~~~~~~~
In file included from /usr/include/python3.10/Python.h:77,
from npytypes/quaternion/numpy_quaternion.c:32:
/usr/include/python3.10/pyhash.h:10:23: note: declared here
10 | PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c: In function ‘PyInit_numpy_quaternion’:
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:615:5: note: in expansion of macro ‘REGISTER_UFUNC’
615 | REGISTER_UFUNC(isnan);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:615:5: note: in expansion of macro ‘REGISTER_UFUNC’
615 | REGISTER_UFUNC(isnan);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:616:5: note: in expansion of macro ‘REGISTER_UFUNC’
616 | REGISTER_UFUNC(isinf);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:616:5: note: in expansion of macro ‘REGISTER_UFUNC’
616 | REGISTER_UFUNC(isinf);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:617:5: note: in expansion of macro ‘REGISTER_UFUNC’
617 | REGISTER_UFUNC(isfinite);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:617:5: note: in expansion of macro ‘REGISTER_UFUNC’
617 | REGISTER_UFUNC(isfinite);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:621:5: note: in expansion of macro ‘REGISTER_UFUNC’
621 | REGISTER_UFUNC(absolute);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:621:5: note: in expansion of macro ‘REGISTER_UFUNC’
621 | REGISTER_UFUNC(absolute);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:626:5: note: in expansion of macro ‘REGISTER_UFUNC’
626 | REGISTER_UFUNC(log);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:626:5: note: in expansion of macro ‘REGISTER_UFUNC’
626 | REGISTER_UFUNC(log);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:627:5: note: in expansion of macro ‘REGISTER_UFUNC’
627 | REGISTER_UFUNC(exp);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:627:5: note: in expansion of macro ‘REGISTER_UFUNC’
627 | REGISTER_UFUNC(exp);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:628:5: note: in expansion of macro ‘REGISTER_UFUNC’
628 | REGISTER_UFUNC(negative);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:628:5: note: in expansion of macro ‘REGISTER_UFUNC’
628 | REGISTER_UFUNC(negative);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:629:5: note: in expansion of macro ‘REGISTER_UFUNC’
629 | REGISTER_UFUNC(conjugate);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:629:5: note: in expansion of macro ‘REGISTER_UFUNC’
629 | REGISTER_UFUNC(conjugate);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:635:5: note: in expansion of macro ‘REGISTER_UFUNC’
635 | REGISTER_UFUNC(equal);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:635:5: note: in expansion of macro ‘REGISTER_UFUNC’
635 | REGISTER_UFUNC(equal);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:636:5: note: in expansion of macro ‘REGISTER_UFUNC’
636 | REGISTER_UFUNC(not_equal);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:636:5: note: in expansion of macro ‘REGISTER_UFUNC’
636 | REGISTER_UFUNC(not_equal);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:637:5: note: in expansion of macro ‘REGISTER_UFUNC’
637 | REGISTER_UFUNC(less);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:637:5: note: in expansion of macro ‘REGISTER_UFUNC’
637 | REGISTER_UFUNC(less);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:638:5: note: in expansion of macro ‘REGISTER_UFUNC’
638 | REGISTER_UFUNC(less_equal);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:638:5: note: in expansion of macro ‘REGISTER_UFUNC’
638 | REGISTER_UFUNC(less_equal);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:609:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
609 | quaternion_descr->type_num, quaternion_##name##_scalar_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:645:5: note: in expansion of macro ‘REGISTER_SCALAR_UFUNC’
645 | REGISTER_SCALAR_UFUNC(multiply);
| ^~~~~~~~~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:609:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
609 | quaternion_descr->type_num, quaternion_##name##_scalar_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:645:5: note: in expansion of macro ‘REGISTER_SCALAR_UFUNC’
645 | REGISTER_SCALAR_UFUNC(multiply);
| ^~~~~~~~~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:609:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
609 | quaternion_descr->type_num, quaternion_##name##_scalar_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:646:5: note: in expansion of macro ‘REGISTER_SCALAR_UFUNC’
646 | REGISTER_SCALAR_UFUNC(divide);
| ^~~~~~~~~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:609:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
609 | quaternion_descr->type_num, quaternion_##name##_scalar_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:646:5: note: in expansion of macro ‘REGISTER_SCALAR_UFUNC’
646 | REGISTER_SCALAR_UFUNC(divide);
| ^~~~~~~~~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:609:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
609 | quaternion_descr->type_num, quaternion_##name##_scalar_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:647:5: note: in expansion of macro ‘REGISTER_SCALAR_UFUNC’
647 | REGISTER_SCALAR_UFUNC(power);
| ^~~~~~~~~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:609:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
609 | quaternion_descr->type_num, quaternion_##name##_scalar_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:647:5: note: in expansion of macro ‘REGISTER_SCALAR_UFUNC’
647 | REGISTER_SCALAR_UFUNC(power);
| ^~~~~~~~~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:653:5: note: in expansion of macro ‘REGISTER_UFUNC’
653 | REGISTER_UFUNC(add);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:653:5: note: in expansion of macro ‘REGISTER_UFUNC’
653 | REGISTER_UFUNC(add);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:654:5: note: in expansion of macro ‘REGISTER_UFUNC’
654 | REGISTER_UFUNC(subtract);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:654:5: note: in expansion of macro ‘REGISTER_UFUNC’
654 | REGISTER_UFUNC(subtract);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:655:5: note: in expansion of macro ‘REGISTER_UFUNC’
655 | REGISTER_UFUNC(multiply);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:655:5: note: in expansion of macro ‘REGISTER_UFUNC’
655 | REGISTER_UFUNC(multiply);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:656:5: note: in expansion of macro ‘REGISTER_UFUNC’
656 | REGISTER_UFUNC(divide);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:656:5: note: in expansion of macro ‘REGISTER_UFUNC’
656 | REGISTER_UFUNC(divide);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:657:5: note: in expansion of macro ‘REGISTER_UFUNC’
657 | REGISTER_UFUNC(power);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:657:5: note: in expansion of macro ‘REGISTER_UFUNC’
657 | REGISTER_UFUNC(power);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: warning: passing argument 3 of ‘(int (*)(PyUFuncObject *, int, void (*)(char **, const npy_intp *, const npy_intp *, void *), const int *, void *))*(PyUFunc_API + 16)’ from incompatible pointer type [-Wincompatible-pointer-types]
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
| |
| void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
npytypes/quaternion/numpy_quaternion.c:658:5: note: in expansion of macro ‘REGISTER_UFUNC’
658 | REGISTER_UFUNC(copysign);
| ^~~~~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:605:41: note: expected ‘PyUFuncGenericFunction’ {aka ‘void (*)(char **, const long int *, const long int *, void *)’} but argument is of type ‘void (*)(char **, npy_intp *, npy_intp *, void *)’ {aka ‘void (*)(char **, long int *, long int *, void *)’}
605 | quaternion_descr->type_num, quaternion_##name##_ufunc, arg_types, NULL)
| ^~~~~~~~~~~
npytypes/quaternion/numpy_quaternion.c:658:5: note: in expansion of macro ‘REGISTER_UFUNC’
658 | REGISTER_UFUNC(copysign);
| ^~~~~~~~~~~~~~
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
----------------------------------------
ERROR: Command errored out with exit status 1: /home/juanlu/Projects/Other/fastunits/.venv310/bin/python3.10 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-5qobkhf3/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-5qobkhf3/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-b0r7l0f6/install-record.txt --single-version-externally-managed --compile --install-headers /home/juanlu/Projects/Other/fastunits/.venv310/include/site/python3.10/npytypes Check the logs for full command output.
seberg commented
I am going to archive this repository. We have new-style DTypes and this has been inactive for many years. At this point development from the NumPy side should go towards new ones.
(There will be a new repository to start examples using the new DType API.)