Difficulty using boost quadrature library
Hello everyone,
I'm new to using boost and I'm trying to use its quadrature routines,
specifically
the *tanh_sinh* integrator. I'm trying to run the examples here:
You need to decide on which Real type you want, perhaps
#include
On 14/08/2020 01:07, Anirban Pal via Boost-users wrote:
Hello everyone,
I'm new to using boost and I'm trying to use its quadrature routines, specifically the *tanh_sinh* integrator. I'm trying to run the examples here:
https://www.boost.org/doc/libs/1_66_0/libs/math/doc/html/math_toolkit/double... https://www.boost.org/doc/libs/1_66_0/libs/math/doc/html/math_toolkit/double... I've been successful using it with the *double* datatype. However, I can't seem to work with the *Real* datatype. When I run the following, I'm successful. tanh_sinh<double> integrator; auto f = [](double x) { return 5*x + 7; }; double Q = integrator.integrate(f); Q = integrator.integrate(f, 0.0, 1.1);
But when I run the following: auto f = [](Real x) { return log(x)*log(1-x); }; Real Q = integrator.integrate(f, (Real) 0, (Real) 1);
I confess that's not the best example in the docs :( The name "Real" is just used as "some kind of floating point type" - replace with whatever actual type you wish to use.
I get the error:
boost_test.cxx: In function ‘int main(int, char**)’: boost_test.cxx:47:15: error: ‘Real’ has not been declared auto f2 = [](Real x) { return log(x)*log(1-x); }; ^~~~ boost_test.cxx:48:2: error: ‘Real’ was not declared in this scope Real Q2 = integrator.integrate(f2, (Real) 0, (Real) 1);
I think I need to include the right headers for this to go away. However, I'm not sure what the correct header file is.
Thank you for your attention.
-- 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
Thank you. That worked. On Fri, 14 Aug 2020 at 05:23, John Maddock via Boost-users < boost-users@lists.boost.org> wrote:
On 14/08/2020 01:07, Anirban Pal via Boost-users wrote:
Hello everyone,
I'm new to using boost and I'm trying to use its quadrature routines, specifically the *tanh_sinh* integrator. I'm trying to run the examples here:
https://www.boost.org/doc/libs/1_66_0/libs/math/doc/html/math_toolkit/double...
< https://www.boost.org/doc/libs/1_66_0/libs/math/doc/html/math_toolkit/double...
I've been successful using it with the *double* datatype. However, I can't seem to work with the *Real* datatype. When I run the following, I'm successful. tanh_sinh<double> integrator; auto f = [](double x) { return 5*x + 7; }; double Q = integrator.integrate(f); Q = integrator.integrate(f, 0.0, 1.1);
But when I run the following: auto f = [](Real x) { return log(x)*log(1-x); }; Real Q = integrator.integrate(f, (Real) 0, (Real) 1);
I confess that's not the best example in the docs :(
The name "Real" is just used as "some kind of floating point type" - replace with whatever actual type you wish to use.
I get the error:
boost_test.cxx: In function ‘int main(int, char**)’: boost_test.cxx:47:15: error: ‘Real’ has not been declared auto f2 = [](Real x) { return log(x)*log(1-x); }; ^~~~ boost_test.cxx:48:2: error: ‘Real’ was not declared in this scope Real Q2 = integrator.integrate(f2, (Real) 0, (Real) 1);
I think I need to include the right headers for this to go away. However, I'm not sure what the correct header file is.
Thank you for your attention.
-- 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
participants (3)
-
Anirban Pal
-
John Maddock
-
pbristow@hetp.u-net.com