1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // (C) Copyright John Maddock 2005.
- // 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)
- #ifndef NTL_STD_CXX
- # define NTL_STD_CXX
- #endif
- #include <iostream>
- #include <iomanip>
- #include "mp_t.hpp"
- mp_t log1p(mp_t arg)
- {
- return log(arg + 1);
- }
- mp_t expm1(mp_t arg)
- {
- return exp(arg) - 1;
- }
- int main()
- {
- mp_t r, root_two;
- r = 1.0;
- root_two = 2.0;
- root_two = sqrt(root_two);
- r /= root_two;
- mp_t lim = pow(mp_t(2), mp_t(-128));
- std::cout << std::scientific << std::setprecision(40);
- while(r > lim)
- {
- std::cout << " { " << r << "L, " << log1p(r) << "L, " << expm1(r) << "L, }, \n";
- std::cout << " { " << -r << "L, " << log1p(-r) << "L, " << expm1(-r) << "L, }, \n";
- r /= root_two;
- }
- return 0;
- }
|