Re: [eigen] SparseQR compilation error

[ Thread Index | Date Index | More Archives ]


as already observed on the forum, this error seems to show up only with ICC on Windows. No problem with ICC 11, 12, 13 on Linux. Moreover, I don't understand this issue as the base class "Eigen::BlockImpl<const Eigen::SparseMatrix<double, 0, int>, -1, 1, 1, Eigen::Sparse>" does has an operator= line 194 in src/SparseCore/SparseBlock.h. So I'm clueless here.


On Sat, Aug 10, 2013 at 11:23 AM, Pavel Holoborodko <pavel@xxxxxxxxxxxxxxx> wrote:

I am testing solvers for sparse systems.
Intel C++ compiler chokes on this code:

typedef Eigen::SparseMatrix< double > SparseDoubleMatrix;

SparseQR< SparseDoubleMatrix, COLAMDOrdering<int> > solver;

SparseDoubleMatrix A(10,10);

Compiler points to solver.compute(A) with error message:
class "Eigen::BlockImpl<const Eigen::SparseMatrix<double, 0, int>, -1, 1, 1, Eigen::Sparse>" has no member "operator="

Error persist for any OrderingType.

Interestingly, error only shows for SparseQR. If I use SparseLU - everything compiles fine.

Full template instantiation chain lead to error is in attachment.

Would appreciate any help & pointers how to solve the problem. 

Thank you,

Mail converted by MHonArc 2.6.19+