/* [auto_generated] boost/numeric/odeint/external/vexcl/vexcl_abs.hpp [begin_description] abs() specialization for vexcl [end_description] Copyright 2009-2013 Karsten Ahnert Copyright 2009-2013 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_ABS_HPP_DEFINED #define BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_ABS_HPP_DEFINED #include #include #include namespace vex { template typename std::enable_if< std::is_integral::value, typename boost::proto::result_of::make_expr< boost::proto::tag::function, abs_func, const vex::multivector& >::type const >::type abs(const multivector &arg) { return boost::proto::make_expr( abs_func(), boost::ref(arg) ); } template typename std::enable_if< !std::is_integral::value, typename boost::proto::result_of::make_expr< boost::proto::tag::function, fabs_func, const vex::multivector& >::type const >::type abs(const multivector &arg) { return boost::proto::make_expr( fabs_func(), boost::ref(arg) ); } } // namespace vex #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_ABS_HPP_DEFINED