c ++增加了cdf和pdf的开销

时间:2016-12-27 17:23:35

标签: c++ boost overhead cdf

我的问题是如何在使用boost :: math :: pdf和boost :: math :: cdf时减少开销?似乎每次我需要计算pdf或cdf时,在计算cdf / pdf之前,boost会经历几个语句。通过逐步调用pdf或cdf可以看到这一点。 (即boost :: math :: cdf(s,x);)当需要在模拟中访问这些函数时,这似乎非常低效(500,000 + = 5000抽奖* 100贷款)。提前致谢

代码的相关部分是: 主要执行部分:

for (int i = 0;i < NumSim;i++) {
    for (int j = 0;j < NumLoans;j++) {
        double Sum = 0;
        for (int T = 0;T < NumLoans;T++) {
                Sum = Sum + RndNumbers[i][T] * CholeskyMatrix[j][T];
        }
        CorrelatedRndNumbers[i][j] = Stats.NormCDF(Sum);
    }
}

.h文件

class clStats
{
public:
    clStats(void);
    ~clStats(void);

    double  NormCDF(double x);
    double  NormPDF(double x);

private:
    boost::math::normal s;

}; 

.cpp文件

clStats::clStats(void)
{
}


clStats::~clStats(void)
{
}
double  clStats::NormCDF(double x) {
      return boost::math::cdf(s,x);
}
double clStats::NormPDF(double x) {
    return boost::math::pdf(s,x);
}

0 个答案:

没有答案