Thank you. That made a huge difference. On Sun, 16 Aug 2020 at 15:24, John Maddock via Boost-users < boost-users@lists.boost.org> wrote:
> > On 16/08/2020 21:15, Anirban Pal via Boost-users wrote: > > > > Hello, > > > > I’m using the tanh-sinh integrator to integrate a simple function f(x) > > = 0.26*x from 3.0 to 4.0. > > The exact result is 0.91. With the integrator I’m getting a result > > accurate to only 10^-18 with cpp_bin_float_100 multiprecision. > > > You have the double precision constant 0.26 in your code, and since this > is an inexact binary value, everything that depends on that constant is > inherently limited to double precision. Try constructing it as Real(26) > / 100. > > > > |typedef boost::multiprecision::cpp_bin_float_100 Real; int main(int > > argc, char **argv) { using namespace boost::math::quadrature; using > > namespace std::placeholders; tanh_sinh<Real> integrator; auto f2 = > > [](Real x) { Real a = 0.26; return x*a; }; std::cout << > > std::setprecision(std::numeric_limits<Real>::max_digits10) << "Comp.: > > " << integrator.integrate(f2, (Real) 3.0, (Real) 4.0) << std::endl; > > return 0; } | > > I'm getting an output of > > > > Comp.: > > > 0.9100000000000000310862446895043831318616867065429687499999999999999999999999999999999999999999999999429 > > > > which I'm a bit curious about. I was wondering if I can improve the > > result. > > > > Thank you. > > > > > > -- > > Anirban Pal > > > > > > > > > > _______________________________________________ > > Boost-users mailing list > > Boost-users@lists.boost.org > > https://lists.boost.org/mailman/listinfo.cgi/boost-users > > -- > This email has been checked for viruses by Avast antivirus software. > https://www.avast.com/antivirus > > _______________________________________________ > Boost-users mailing list > Boost-users@lists.boost.org > https://lists.boost.org/mailman/listinfo.cgi/boost-users > -- Anirban Pal
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users