改善特征性能 - 最佳实践

时间:2015-12-11 15:01:43

标签: c++ performance eigen

我有以下使用Eigen矩阵的代码:

template<class T>
T lfactorial(T x)
{
    return static_cast<T>(std::lgamma(x + 1));
};

void eigen1(const MatrixXd& m, const MatrixXd& a)
{
    MatrixXd W = a.unaryExpr(ptr_fun(lfactorial<double>));
    const auto sum = m.unaryExpr(ptr_fun(lfactorial<double>)).sum();
}

是否有更快的方法来计算矩阵W以及sum

在我的程序中,我必须通过将一元表达式应用于相同的输入矩阵来计算大量矩阵。最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

lgamma函数最近已经added to the Eigen API,因此将在下一版本的Eigen中本地支持。

下一个版本即将发布,同时您可以在http://bitbucket.org/eigen/eigen/get/3.3-beta1.tar.bz2下载测试版