]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/math/include/boost/math/concepts/real_type_concept.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / math / include / boost / math / concepts / real_type_concept.hpp
CommitLineData
7c673cae
FG
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)
5
6#ifndef BOOST_MATH_REAL_TYPE_CONCEPT_HPP
7#define BOOST_MATH_REAL_TYPE_CONCEPT_HPP
8
9#include <boost/config.hpp>
10#ifdef BOOST_MSVC
11#pragma warning(push)
12#pragma warning(disable: 4100)
13#pragma warning(disable: 4510)
14#pragma warning(disable: 4610)
15#endif
16#include <boost/concept_check.hpp>
17#ifdef BOOST_MSVC
18#pragma warning(pop)
19#endif
20#include <boost/math/tools/config.hpp>
21#include <boost/math/tools/precision.hpp>
22
23
24namespace boost{ namespace math{ namespace concepts{
25
26template <class RealType>
27struct RealTypeConcept
28{
29 template <class Other>
30 void check_binary_ops(Other o)
31 {
32 RealType r(o);
33 r = o;
34 r -= o;
35 r += o;
36 r *= o;
37 r /= o;
38 r = r - o;
39 r = o - r;
40 r = r + o;
41 r = o + r;
42 r = o * r;
43 r = r * o;
44 r = r / o;
45 r = o / r;
46 bool b;
47 b = r == o;
48 suppress_unused_variable_warning(b);
49 b = o == r;
50 suppress_unused_variable_warning(b);
51 b = r != o;
52 suppress_unused_variable_warning(b);
53 b = o != r;
54 suppress_unused_variable_warning(b);
55 b = r <= o;
56 suppress_unused_variable_warning(b);
57 b = o <= r;
58 suppress_unused_variable_warning(b);
59 b = r >= o;
60 suppress_unused_variable_warning(b);
61 b = o >= r;
62 suppress_unused_variable_warning(b);
63 b = r < o;
64 suppress_unused_variable_warning(b);
65 b = o < r;
66 suppress_unused_variable_warning(b);
67 b = r > o;
68 suppress_unused_variable_warning(b);
69 b = o > r;
70 suppress_unused_variable_warning(b);
71 }
72
73 void constraints()
74 {
75 BOOST_MATH_STD_USING
76
77 RealType r;
78 check_binary_ops(r);
79 check_binary_ops(0.5f);
80 check_binary_ops(0.5);
81 //check_binary_ops(0.5L);
82 check_binary_ops(1);
83 //check_binary_ops(1u);
84 check_binary_ops(1L);
85 //check_binary_ops(1uL);
86#ifndef BOOST_HAS_LONG_LONG
87 check_binary_ops(1LL);
88#endif
89 RealType r2 = +r;
90 r2 = -r;
91
92 r2 = fabs(r);
93 r2 = abs(r);
94 r2 = ceil(r);
95 r2 = floor(r);
96 r2 = exp(r);
97 r2 = pow(r, r2);
98 r2 = sqrt(r);
99 r2 = log(r);
100 r2 = cos(r);
101 r2 = sin(r);
102 r2 = tan(r);
103 r2 = asin(r);
104 r2 = acos(r);
105 r2 = atan(r);
106 int i;
107 r2 = ldexp(r, i);
108 r2 = frexp(r, &i);
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>();
115 }
116}; // struct DistributionConcept
117
118
119}}} // namespaces
120
121#endif
122