From 888593cd0cafc5031d42bdfd8d54133f08f5f1c2 Mon Sep 17 00:00:00 2001 From: Lutz Hofmann Date: Wed, 13 Jan 2021 09:51:55 +0100 Subject: [PATCH] Fix compatibility with Thrust 1.10.0 --- .../external/thrust/thrust_algebra_dispatcher.hpp | 13 ++++++++++++- .../thrust/thrust_operations_dispatcher.hpp | 13 ++++++++++++- .../odeint/external/thrust/thrust_resize.hpp | 12 +++++++++++- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/include/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp b/include/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp index 096134635..cbfc08930 100644 --- a/include/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp +++ b/include/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp @@ -53,7 +53,18 @@ struct algebra_dispatcher< thrust::device_vector< T , A > > #include -#if THRUST_VERSION >= 100600 +#if THRUST_VERSION >= 101000 + +#include +namespace boost { namespace numeric { namespace odeint { + template< class T , class A > + struct algebra_dispatcher< thrust::detail::vector_base< T , A > > + { + typedef thrust_algebra algebra_type; + }; +} } } + +#elif THRUST_VERSION >= 100600 // specialization for thrust cpp vector #include diff --git a/include/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp b/include/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp index e9b3a6423..4e9c2d82c 100644 --- a/include/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp +++ b/include/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp @@ -52,7 +52,18 @@ struct operations_dispatcher< thrust::device_vector< T , A > > #include -#if THRUST_VERSION >= 100600 +#if THRUST_VERSION >= 101000 + +#include +namespace boost { namespace numeric { namespace odeint { + template< class T , class A > + struct operations_dispatcher< thrust::detail::vector_base< T , A > > + { + typedef thrust_operations operations_type; + }; +} } } + +#elif THRUST_VERSION >= 100600 // specialization for thrust cpp vector #include diff --git a/include/boost/numeric/odeint/external/thrust/thrust_resize.hpp b/include/boost/numeric/odeint/external/thrust/thrust_resize.hpp index 2f7f7b23b..8a5e60608 100644 --- a/include/boost/numeric/odeint/external/thrust/thrust_resize.hpp +++ b/include/boost/numeric/odeint/external/thrust/thrust_resize.hpp @@ -140,7 +140,17 @@ ODEINT_THRUST_COPY_IMPL( thrust::host_vector ) #include -#if THRUST_VERSION >= 100600 +#if THRUST_VERSION >= 101000 + +#include +namespace boost { namespace numeric { namespace odeint { + ODEINT_THRUST_VECTOR_IS_RESIZEABLE( thrust::detail::vector_base ) + ODEINT_TRHUST_VECTOR_RESIZE_IMPL( thrust::detail::vector_base ) + ODEINT_THRUST_SAME_SIZE_IMPL( thrust::detail::vector_base ) + ODEINT_THRUST_COPY_IMPL( thrust::detail::vector_base ) +} } } + +#elif THRUST_VERSION >= 100600 #include namespace boost { namespace numeric { namespace odeint {