BOOSTで数値積分パッケージを使用していました(以下のコードを参照)。誰でも次の意味を説明できます。
double operator()(double x) {return x/std::log(x);}
この「operator()(double x)」とは何ですか??
quadrature::adaptive()(f(), 0., 1., answer, error_estimate);
ここで「f()」とは何ですか?
#include <boost/numeric/quadrature/adaptive.hpp>
#include <boost/numeric/quadrature/kronrodgauss.hpp>
#include <iostream>
#include <cmath>
namespace quadrature=boost::numeric::quadrature;
struct f
{
double operator()(double x) const { return x/std::log(x); }
};
int main()
{
double answer, error_estimate;
// integrate x/log(x) on [0,1]
quadrature::adaptive()(f(), 0., 1., answer, error_estimate);
std::cout << "integtral(x/log(x)) on [0,1] is " << answer
<< " with error estimate " << error_estimate
<< std::endl;
return EXIT_SUCCESS;
}