使用Eigen Library展开模板和代码

时间:2015-09-20 15:13:57

标签: c++ eigen

我在学校有这个守则:

#include <Eigen/Dense>
template<<typename Scalar>
void Typedemo(unsigend int dim)
{
using dynMat_t =
Eigen::Matrix<Scalar,Eigen::Dynamic,Eigen::Dynamic>; 
using dynColVec_t= Eigen::Matrix<Scalar,Eigen::Dynamic,1>; 
using dynRowVec_t = Eigen::Matrix<Scalar,1,Eigen::Dynamic>; 
using index_t = typename dynMat_t::Index;
using entry_t = typename dynMat_t::Scalar;

dynColVec_t colvec(dim);
dynRowVec_t rowvec(dim); 

for (index_t i=0; i< colvec.size(); ++i) colvec(i) = (Scalar)i; 
for (index_t i=0; i< rowvec.size(); ++i) rowvec(i) = (Scalar)1/(i+1);
dynMat_t vecprod = colvec*rowvec;
const int nrows = vecprod.rows();
const int ncols = vecprod.cols(); 
}

我认为Scalar是模板类型的名称(可能被实例化为double或int),而dynMat_t是Matrixtype,如MatrixX“Scalar”。现在我挣扎着dynMat_t::Scalar的意思,这是矩阵/向量条目的value_type的描述,为什么你需要类型entry_t

我看不出这段代码的意思。

非常感谢您的帮助。

0 个答案:

没有答案