/** * * g++ main.cpp -o main.x -L`gsl-config --libs` * */ #include #include #include #include #include double f(double x, void * params) { return std::exp(-x*x); } int main (void) { size_t const n(100); double const a(19.3); double const b(20.0); double const epsabs(1.0e-13); double const epsrel(1.0e-13); double result(0.0); double abserr(0.0); size_t nevals(0); gsl_integration_cquad_workspace * workspace(NULL); gsl_function F; F.function = &f; F.params = NULL; workspace = gsl_integration_cquad_workspace_alloc(n); gsl_integration_cquad(&F, a, b, epsabs, epsrel, workspace, &result, &abserr, &nevals); std::cout<<"result: " << result << "\n"; std::cout<<"abserr: " << abserr << "\n"; std::cout<<"nevals: " << nevals << "\n"; gsl_integration_cquad_workspace_free(workspace); return 0; }