注意:我已经问过这个问题,但由于“太宽泛”而没有太多解释而被关闭。我看不出这个问题如何更具体(它针对特定用途处理特定库的特定类......),所以我认为这类似于“版主的错误”并再次询问。 ..
我想在稀疏矩阵上使用 Eigen 执行稀疏矩阵/矩阵乘法。这些矩阵已经在我正在处理的标准 3 数组压缩行/列存储中的代码中定义。
然后我想使用 Eigen::SparseMatrix 类作为这些数组的包装器(假设内部 Eigen 使用这样的 3 数组存储)以避免在内存中重复矩阵。我想做类似以下的事情:
Eigen::SparseMatrix smin0(n,m);
Eigen::SparseMatrix smin1(m,l);
Eigen::SparseMatrix smout(n,l);
smin0.set_innerPtr(myInnerPtr0);
smin0.set_outerPtr(myOuterPtr0);
smin0.set_valuePtr(myValuePtr0);
smin1.set_innerPtr(myInnerPtr1);
smin1.set_outerPtr(myOuterPtr1);
smin1.set_valuePtr(myValuePtr1);
smout=smin0*smin1;
int *myOutInnerPtr=smout.innerIndexPtr();
int *myOutOuterPtr=smout.outerIndexPtr();
double *myOutValuePtr=smout.valuePtr();
有可能吗?如果可以,怎么做?
非常感谢