1 // Copyright John Maddock 2008.
2 
3 // Use, modification and distribution are subject to the
4 // Boost Software License, Version 1.0.
5 // (See accompanying file LICENSE_1_0.txt
6 // or copy at http://www.boost.org/LICENSE_1_0.txt)
7 
8 #ifndef BOOST_MATH_SPECIAL_ROUND_FWD_HPP
9 #define BOOST_MATH_SPECIAL_ROUND_FWD_HPP
10 
11 #include <boost/config.hpp>
12 
13 #ifdef _MSC_VER
14 #pragma once
15 #endif
16 
17 namespace boost
18 {
19    namespace math
20    {
21 
22    template <class T, class Policy>
23    T trunc(const T& v, const Policy& pol);
24    template <class T>
25    T trunc(const T& v);
26    template <class T, class Policy>
27    int itrunc(const T& v, const Policy& pol);
28    template <class T>
29    int itrunc(const T& v);
30    template <class T, class Policy>
31    long ltrunc(const T& v, const Policy& pol);
32    template <class T>
33    long ltrunc(const T& v);
34 #ifdef BOOST_HAS_LONG_LONG
35    template <class T, class Policy>
36    boost::long_long_type lltrunc(const T& v, const Policy& pol);
37    template <class T>
38    boost::long_long_type lltrunc(const T& v);
39 #endif
40    template <class T, class Policy>
41    T round(const T& v, const Policy& pol);
42    template <class T>
43    T round(const T& v);
44    template <class T, class Policy>
45    int iround(const T& v, const Policy& pol);
46    template <class T>
47    int iround(const T& v);
48    template <class T, class Policy>
49    long lround(const T& v, const Policy& pol);
50    template <class T>
51    long lround(const T& v);
52 #ifdef BOOST_HAS_LONG_LONG
53    template <class T, class Policy>
54    boost::long_long_type llround(const T& v, const Policy& pol);
55    template <class T>
56    boost::long_long_type llround(const T& v);
57 #endif
58    template <class T, class Policy>
59    T modf(const T& v, T* ipart, const Policy& pol);
60    template <class T>
61    T modf(const T& v, T* ipart);
62    template <class T, class Policy>
63    T modf(const T& v, int* ipart, const Policy& pol);
64    template <class T>
65    T modf(const T& v, int* ipart);
66    template <class T, class Policy>
67    T modf(const T& v, long* ipart, const Policy& pol);
68    template <class T>
69    T modf(const T& v, long* ipart);
70 #ifdef BOOST_HAS_LONG_LONG
71    template <class T, class Policy>
72    T modf(const T& v, boost::long_long_type* ipart, const Policy& pol);
73    template <class T>
74    T modf(const T& v, boost::long_long_type* ipart);
75 #endif
76 
77    }
78 }
79 #endif // BOOST_MATH_SPECIAL_ROUND_FWD_HPP
80 
81