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
 | 
