123456789101112131415161718192021222324252627282930313233343536373839 |
- // Boost.Geometry Index
- //
- // Abs of difference
- //
- // Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
- //
- // Use, modification and distribution is subject to 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_GEOMETRY_INDEX_DETAIL_ALGORITHMS_DIFF_ABS_HPP
- #define BOOST_GEOMETRY_INDEX_DETAIL_ALGORITHMS_DIFF_ABS_HPP
- namespace boost { namespace geometry { namespace index { namespace detail {
- template <typename T>
- inline T diff_abs_dispatch(T const& v1, T const& v2, boost::mpl::bool_<true> const& /*is_integral*/)
- {
- return v1 < v2 ? v2 - v1 : v1 - v2;
- }
- template <typename T>
- inline T diff_abs_dispatch(T const& v1, T const& v2, boost::mpl::bool_<false> const& /*is_integral*/)
- {
- return ::fabs(v1 - v2);
- }
- template <typename T>
- inline T diff_abs(T const& v1, T const& v2)
- {
- typedef boost::mpl::bool_<
- boost::is_integral<T>::value
- > is_integral;
- return diff_abs_dispatch(v1, v2, is_integral());
- }
- }}}} // namespace boost::geometry::index::detail
- #endif // BOOST_GEOMETRY_INDEX_DETAIL_ALGORITHMS_DIFF_ABS_HPP
|