]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/multiprecision/test/math/test_carlson_1.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / multiprecision / test / math / test_carlson_1.cpp
1 ///////////////////////////////////////////////////////////////
2 // Copyright 2011 John Maddock. Distributed under the Boost
3 // Software License, Version 1.0. (See accompanying file
4 // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
5
6 #include "setup.hpp"
7 #include "table_type.hpp"
8 #define TEST_UDT
9 #define TEST1
10
11 #include <boost/math/special_functions/math_fwd.hpp>
12 #include <boost/math/special_functions/ellint_rf.hpp>
13 #include "libs/math/test/test_carlson.hpp"
14
15 void expected_results()
16 {
17 //
18 // Define the max and mean errors expected for
19 // various compilers and platforms.
20 //
21 add_expected_result(
22 ".*", // compiler
23 ".*", // stdlib
24 ".*", // platform
25 ".*gmp_float<0>.*", // test type(s)
26 ".*RJ.*", // test data group
27 ".*", 40000, 4000); // test function
28 add_expected_result(
29 ".*", // compiler
30 ".*", // stdlib
31 ".*", // platform
32 ".*", // test type(s)
33 ".*RJ.*", // test data group
34 ".*", 2700, 250); // test function
35 add_expected_result(
36 ".*", // compiler
37 ".*", // stdlib
38 ".*", // platform
39 ".*gmp_float<0>.*", // test type(s)
40 ".*RC.*", // test data group
41 ".*", 7000, 1000); // test function
42 add_expected_result(
43 ".*", // compiler
44 ".*", // stdlib
45 ".*", // platform
46 ".*gmp_float<0>.*", // test type(s)
47 ".*RF.*", // test data group
48 ".*", 12000, 700); // test function
49 add_expected_result(
50 ".*", // compiler
51 ".*", // stdlib
52 ".*", // platform
53 ".*", // test type(s)
54 ".*", // test data group
55 ".*", 40, 20); // test function
56 //
57 // Finish off by printing out the compiler/stdlib/platform names,
58 // we do this to make it easier to mark up expected error rates.
59 //
60 std::cout << "Tests run with " << BOOST_COMPILER << ", "
61 << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
62 }
63
64 template <class T>
65 void test(T t, const char* p)
66 {
67 test_spots(t, p);
68 }
69
70 BOOST_AUTO_TEST_CASE(test_main)
71 {
72 using namespace boost::multiprecision;
73 expected_results();
74 //
75 // Test at:
76 // 18 decimal digits: tests 80-bit long double approximations
77 // 30 decimal digits: tests 128-bit long double approximations
78 // 35 decimal digits: tests arbitrary precision code
79 //
80 ALL_TESTS
81 }