我在下面的一段代碼中遇到問題,經過一些研究,我在單獨的一行中單獨列出了問題,但不知道現在如何解決該問題。Eigen稀疏LU解算器返回值
typedef double ComplexType;
typedef std::complex<ComplexType> Complex;
typedef Eigen::SparseMatrix<Complex, Eigen::ColMajor, long long> SparseMatrixT;
typedef Eigen::SparseVector<Complex, Eigen::ColMajor, long long> SparseVectorC;
typedef Eigen::SparseLU<SparseMatrixT, Eigen::COLAMDOrdering< long long>> SolverT;
SparseVectorC Solve(const Eigen::Ref<const SparseVectorC>& Rhs)
{
auto _Result = m_LU.solve(Rhs); //SolverT m_LU; defined and "prepared" elsewhere
SparseVectorC Result = _Result; // cause error C2512
return Result;
}
錯誤顯示
\固有\ SRC \芯\ solve.h(125):錯誤C2512: 「本徵::內部::評價者<徵::斯帕塞夫克託<複雜, 0,長長>>':無
適當的默認構造函數我怎樣才能得到的結果稀疏,密集向量(因爲它不應該是不同於在RHS稀疏)。矩陣大小(可能)很大,所以額外的副本會令人不快。
變量_Result顯然是稀疏的,但是對稀疏或密集向量(使用可用的方法toDense()可能會生成副本)都無效(無論是否投射)。