Chris@102: /* Chris@102: [auto_generated] Chris@102: boost/numeric/odeint/external/vexcl/vexcl_abs.hpp Chris@102: Chris@102: [begin_description] Chris@102: abs() specialization for vexcl Chris@102: [end_description] Chris@102: Chris@102: Copyright 2009-2013 Karsten Ahnert Chris@102: Copyright 2009-2013 Mario Mulansky Chris@102: Chris@102: Distributed under the Boost Software License, Version 1.0. Chris@102: (See accompanying file LICENSE_1_0.txt or Chris@102: copy at http://www.boost.org/LICENSE_1_0.txt) Chris@102: */ Chris@102: Chris@102: Chris@102: #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_ABS_HPP_DEFINED Chris@102: #define BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_ABS_HPP_DEFINED Chris@102: Chris@102: #include Chris@102: #include Chris@102: #include Chris@102: Chris@102: namespace vex { Chris@102: Chris@102: template Chris@102: typename std::enable_if< Chris@102: std::is_integral::value, Chris@102: typename boost::proto::result_of::make_expr< Chris@102: boost::proto::tag::function, Chris@102: abs_func, Chris@102: const vex::multivector& Chris@102: >::type const Chris@102: >::type Chris@102: abs(const multivector &arg) { Chris@102: return boost::proto::make_expr( Chris@102: abs_func(), Chris@102: boost::ref(arg) Chris@102: ); Chris@102: } Chris@102: Chris@102: template Chris@102: typename std::enable_if< Chris@102: !std::is_integral::value, Chris@102: typename boost::proto::result_of::make_expr< Chris@102: boost::proto::tag::function, Chris@102: fabs_func, Chris@102: const vex::multivector& Chris@102: >::type const Chris@102: >::type Chris@102: abs(const multivector &arg) { Chris@102: return boost::proto::make_expr( Chris@102: fabs_func(), Chris@102: boost::ref(arg) Chris@102: ); Chris@102: } Chris@102: Chris@102: } // namespace vex Chris@102: Chris@102: #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_ABS_HPP_DEFINED