constants.hpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Boost.Geometry
  2. // Copyright (c) 2018, Oracle and/or its affiliates.
  3. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
  4. // Use, modification and distribution is subject to the Boost Software License,
  5. // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. #ifndef BOOST_GEOMETRY_PROJECTIONS_CONSTANTS_HPP
  8. #define BOOST_GEOMETRY_PROJECTIONS_CONSTANTS_HPP
  9. #include <boost/geometry/util/math.hpp>
  10. #include <boost/math/constants/constants.hpp>
  11. namespace boost { namespace geometry { namespace projections
  12. {
  13. #ifndef DOXYGEN_NO_DETAIL
  14. namespace detail
  15. {
  16. template <typename T>
  17. inline T fourth_pi() { return T(0.78539816339744830961566084581988); }
  18. template <typename T>
  19. inline T third_pi() { return boost::math::constants::third_pi<T>(); }
  20. template <typename T>
  21. inline T half_pi() { return boost::math::constants::half_pi<T>(); }
  22. template <typename T>
  23. inline T pi() { return boost::math::constants::pi<T>(); }
  24. template <typename T>
  25. inline T one_and_half_pi() { return T(4.7123889803846898576939650749193); }
  26. template <typename T>
  27. inline T two_pi() { return boost::math::constants::two_pi<T>(); }
  28. template <typename T>
  29. inline T two_and_half_pi() { return T(7.8539816339744830961566084581988); }
  30. template <typename T>
  31. inline T two_div_pi() { return boost::math::constants::two_div_pi<T>(); }
  32. template <typename T>
  33. inline T half_pi_sqr() { return T(2.4674011002723396547086227499689); }
  34. template <typename T>
  35. inline T pi_sqr() { return boost::math::constants::pi_sqr<T>(); }
  36. template <typename T>
  37. inline T sixth() { return boost::math::constants::sixth<T>(); }
  38. template <typename T>
  39. inline T third() { return boost::math::constants::third<T>(); }
  40. template <typename T>
  41. inline T two_thirds() { return boost::math::constants::two_thirds<T>(); }
  42. } // namespace detail
  43. #endif // DOXYGEN_NO_DETAIL
  44. }}} // namespace boost::geometry::projections
  45. #endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PROJECTS_HPP