Мой вопрос заключается в том, как уменьшить издержки при использовании boost :: math :: pdf и boost :: math :: cdf? Кажется, что каждый раз, когда мне нужно вычислить pdf или cdf, boost проходит через несколько операторов, прежде чем вычисляется cdf / pdf. Это можно увидеть, выполнив вызов 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);
}
}
.ч файл
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);
}
Задача ещё не решена.
Других решений пока нет …