• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //  (C) Copyright John Maddock 2007.
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 #include <boost/math/tools/test_data.hpp>
7 #include <boost/math/special_functions/hermite.hpp>
8 #include <fstream>
9 #include "mp_t.hpp"
10 
11 using namespace boost::math::tools;
12 using namespace boost::math;
13 using namespace std;
14 
15 
16 template<class T>
hermite_data(T n,T x)17 boost::math::tuple<T, T, T> hermite_data(T n, T x)
18 {
19    n = floor(n);
20    T r1 = hermite(boost::math::tools::real_cast<unsigned>(n), x);
21    return boost::math::make_tuple(n, x, r1);
22 }
23 
main(int argc,char * argv[])24 int main(int argc, char*argv [])
25 {
26    using namespace boost::math::tools;
27 
28    parameter_info<mp_t> arg1, arg2, arg3;
29    test_data<mp_t> data;
30 
31    std::cout << boost::math::hermite(10, static_cast<mp_t>(1e300)) << std::endl;
32 
33    bool cont;
34    std::string line;
35 
36    if(argc < 1)
37       return 1;
38 
39    do{
40       if(0 == get_user_parameter_info(arg1, "n"))
41          return 1;
42       if(0 == get_user_parameter_info(arg2, "x"))
43          return 1;
44       arg1.type |= dummy_param;
45       arg2.type |= dummy_param;
46 
47       data.insert(&hermite_data<mp_t>, arg1, arg2);
48 
49       std::cout << "Any more data [y/n]?";
50       std::getline(std::cin, line);
51       boost::algorithm::trim(line);
52       cont = (line == "y");
53    }while(cont);
54 
55    std::cout << "Enter name of test data file [default=hermite.ipp]";
56    std::getline(std::cin, line);
57    boost::algorithm::trim(line);
58    if(line == "")
59       line = "hermite.ipp";
60    std::ofstream ofs(line.c_str());
61    line.erase(line.find('.'));
62    ofs << std::scientific << std::setprecision(40);
63    write_code(ofs, data, line.c_str());
64 
65    return 0;
66 }
67 
68