123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524 |
- // (C) Copyright John Maddock 2007.
- // Use, modification and distribution are subject to the
- // Boost Software License, Version 1.0. (See accompanying file
- // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- #define BOOST_MATH_POLY_METHOD 0
- #define BOOST_MATH_RATIONAL_METHOD 0
- #include <boost/random.hpp>
- #include <boost/math/tools/rational.hpp>
- #include <iostream>
- #include <fstream>
- #include "mp_t.hpp"
- int main()
- {
- using namespace boost::math;
- using namespace boost::math::tools;
- static const unsigned max_order = 20;
- std::cout << std::scientific << std::setprecision(40);
- boost::mt19937 rnd;
- boost::variate_generator<
- boost::mt19937,
- boost::uniform_int<> > gen(rnd, boost::uniform_int<>(1, 12));
- for(unsigned i = 1; i < max_order; ++i)
- {
- std::vector<int> coef;
- for(unsigned j = 0; j < i; ++j)
- {
- coef.push_back(gen());
- }
- std::cout << std::scientific;
- std::cout <<
- " //\n"
- " // Polynomials of order " << i-1 << "\n"
- " //\n"
- " static const U n" << i << "c[" << i << "] = { ";
- for(unsigned j = 0; j < i; ++j)
- {
- if(j)
- std::cout << ", ";
- std::cout << coef[j];
- }
- std::cout << " };\n";
- std::cout <<
- " static const boost::array<U, " << i << "> n" << i << "a = { ";
- for(unsigned j = 0; j < i; ++j)
- {
- if(j)
- std::cout << ", ";
- std::cout << coef[j];
- }
- std::cout << " };\n";
- mp_t r1 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.125), i);
- mp_t r2 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.25), i);
- mp_t r3 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.75), i);
- mp_t r4 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(1) - mp_t(1) / 64, i);
- mp_t r5 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(6.5), i);
- mp_t r6 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(10247.25), i);
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(0.125), " << i << "),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(0.25), " << i << "),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(0.75), " << i << "),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(1.0f - 1.0f/64.0f), " << i << "),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(6.5), " << i << "),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(10247.25), " << i << "),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(0.125)),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(0.25)),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(0.75)),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(1.0f - 1.0f/64.0f)),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(6.5)),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "c, static_cast<T>(10247.25)),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "a, static_cast<T>(0.125)),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "a, static_cast<T>(0.25)),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "a, static_cast<T>(0.75)),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "a, static_cast<T>(1.0f - 1.0f/64.0f)),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "a, static_cast<T>(6.5)),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_polynomial(n" << i << "a, static_cast<T>(10247.25)),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- r1 = boost::math::tools::evaluate_even_polynomial(&coef[0], mp_t(0.125), i);
- r2 = boost::math::tools::evaluate_even_polynomial(&coef[0], mp_t(0.25), i);
- r3 = boost::math::tools::evaluate_even_polynomial(&coef[0], mp_t(0.75), i);
- r4 = boost::math::tools::evaluate_even_polynomial(&coef[0], mp_t(1) - mp_t(1) / 64, i);
- r5 = boost::math::tools::evaluate_even_polynomial(&coef[0], mp_t(6.5), i);
- r6 = boost::math::tools::evaluate_even_polynomial(&coef[0], mp_t(10247.25), i);
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(0.125), " << i << "),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(0.25), " << i << "),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(0.75), " << i << "),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(1.0f - 1.0f/64.0f), " << i << "),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(6.5f), " << i << "),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(10247.25f), " << i << "),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(0.125)),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(0.25)),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(0.75)),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(1.0f - 1.0f/64.0f)),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(6.5f)),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "c, static_cast<T>(10247.25f)),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "a, static_cast<T>(0.125)),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "a, static_cast<T>(0.25)),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "a, static_cast<T>(0.75)),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "a, static_cast<T>(1.0f - 1.0f/64.0f)),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "a, static_cast<T>(6.5f)),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_even_polynomial(n" << i << "a, static_cast<T>(10247.25f)),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- if(i > 1)
- {
- r1 = boost::math::tools::evaluate_odd_polynomial(&coef[0], mp_t(0.125), i);
- r2 = boost::math::tools::evaluate_odd_polynomial(&coef[0], mp_t(0.25), i);
- r3 = boost::math::tools::evaluate_odd_polynomial(&coef[0], mp_t(0.75), i);
- r4 = boost::math::tools::evaluate_odd_polynomial(&coef[0], mp_t(1) - mp_t(1) / 64, i);
- r5 = boost::math::tools::evaluate_odd_polynomial(&coef[0], mp_t(6.5), i);
- r6 = boost::math::tools::evaluate_odd_polynomial(&coef[0], mp_t(10247.25), i);
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(0.125), " << i << "),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(0.25), " << i << "),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(0.75), " << i << "),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(1.0f - 1.0f/64.0f), " << i << "),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(6.5f), " << i << "),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(10247.25f), " << i << "),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(0.125)),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(0.25)),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(0.75)),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(1.0f - 1.0f/64.0f)),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(6.5f)),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "c, static_cast<T>(10247.25f)),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "a, static_cast<T>(0.125)),\n"
- " static_cast<T>(" << r1 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "a, static_cast<T>(0.25)),\n"
- " static_cast<T>(" << r2 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "a, static_cast<T>(0.75)),\n"
- " static_cast<T>(" << r3 << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "a, static_cast<T>(1.0f - 1.0f/64.0f)),\n"
- " static_cast<T>(" << r4 << "L),\n"
- " tolerance);\n";
- if(fabs(r5) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "a, static_cast<T>(6.5f)),\n"
- " static_cast<T>(" << r5 << "L),\n"
- " tolerance);\n";
- if(fabs(r6) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_odd_polynomial(n" << i << "a, static_cast<T>(10247.25f)),\n"
- " static_cast<T>(" << r6 << "L),\n"
- " tolerance);\n\n";
- }
- r1 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.125), i);
- r2 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.25), i);
- r3 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.75), i);
- r4 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(1) - mp_t(1) / 64, i);
- r5 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(6.5), i);
- r6 = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(10247.25), i);
- coef.clear();
- for(unsigned j = 0; j < i; ++j)
- {
- coef.push_back(gen());
- }
- std::cout <<
- " //\n"
- " // Rational functions of order " << i-1 << "\n"
- " //\n"
- " static const U d" << i << "c[" << i << "] = { ";
- for(unsigned j = 0; j < i; ++j)
- {
- if(j)
- std::cout << ", ";
- std::cout << coef[j];
- }
- std::cout << " };\n";
- std::cout <<
- " static const boost::array<U, " << i << "> d" << i << "a = { ";
- for(unsigned j = 0; j < i; ++j)
- {
- if(j)
- std::cout << ", ";
- std::cout << coef[j];
- }
- std::cout << " };\n";
- mp_t r1d = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.125), i);
- mp_t r2d = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.25), i);
- mp_t r3d = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(0.75), i);
- mp_t r4d = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(1) - mp_t(1) / 64, i);
- mp_t r5d = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(6.5), i);
- mp_t r6d = boost::math::tools::evaluate_polynomial(&coef[0], mp_t(10247.25), i);
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(0.125), " << i << "),\n"
- " static_cast<T>(" << r1/r1d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(0.25), " << i << "),\n"
- " static_cast<T>(" << r2/r2d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(0.75), " << i << "),\n"
- " static_cast<T>(" << r3/r3d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(1.0f - 1.0f/64.0f), " << i << "),\n"
- " static_cast<T>(" << r4/r4d << "L),\n"
- " tolerance);\n";
- if(fabs(r5/r5d) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(6.5f), " << i << "),\n"
- " static_cast<T>(" << r5/r5d << "L),\n"
- " tolerance);\n";
- if(fabs(r6/r6d) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(10247.25f), " << i << "),\n"
- " static_cast<T>(" << r6/r6d << "L),\n"
- " tolerance);\n\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(0.125)),\n"
- " static_cast<T>(" << r1/r1d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(0.25)),\n"
- " static_cast<T>(" << r2/r2d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(0.75)),\n"
- " static_cast<T>(" << r3/r3d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(1.0f - 1.0f/64.0f)),\n"
- " static_cast<T>(" << r4/r4d << "L),\n"
- " tolerance);\n";
- if(fabs(r5/r5d) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(6.5f)),\n"
- " static_cast<T>(" << r5/r5d << "L),\n"
- " tolerance);\n";
- if(fabs(r6/r6d) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "c, d" << i << "c, static_cast<T>(10247.25f)),\n"
- " static_cast<T>(" << r6/r6d << "L),\n"
- " tolerance);\n\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "a, d" << i << "a, static_cast<T>(0.125)),\n"
- " static_cast<T>(" << r1/r1d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "a, d" << i << "a, static_cast<T>(0.25)),\n"
- " static_cast<T>(" << r2/r2d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "a, d" << i << "a, static_cast<T>(0.75)),\n"
- " static_cast<T>(" << r3/r3d << "L),\n"
- " tolerance);\n";
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "a, d" << i << "a, static_cast<T>(1.0f - 1.0f/64.0f)),\n"
- " static_cast<T>(" << r4/r4d << "L),\n"
- " tolerance);\n";
- if(fabs(r5/r5d) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "a, d" << i << "a, static_cast<T>(6.5f)),\n"
- " static_cast<T>(" << r5/r5d << "L),\n"
- " tolerance);\n";
- if(fabs(r6/r6d) < tools::max_value<float>())
- std::cout <<
- " BOOST_CHECK_CLOSE(\n"
- " boost::math::tools::evaluate_rational(n" << i << "a, d" << i << "a, static_cast<T>(10247.25f)),\n"
- " static_cast<T>(" << r6/r6d << "L),\n"
- " tolerance);\n\n";
- }
- return 0;
- }
|