0

要获得正态分布的概率密度函数的值,您应该这样做

boost::math::normal nd;
std::cout << boost::math::pdf( nd, 0.0 );

例如。我想自己使用boost::bind并尝试过获取pdf功能

boost::function< double ( double ) > fpdf = boost::bind(
    boost::math::pdf, nd, _1 );

第一的。那没有用,显然是因为boost::math::pdf是模板化的。

然后我尝试了

boost::function< double ( double ) > fpdf = boost::bind(
    boost::math::pdf< boost::math::normal, double >, nd, _1 );

并得到了由大量模板化代码导致的典型 1000 条错误消息,其中之一是编译器错误 C2784

4

1 回答 1

1

似乎boost::bind无法推断出返回值类型。

尝试这个:

boost::function< double ( double ) > fpdf = boost::bind<double>(
  boost::math::pdf< boost::math::normal, double >, nd, _1 );
于 2013-10-22T14:23:56.590 回答