88 lines · plain
1// Copyright John Maddock 2008.2// Copyright Matt Borland 20243 4// Use, modification and distribution are subject to the5// Boost Software License, Version 1.0.6// (See accompanying file LICENSE_1_0.txt7// or copy at http://www.boost.org/LICENSE_1_0.txt)8 9#ifndef BOOST_MATH_SPECIAL_ROUND_FWD_HPP10#define BOOST_MATH_SPECIAL_ROUND_FWD_HPP11 12#include <boost/math/tools/config.hpp>13#include <boost/math/tools/promotion.hpp>14 15#ifdef _MSC_VER16#pragma once17#endif18 19namespace boost20{21 namespace math22 { 23 24 template <class T, class Policy>25 BOOST_MATH_GPU_ENABLED typename tools::promote_args<T>::type trunc(const T& v, const Policy& pol);26 template <class T>27 BOOST_MATH_GPU_ENABLED typename tools::promote_args<T>::type trunc(const T& v);28 template <class T, class Policy>29 BOOST_MATH_GPU_ENABLED int itrunc(const T& v, const Policy& pol);30 template <class T>31 BOOST_MATH_GPU_ENABLED int itrunc(const T& v);32 template <class T, class Policy>33 BOOST_MATH_GPU_ENABLED long ltrunc(const T& v, const Policy& pol);34 template <class T>35 BOOST_MATH_GPU_ENABLED long ltrunc(const T& v);36 template <class T, class Policy>37 BOOST_MATH_GPU_ENABLED long long lltrunc(const T& v, const Policy& pol);38 template <class T>39 BOOST_MATH_GPU_ENABLED long long lltrunc(const T& v);40 template <class T, class Policy>41 BOOST_MATH_GPU_ENABLED typename tools::promote_args<T>::type round(const T& v, const Policy& pol);42 template <class T>43 BOOST_MATH_GPU_ENABLED typename tools::promote_args<T>::type round(const T& v);44 template <class T, class Policy>45 BOOST_MATH_GPU_ENABLED int iround(const T& v, const Policy& pol);46 template <class T>47 BOOST_MATH_GPU_ENABLED int iround(const T& v);48 template <class T, class Policy>49 BOOST_MATH_GPU_ENABLED long lround(const T& v, const Policy& pol);50 template <class T>51 BOOST_MATH_GPU_ENABLED long lround(const T& v);52 template <class T, class Policy>53 BOOST_MATH_GPU_ENABLED long long llround(const T& v, const Policy& pol);54 template <class T>55 BOOST_MATH_GPU_ENABLED long long llround(const T& v);56 template <class T, class Policy>57 BOOST_MATH_GPU_ENABLED T modf(const T& v, T* ipart, const Policy& pol);58 template <class T>59 BOOST_MATH_GPU_ENABLED T modf(const T& v, T* ipart);60 template <class T, class Policy>61 BOOST_MATH_GPU_ENABLED T modf(const T& v, int* ipart, const Policy& pol);62 template <class T>63 BOOST_MATH_GPU_ENABLED T modf(const T& v, int* ipart);64 template <class T, class Policy>65 BOOST_MATH_GPU_ENABLED T modf(const T& v, long* ipart, const Policy& pol);66 template <class T>67 BOOST_MATH_GPU_ENABLED T modf(const T& v, long* ipart);68 template <class T, class Policy>69 BOOST_MATH_GPU_ENABLED T modf(const T& v, long long* ipart, const Policy& pol);70 template <class T>71 BOOST_MATH_GPU_ENABLED T modf(const T& v, long long* ipart);72 }73}74 75#undef BOOST_MATH_STD_USING76#define BOOST_MATH_STD_USING BOOST_MATH_STD_USING_CORE\77 using boost::math::round;\78 using boost::math::iround;\79 using boost::math::lround;\80 using boost::math::trunc;\81 using boost::math::itrunc;\82 using boost::math::ltrunc;\83 using boost::math::modf;84 85 86#endif // BOOST_MATH_SPECIAL_ROUND_FWD_HPP87 88