C++ 使用Boost';s pdf函数

C++ 使用Boost';s pdf函数,c++,boost,C++,Boost,这是个愚蠢的问题,但我花了太多时间在网上寻找答案,却没有成功。 我有一个boost::random::gamma_分布对象和一个浮点值,我想计算pdf 我应该包含哪些Boost模块,以及如何调用计算gamma pdf的函数 谢谢我已经浏览了随机/gamma_分布。hpp并且没有返回pdf的方法,因此gamma_分布的实例对您没有帮助。但是,提供了实现说明和公式(底部的表格),用于使用库函数gamma_p_导数定义pdf 现在,您可以自己组装一个pdf函数: #include <boost/

这是个愚蠢的问题,但我花了太多时间在网上寻找答案,却没有成功。 我有一个boost::random::gamma_分布对象和一个浮点值,我想计算pdf

我应该包含哪些Boost模块,以及如何调用计算gamma pdf的函数


谢谢

我已经浏览了
随机/gamma_分布。hpp
并且没有返回pdf的方法,因此gamma_分布的实例对您没有帮助。但是,提供了实现说明和公式(底部的表格),用于使用库函数
gamma_p_导数
定义pdf

现在,您可以自己组装一个pdf函数:

#include <boost/math/special_functions/gamma.hpp>

// Makes sense for k, theta, x greater than 0.
double gamma_pdf(double k, double theta, double x) {
    return boost::math::gamma_p_derivative(k, x / theta) / theta;
}
#包括
//对于k,θ,x大于0是有意义的。
双伽马(双k,双θ,双x){
返回升压::数学::伽马p_导数(k,x/θ)/θ;
}
基本上就是这样。由于
gamma.hpp
包含所需的定义,因此在编译过程中不必链接任何其他库。

有一个非成员函数

#include <iostream>
#include <boost/math/distributions/gamma.hpp>

int main() {
    double shape = 2;
    double scale = 1;
    boost::math::gamma_distribution<double> d(shape, scale);
    std::cout << pdf(d, .5) << std::endl;
}
#包括
#包括
int main(){
双形=2;
双刻度=1;
数学:伽马分布d(形状、比例);
标准::cout