1 // Copyright John Maddock 2007-8.
2 // Use, modification and distribution are subject to the
3 // Boost Software License, Version 1.0. (See accompanying file
4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #ifndef BOOST_MATH_REAL_TYPE_CONCEPT_HPP
7 #define BOOST_MATH_REAL_TYPE_CONCEPT_HPP
9 #include <boost/config.hpp>
12 #pragma warning(disable: 4100)
13 #pragma warning(disable: 4510)
14 #pragma warning(disable: 4610)
16 #include <boost/concept_check.hpp>
20 #include <boost/math/tools/config.hpp>
21 #include <boost/math/tools/precision.hpp>
24 namespace boost{ namespace math{ namespace concepts{
26 template <class RealType>
27 struct RealTypeConcept
29 template <class Other>
30 void check_binary_ops(Other o)
48 suppress_unused_variable_warning(b);
50 suppress_unused_variable_warning(b);
52 suppress_unused_variable_warning(b);
54 suppress_unused_variable_warning(b);
56 suppress_unused_variable_warning(b);
58 suppress_unused_variable_warning(b);
60 suppress_unused_variable_warning(b);
62 suppress_unused_variable_warning(b);
64 suppress_unused_variable_warning(b);
66 suppress_unused_variable_warning(b);
68 suppress_unused_variable_warning(b);
70 suppress_unused_variable_warning(b);
79 check_binary_ops(0.5f);
80 check_binary_ops(0.5);
81 //check_binary_ops(0.5L);
83 //check_binary_ops(1u);
85 //check_binary_ops(1uL);
86 #ifndef BOOST_HAS_LONG_LONG
87 check_binary_ops(1LL);
109 i = boost::math::tools::digits<RealType>();
110 r2 = boost::math::tools::max_value<RealType>();
111 r2 = boost::math::tools::min_value<RealType>();
112 r2 = boost::math::tools::log_max_value<RealType>();
113 r2 = boost::math::tools::log_min_value<RealType>();
114 r2 = boost::math::tools::epsilon<RealType>();
116 }; // struct DistributionConcept