Registered Member
|
Hi,
I'm a french student, and I have the following problem (http://hastebin.com/husetorebi.tex) Here's my code : SparseMatrix<double, ColMajor> A; SparseLU<SparseMatrix<double, ColMajor>, COLAMDOrdering<double> > solver3; solver3.analyzePattern(A); //solver3.factorize(A); And the error Erreur 76 error C2664: 'void Eigen::COLAMDOrdering<Index>::operator ()<Eigen::SparseMatrix<_Scalar>>(const MatrixType &,Eigen::PermutationMatrix<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType> &)' : impossible de convertir le paramètre 2 de 'Eigen::PermutationMatrix<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType>' en 'Eigen::PermutationMatrix<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType> &' c:\eigen\eigen\src\SparseLU\SparseLU.h 377 1 French means : "Unable to convert the param 2 of" Seems to be linking to this line in SparseLU.h : void SparseLU<MatrixType, OrderingType>::analyzePattern(const MatrixType& mat) { //TODO It is possible as in SuperLU to compute row and columns scaling vectors to equilibrate the matrix mat. OrderingType ord; ord(mat,m_perm_c); ///////////// THERE ! m_perm_c seems not to be the right type, or the argument at compile time Any idea ? Regards, Roch |
Registered Member
|
Problem Solved on the chat :
COLAMDOrdering<double> is wrong COLAMDOrdering<int> is good because the type is the one of indices in arrays. Now it compiles. Thanks |
Registered users: Baidu [Spider], Bing [Bot], Google [Bot]