]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/math/reporting/accuracy/test_igamma.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / math / reporting / accuracy / test_igamma.cpp
1 // Copyright John Maddock 2006-15.
2 // Copyright Paul A. Bristow 2007
3 // Use, modification and distribution are subject to the
4 // Boost Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7 #include "bindings.hpp"
8 #include "../../test/test_igamma.hpp"
9 #include <boost/math/special_functions/gamma.hpp>
10
11 BOOST_AUTO_TEST_CASE(test_main)
12 {
13 BOOST_MATH_CONTROL_FP;
14
15 error_stream_replacer rep;
16
17 #ifdef TYPE_TO_TEST
18
19 test_gamma(static_cast<TYPE_TO_TEST>(0), NAME_OF_TYPE_TO_TEST);
20
21 #else
22 bool test_float = false;
23 bool test_double = false;
24 bool test_long_double = false;
25
26 if(std::numeric_limits<long double>::digits == std::numeric_limits<double>::digits)
27 {
28 //
29 // Don't bother with long double, it's the same as double:
30 //
31 if(BOOST_MATH_PROMOTE_FLOAT_POLICY == false)
32 test_float = true;
33 test_double = true;
34 }
35 else
36 {
37 if(BOOST_MATH_PROMOTE_FLOAT_POLICY == false)
38 test_float = true;
39 if(BOOST_MATH_PROMOTE_DOUBLE_POLICY == false)
40 test_double = true;
41 test_long_double = true;
42 }
43
44 #ifdef ALWAYS_TEST_DOUBLE
45 test_double = true;
46 #endif
47
48 if(test_float)
49 test_gamma(0.0f, "float");
50 if(test_double)
51 test_gamma(0.0, "double");
52 if(test_long_double)
53 test_gamma(0.0L, "long double");
54 #ifdef BOOST_MATH_USE_FLOAT128
55 //test_gamma(0.0Q, "__float128");
56 #endif
57
58
59 #endif
60 }
61