This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Eigen::SparseLU

Tags: None
(comma "," separated)
ljfljf
Registered Member
Posts
1
Karma
0

Eigen::SparseLU

Tue Oct 28, 2014 3:33 am
#include <iostream>
#include <Eigen/Eigen>
#include <Eigen/Sparselu>
#include <Eigen/OrderingMethods>
using namespace std;
using namespace Eigen;
typedef SparseMatrix<double, ColMajor, int> SpMat;
void main()
{
...
SparseLU<SpMat, SpMat::Index> solver;
//solver.compute(Sp); The compiler complained if i uncomment this line
}

Eigen_Tests.cpp
1>h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(377): error C2064: term does not evaluate to a function taking 2 arguments
1> h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(372) : while compiling class template member function 'void Eigen::SparseLU<SpMat,int>::analyzePattern(const Eigen::SparseMatrix<double,0,int> &)'
1> h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(115) : see reference to function template instantiation 'void Eigen::SparseLU<SpMat,int>::analyzePattern(const Eigen::SparseMatrix<double,0,int> &)' being compiled
1> g:\vs_project2013\eigen_tests\eigen_tests\eigen_tests.cpp(49) : see reference to class template instantiation 'Eigen::SparseLU<SpMat,int>' being compiled
1>h:\eigen\eigennew\eigen\src\core\ref.h(199): error C2993: 'bool (traits<Derived>::match<Derived>::MatchAtCompileTime)' : illegal type for non-type template parameter 'Condition'
1> with
1> [
1> Derived=Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>
1> ]
1> h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(582) : see reference to class template instantiation 'Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>' being compiled
1> h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(455) : while compiling class template member function 'void Eigen::SparseLU<SpMat,int>::factorize(const Eigen::SparseMatrix<double,0,int> &)'
1> h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(117) : see reference to function template instantiation 'void Eigen::SparseLU<SpMat,int>::factorize(const Eigen::SparseMatrix<double,0,int> &)' being compiled
1>h:\eigen\eigennew\eigen\src\core\ref.h(199): error C2039: 'type' : is not a member of 'Eigen::internal::enable_if'
1> h:\eigen\eigennew\eigen\src\core\util\meta.h(86) : see declaration of 'Eigen::internal::enable_if'
1> h:\eigen\eigennew\eigen\src\core\util\meta.h(86) : see declaration of 'Eigen::internal::enable_if'
1>h:\eigen\eigennew\eigen\src\core\ref.h(199): error C2143: syntax error : missing ',' before '*'
1>h:\eigen\eigennew\eigen\src\core\ref.h(199): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>h:\eigen\eigennew\eigen\src\core\ref.h(205): error C2275: 'Eigen::internal::traits<Derived>::match<Derived>::MatchAtCompileTime' : illegal use of this type as an expression
1> with
1> [
1> Derived=Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>
1> ]
1>h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(582): error C2664: 'int Eigen::internal::SparseLUImpl<double,int>::column_dfs(const Index,const Index,Eigen::Matrix<int,-1,1,0,-1,1> &,Index,Index &,Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>,Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>,Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::internal::LU_GlobalLU_t<Eigen::Matrix<int,-1,1,0,-1,1>,Eigen::Matrix<double,-1,1,0,-1,1>> &)' : cannot convert argument 6 from 'Eigen::VectorBlock<Derived,-1>' to 'Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>'
1> with
1> [
1> Index=int
1> ]
1> and
1> [
1> Derived=Eigen::Matrix<int,-1,1,0,-1,1>
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>h:\eigen\eigennew\eigen\src\core\ref.h(199): error C2993: 'bool (traits<Derived>::match<Derived>::MatchAtCompileTime)' : illegal type for non-type template parameter 'Condition'
1> with
1> [
1> Derived=Eigen::Ref<Eigen::Matrix<double,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>
1> ]
1> h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(593) : see reference to class template instantiation 'Eigen::Ref<Eigen::Matrix<double,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>' being compiled
1> h:\eigen\eigennew\eigen\src\core\util\meta.h(86) : see declaration of 'Eigen::internal::enable_if'
1> h:\eigen\eigennew\eigen\src\core\util\meta.h(86) : see declaration of 'Eigen::internal::enable_if'
1>h:\eigen\eigennew\eigen\src\core\ref.h(205): error C2275: 'Eigen::internal::traits<Derived>::match<Derived>::MatchAtCompileTime' : illegal use of this type as an expression
1> with
1> [
1> Derived=Eigen::Ref<Eigen::Matrix<double,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>
1> ]
1>h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(593): error C2664: 'int Eigen::internal::SparseLUImpl<double,int>::column_bmod(const Index,const Index,Eigen::Ref<Eigen::Matrix<double,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>,Eigen::Matrix<double,-1,1,0,-1,1> &,Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>,Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>,Index,Eigen::internal::LU_GlobalLU_t<Eigen::Matrix<int,-1,1,0,-1,1>,Eigen::Matrix<double,-1,1,0,-1,1>> &)' : cannot convert argument 3 from 'Eigen::VectorBlock<Derived,-1>' to 'Eigen::Ref<Eigen::Matrix<double,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>'
1> with
1> [
1> Index=int
1> ]
1> and
1> [
1> Derived=Eigen::Matrix<double,-1,1,0,-1,1>
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(603): error C2664: 'int Eigen::internal::SparseLUImpl<double,int>::copy_to_ucol(const Index,const Index,Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>,Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::Ref<Eigen::Matrix<double,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>,Eigen::internal::LU_GlobalLU_t<Eigen::Matrix<int,-1,1,0,-1,1>,Eigen::Matrix<double,-1,1,0,-1,1>> &)' : cannot convert argument 4 from 'Eigen::VectorBlock<Derived,-1>' to 'Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>'
1> with
1> [
1> Index=int
1> ]
1> and
1> [
1> Derived=Eigen::Matrix<int,-1,1,0,-1,1>
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>h:\eigen\eigennew\eigen\src\sparselu\sparselu.h(629): error C2664: 'void Eigen::internal::SparseLUImpl<double,int>::pruneL(const Index,const Eigen::Matrix<int,-1,1,0,-1,1> &,const Index,const Index,const Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>,Eigen::Matrix<int,-1,1,0,-1,1> &,Eigen::internal::LU_GlobalLU_t<Eigen::Matrix<int,-1,1,0,-1,1>,Eigen::Matrix<double,-1,1,0,-1,1>> &)' : cannot convert argument 6 from 'Eigen::VectorBlock<Derived,-1>' to 'Eigen::Ref<Eigen::Matrix<int,-1,1,0,-1,1>,0,Eigen::InnerStride<1>>'
1> with
1> [
1> Index=int
1> ]
1> and
1> [
1> Derived=Eigen::Matrix<int,-1,1,0,-1,1>
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS

Re: Eigen::SparseLU

Tue Oct 28, 2014 10:08 pm
Please look at the documentation of SparseLU: http://eigen.tuxfamily.org/dox-devel/cl ... rseLU.html

The second template argument is the ordering type with COLAMDOrdering<SpMat::Index> being the default.


Bookmarks



Who is online

Registered users: Bing [Bot], Evergrowing, Google [Bot]