Mercurial > hg > vamp-build-and-test
diff DEPENDENCIES/generic/include/boost/math/special_functions/trunc.hpp @ 101:c530137014c0
Update Boost headers (1.58.0)
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:12:49 +0100 |
parents | 2665513ce2d3 |
children |
line wrap: on
line diff
--- a/DEPENDENCIES/generic/include/boost/math/special_functions/trunc.hpp Fri Sep 04 12:01:02 2015 +0100 +++ b/DEPENDENCIES/generic/include/boost/math/special_functions/trunc.hpp Mon Sep 07 11:12:49 2015 +0100 @@ -10,14 +10,15 @@ #pragma once #endif +#include <boost/math/special_functions/math_fwd.hpp> #include <boost/math/tools/config.hpp> #include <boost/math/policies/error_handling.hpp> #include <boost/math/special_functions/fpclassify.hpp> -namespace boost{ namespace math{ +namespace boost{ namespace math{ namespace detail{ template <class T, class Policy> -inline typename tools::promote_args<T>::type trunc(const T& v, const Policy& pol) +inline typename tools::promote_args<T>::type trunc(const T& v, const Policy& pol, const mpl::false_&) { BOOST_MATH_STD_USING typedef typename tools::promote_args<T>::type result_type; @@ -25,6 +26,20 @@ return policies::raise_rounding_error("boost::math::trunc<%1%>(%1%)", 0, static_cast<result_type>(v), static_cast<result_type>(v), pol); return (v >= 0) ? static_cast<result_type>(floor(v)) : static_cast<result_type>(ceil(v)); } + +template <class T, class Policy> +inline typename tools::promote_args<T>::type trunc(const T& v, const Policy&, const mpl::true_&) +{ + return v; +} + +} + +template <class T, class Policy> +inline typename tools::promote_args<T>::type trunc(const T& v, const Policy& pol) +{ + return detail::trunc(v, pol, mpl::bool_<detail::is_integer_for_rounding<T>::value>()); +} template <class T> inline typename tools::promote_args<T>::type trunc(const T& v) {