From 2eff5fd25cdaf946533530ce4cec19bda1e7623f Mon Sep 17 00:00:00 2001 From: Denis Demidov Date: Sun, 3 Nov 2013 09:10:05 +0400 Subject: [PATCH] Provides specialization of same_instance_impl for vexcl containers refs #110 --- boost/numeric/odeint/external/vexcl/vexcl.hpp | 1 + .../external/vexcl/vexcl_same_instance.hpp | 58 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp diff --git a/boost/numeric/odeint/external/vexcl/vexcl.hpp b/boost/numeric/odeint/external/vexcl/vexcl.hpp index d8e07c26..210733e5 100644 --- a/boost/numeric/odeint/external/vexcl/vexcl.hpp +++ b/boost/numeric/odeint/external/vexcl/vexcl.hpp @@ -20,6 +20,7 @@ #include #include +#include #include #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_HPP_DEFINED diff --git a/boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp b/boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp new file mode 100644 index 00000000..f5a7378c --- /dev/null +++ b/boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp @@ -0,0 +1,58 @@ +/* + [auto_generated] + boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp + + [begin_description] + Check if two VexCL containers are the same instance. + [end_description] + + Copyright 2009-2011 Karsten Ahnert + Copyright 2009-2011 Mario Mulansky + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or + copy at http://www.boost.org/LICENSE_1_0.txt) + */ + + +#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_SAME_INSTANCE_HPP_INCLUDED +#define BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_SAME_INSTANCE_HPP_INCLUDED + +#include +#include + +#include + +namespace boost { +namespace numeric { +namespace odeint { + +template +struct same_instance_impl< vex::vector , vex::vector > +{ + static bool same_instance( const vex::vector &x1 , const vex::vector &x2 ) + { + return + static_cast*>(&x1) == + static_cast*>(&x2); + } +}; + +template +struct same_instance_impl< vex::multivector , vex::multivector > +{ + static bool same_instance( const vex::multivector &x1 , const vex::multivector &x2 ) + { + return + static_cast*>(&x1) == + static_cast*>(&x2); + } +}; + +} // namespace odeint +} // namespace numeric +} // namespace boost + + + +#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_SAME_INSTANCE_HPP_INCLUDED