62 lines
1.6 KiB
Plaintext
62 lines
1.6 KiB
Plaintext
/*
|
|
[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
|