EVOLUTION-MANAGER
Edit File: vexcl_abs.hpp
/* [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 <vexcl/vector.hpp> #include <vexcl/multivector.hpp> #include <vexcl/operations.hpp> namespace vex { template <typename T, size_t N> typename std::enable_if< std::is_integral<T>::value, typename boost::proto::result_of::make_expr< boost::proto::tag::function, abs_func, const vex::multivector<T, N>& >::type const >::type abs(const multivector<T, N> &arg) { return boost::proto::make_expr<boost::proto::tag::function>( abs_func(), boost::ref(arg) ); } template <typename T, size_t N> typename std::enable_if< !std::is_integral<T>::value, typename boost::proto::result_of::make_expr< boost::proto::tag::function, fabs_func, const vex::multivector<T, N>& >::type const >::type abs(const multivector<T, N> &arg) { return boost::proto::make_expr<boost::proto::tag::function>( fabs_func(), boost::ref(arg) ); } } // namespace vex #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_ABS_HPP_DEFINED