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
							 |