我的不精确多变量正常密度

时间:2017-07-03 00:21:22

标签: c++ eigen probability-density

这个功能有什么明显的可怕吗?它偶尔会评估为0.0,而它应该给我一个非常小的数字。

#include <Eigen/Core>

typedef Eigen::Matrix< long double, Eigen::Dynamic, 1              > Vec;
typedef Eigen::Matrix< long double, Eigen::Dynamic, Eigen::Dynamic > Mat;

long double evalMultivNorm(const Vec &x, const Vec &meanVec, const Mat &covMat)
{
    long double quadform  = (x - meanVec).transpose() * covMat.inverse() * (x-meanVec);
    long double normConst = pow(inv_sqrt_2pi, covMat.rows()) * pow(covMat.determinant(), -.5);
    return normConst * exp(-.5* quadform);
}

0 个答案:

没有答案