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 {