From b7ca733d8e49953ed278d22bde62af5be7b1c2e4 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Wed, 15 Jul 2020 19:14:36 +0200 Subject: [PATCH 1/3] core: fix compilation issue with NumPy 1.19 Related to https://github.com/tensorflow/tensorflow/pull/40728 --- include/eigenpy/ufunc.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/eigenpy/ufunc.hpp b/include/eigenpy/ufunc.hpp index e9b074bf4..eb2c049cb 100644 --- a/include/eigenpy/ufunc.hpp +++ b/include/eigenpy/ufunc.hpp @@ -14,7 +14,7 @@ namespace eigenpy #define EIGENPY_REGISTER_BINARY_OPERATOR(name,op) \ template \ - void binary_op_##name(char** args, npy_intp * dimensions, npy_intp * steps, void * /*data*/) \ + void binary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * /*data*/) \ { \ npy_intp is0 = steps[0], is1 = steps[1], \ os = steps[2], n = *dimensions; \ @@ -31,7 +31,7 @@ namespace eigenpy } \ \ template \ - void binary_op_##name(char** args, npy_intp * dimensions, npy_intp * steps, void * data) \ + void binary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * data) \ { \ binary_op_##name(args,dimensions,steps,data); \ } @@ -49,7 +49,7 @@ namespace eigenpy #define EIGENPY_REGISTER_UNARY_OPERATOR(name,op) \ template \ - void unary_op_##name(char** args, npy_intp * dimensions, npy_intp * steps, void * /*data*/) \ + void unary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * /*data*/) \ { \ npy_intp is = steps[0], \ os = steps[1], n = *dimensions; \ @@ -65,7 +65,7 @@ namespace eigenpy } \ \ template \ - void unary_op_##name(char** args, npy_intp * dimensions, npy_intp * steps, void * data) \ + void unary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * data) \ { \ unary_op_##name(args,dimensions,steps,data); \ } From 2dd52b63eb47e07c29f082dea982f62e8d366876 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Wed, 15 Jul 2020 19:19:48 +0200 Subject: [PATCH 2/3] cmake: sync submodule --- cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake b/cmake index 89bd42923..1498ee681 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 89bd42923644d96fbe99d7495d12021d1e885a83 +Subproject commit 1498ee681d9f6b83ffd231978279fe94a2fa1c25 From 5c8eb86bcc79b4eb9c9a7eb2b145a7abd0d147ed Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Wed, 15 Jul 2020 20:10:36 +0200 Subject: [PATCH 3/3] core: fix argument according to the Numpy version --- include/eigenpy/ufunc.hpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/include/eigenpy/ufunc.hpp b/include/eigenpy/ufunc.hpp index eb2c049cb..2647f8cf2 100644 --- a/include/eigenpy/ufunc.hpp +++ b/include/eigenpy/ufunc.hpp @@ -12,9 +12,15 @@ namespace eigenpy namespace internal { +#ifdef NPY_1_19_API_VERSION + #define EIGENPY_NPY_CONST_UFUNC_ARG const +#else + #define EIGENPY_NPY_CONST_UFUNC_ARG +#endif + #define EIGENPY_REGISTER_BINARY_OPERATOR(name,op) \ template \ - void binary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * /*data*/) \ + void binary_op_##name(char** args, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * dimensions, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * steps, void * /*data*/) \ { \ npy_intp is0 = steps[0], is1 = steps[1], \ os = steps[2], n = *dimensions; \ @@ -31,7 +37,7 @@ namespace eigenpy } \ \ template \ - void binary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * data) \ + void binary_op_##name(char** args, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * dimensions, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * steps, void * data) \ { \ binary_op_##name(args,dimensions,steps,data); \ } @@ -49,7 +55,7 @@ namespace eigenpy #define EIGENPY_REGISTER_UNARY_OPERATOR(name,op) \ template \ - void unary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * /*data*/) \ + void unary_op_##name(char** args, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * dimensions, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * steps, void * /*data*/) \ { \ npy_intp is = steps[0], \ os = steps[1], n = *dimensions; \ @@ -65,7 +71,7 @@ namespace eigenpy } \ \ template \ - void unary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * data) \ + void unary_op_##name(char** args, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * dimensions, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * steps, void * data) \ { \ unary_op_##name(args,dimensions,steps,data); \ }