From 57a417ee736c66a4883c7c792ec5287e65b1c567 Mon Sep 17 00:00:00 2001 From: Justin Carpentier <justin.carpentier@inria.fr> Date: Tue, 7 Sep 2021 15:42:25 +0200 Subject: [PATCH] core: fix NumpyEquivalentType --- include/eigenpy/numpy.hpp | 11 ++++++----- unittest/user_type.cpp | 12 ++++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/include/eigenpy/numpy.hpp b/include/eigenpy/numpy.hpp index 84c7575d..8269136f 100644 --- a/include/eigenpy/numpy.hpp +++ b/include/eigenpy/numpy.hpp @@ -44,12 +44,13 @@ namespace eigenpy template <> struct NumpyEquivalentType<bool> { enum { type_code = NPY_BOOL };}; template <> struct NumpyEquivalentType<int> { enum { type_code = NPY_INT };}; template <> struct NumpyEquivalentType<unsigned int> { enum { type_code = NPY_UINT };}; -#if __APPLE__ - template <> struct NumpyEquivalentType<long> { enum { type_code = NPY_INT64 };}; -#endif + template <> struct NumpyEquivalentType<long> { enum { type_code = NPY_LONG };}; +//#if defined _WIN32 || defined __CYGWIN__ + template <> struct NumpyEquivalentType<long long> { enum { type_code = NPY_LONGLONG };}; +//#else +// template <> struct NumpyEquivalentType<long long> { enum { type_code = NPY_LONGLONG };}; +//#endif template <> struct NumpyEquivalentType<unsigned long> { enum { type_code = NPY_ULONG };}; - template <> struct NumpyEquivalentType<int64_t> { enum { type_code = NPY_INT64 };}; -// template <> struct NumpyEquivalentType<long long> { enum { type_code = NPY_LONGLONG };}; template<typename Scalar> bool isNumpyNativeType() diff --git a/unittest/user_type.cpp b/unittest/user_type.cpp index 46a34480..bad7bc04 100644 --- a/unittest/user_type.cpp +++ b/unittest/user_type.cpp @@ -196,16 +196,20 @@ BOOST_PYTHON_MODULE(user_type) eigenpy::registerCast<DoubleType,double>(true); eigenpy::registerCast<double,DoubleType>(true); - eigenpy::registerCast<DoubleType,int32_t>(false); - eigenpy::registerCast<int32_t,DoubleType>(true); + eigenpy::registerCast<DoubleType,int>(false); + eigenpy::registerCast<int,DoubleType>(true); eigenpy::registerCast<DoubleType,long long>(false); eigenpy::registerCast<long long,DoubleType>(true); + eigenpy::registerCast<DoubleType,long>(false); + eigenpy::registerCast<long,DoubleType>(true); eigenpy::registerCast<FloatType,double>(true); eigenpy::registerCast<double,FloatType>(false); eigenpy::registerCast<FloatType,long long>(false); eigenpy::registerCast<long long,FloatType>(true); - eigenpy::registerCast<FloatType,int32_t>(false); - eigenpy::registerCast<int32_t,FloatType>(true); + eigenpy::registerCast<FloatType,int>(false); + eigenpy::registerCast<int,FloatType>(true); + eigenpy::registerCast<FloatType,long>(false); + eigenpy::registerCast<long,FloatType>(true); bp::implicitly_convertible<double,DoubleType>(); bp::implicitly_convertible<DoubleType,double>(); -- GitLab