round_fwd.hpp 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. // Copyright John Maddock 2008.
  2. // Copyright Matt Borland 2024
  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. #ifndef BOOST_MATH_SPECIAL_ROUND_FWD_HPP
  8. #define BOOST_MATH_SPECIAL_ROUND_FWD_HPP
  9. #include <boost/math/tools/config.hpp>
  10. #include <boost/math/tools/promotion.hpp>
  11. #ifdef _MSC_VER
  12. #pragma once
  13. #endif
  14. namespace boost
  15. {
  16. namespace math
  17. {
  18. template <class T, class Policy>
  19. BOOST_MATH_GPU_ENABLED typename tools::promote_args<T>::type trunc(const T& v, const Policy& pol);
  20. template <class T>
  21. BOOST_MATH_GPU_ENABLED typename tools::promote_args<T>::type trunc(const T& v);
  22. template <class T, class Policy>
  23. BOOST_MATH_GPU_ENABLED int itrunc(const T& v, const Policy& pol);
  24. template <class T>
  25. BOOST_MATH_GPU_ENABLED int itrunc(const T& v);
  26. template <class T, class Policy>
  27. BOOST_MATH_GPU_ENABLED long ltrunc(const T& v, const Policy& pol);
  28. template <class T>
  29. BOOST_MATH_GPU_ENABLED long ltrunc(const T& v);
  30. template <class T, class Policy>
  31. BOOST_MATH_GPU_ENABLED long long lltrunc(const T& v, const Policy& pol);
  32. template <class T>
  33. BOOST_MATH_GPU_ENABLED long long lltrunc(const T& v);
  34. template <class T, class Policy>
  35. BOOST_MATH_GPU_ENABLED typename tools::promote_args<T>::type round(const T& v, const Policy& pol);
  36. template <class T>
  37. BOOST_MATH_GPU_ENABLED typename tools::promote_args<T>::type round(const T& v);
  38. template <class T, class Policy>
  39. BOOST_MATH_GPU_ENABLED int iround(const T& v, const Policy& pol);
  40. template <class T>
  41. BOOST_MATH_GPU_ENABLED int iround(const T& v);
  42. template <class T, class Policy>
  43. BOOST_MATH_GPU_ENABLED long lround(const T& v, const Policy& pol);
  44. template <class T>
  45. BOOST_MATH_GPU_ENABLED long lround(const T& v);
  46. template <class T, class Policy>
  47. BOOST_MATH_GPU_ENABLED long long llround(const T& v, const Policy& pol);
  48. template <class T>
  49. BOOST_MATH_GPU_ENABLED long long llround(const T& v);
  50. template <class T, class Policy>
  51. BOOST_MATH_GPU_ENABLED T modf(const T& v, T* ipart, const Policy& pol);
  52. template <class T>
  53. BOOST_MATH_GPU_ENABLED T modf(const T& v, T* ipart);
  54. template <class T, class Policy>
  55. BOOST_MATH_GPU_ENABLED T modf(const T& v, int* ipart, const Policy& pol);
  56. template <class T>
  57. BOOST_MATH_GPU_ENABLED T modf(const T& v, int* ipart);
  58. template <class T, class Policy>
  59. BOOST_MATH_GPU_ENABLED T modf(const T& v, long* ipart, const Policy& pol);
  60. template <class T>
  61. BOOST_MATH_GPU_ENABLED T modf(const T& v, long* ipart);
  62. template <class T, class Policy>
  63. BOOST_MATH_GPU_ENABLED T modf(const T& v, long long* ipart, const Policy& pol);
  64. template <class T>
  65. BOOST_MATH_GPU_ENABLED T modf(const T& v, long long* ipart);
  66. }
  67. }
  68. #undef BOOST_MATH_STD_USING
  69. #define BOOST_MATH_STD_USING BOOST_MATH_STD_USING_CORE\
  70. using boost::math::round;\
  71. using boost::math::iround;\
  72. using boost::math::lround;\
  73. using boost::math::trunc;\
  74. using boost::math::itrunc;\
  75. using boost::math::ltrunc;\
  76. using boost::math::modf;
  77. #endif // BOOST_MATH_SPECIAL_ROUND_FWD_HPP