要获得正态分布的概率密度函数值,您应该这样做
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 条由大量模板化代码产生的错误消息,其中之一是 compiler error C2784 .
最佳答案
boost::bind
似乎无法推断返回值类型。
试试这个:
boost::function< double ( double ) > fpdf = boost::bind<double>(
boost::math::pdf< boost::math::normal, double >, nd, _1 );
关于c++ - 如何 boost::bind 到 boost::math::pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19520016/