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

Compile warnings for SparseLU under VC++2012

Tags: None
(comma "," separated)
christopher_batty
Registered Member
Posts
3
Karma
0
I'm getting some rather long-winded compiler warnings (see below) when working with sparse matrices, specifically the SparseLU solver, under 64-bit Windows. Is there a way to eliminate these? It's not a big deal, but a bit of a nuisance to see these every time I compile. (I'd prefer not have to turn down the warning level on the compiler.)

The code in questions looks like this:
Code: Select all
 Eigen::SparseLU< Eigen::SparseMatrix<double> > solver;
   solver.compute(FullMatrix);
   if(solver.info() != Eigen::Success) {
      std::cout << "Compute failed\n";
   }
   Eigen::VectorXd x(system_size);
   x = solver.solve(rhsVector);


It's the last line that tosses up the warning.

Here's the actual warning text.
c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/SparseLU/SparseLU.h(685): warning C4244: 'initializing' : conversion from '__int64' to 'int', possible loss of data
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/SparseLU/SparseLU.h(239) : see reference to function template instantiation 'void Eigen::SparseLUMatrixUReturnType<MatrixLType,MatrixUType>::solveInPlace<Derived>(Eigen::MatrixBase<Derived> &) const' being compiled
1> with
1> [
1> MatrixLType=Eigen::internal::MappedSuperNodalMatrix<double,int>,
1> MatrixUType=Eigen::MappedSparseMatrix<double,0,int>,
1> Derived=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/SparseLU/SparseLU.h(239) : see reference to function template instantiation 'void Eigen::SparseLUMatrixUReturnType<MatrixLType,MatrixUType>::solveInPlace<Derived>(Eigen::MatrixBase<Derived> &) const' being compiled
1> with
1> [
1> MatrixLType=Eigen::internal::MappedSuperNodalMatrix<double,int>,
1> MatrixUType=Eigen::MappedSparseMatrix<double,0,int>,
1> Derived=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/SparseLU/SparseLU.h(738) : see reference to function template instantiation 'bool Eigen::SparseLU<_MatrixType>::_solve<Derived,Derived>(const Eigen::MatrixBase<Derived> &,Eigen::MatrixBase<Derived> &) const' being compiled
1> with
1> [
1> _MatrixType=Eigen::SparseMatrix<double>,
1> Derived=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/SparseLU/SparseLU.h(738) : see reference to function template instantiation 'bool Eigen::SparseLU<_MatrixType>::_solve<Derived,Derived>(const Eigen::MatrixBase<Derived> &,Eigen::MatrixBase<Derived> &) const' being compiled
1> with
1> [
1> _MatrixType=Eigen::SparseMatrix<double>,
1> Derived=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/misc/Solve.h(51) : see reference to function template instantiation 'void Eigen::internal::solve_retval<DecompositionType,Rhs>::evalTo<Dest>(Dest &) const' being compiled
1> with
1> [
1> DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>,
1> Dest=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/misc/Solve.h(51) : see reference to function template instantiation 'void Eigen::internal::solve_retval<DecompositionType,Rhs>::evalTo<Dest>(Dest &) const' being compiled
1> with
1> [
1> DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>,
1> Dest=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/ReturnByValue.h(60) : see reference to function template instantiation 'void Eigen::internal::solve_retval_base<_DecompositionType,Rhs>::evalTo<Dest>(Dest &) const' being compiled
1> with
1> [
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>,
1> Dest=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/ReturnByValue.h(60) : see reference to function template instantiation 'void Eigen::internal::solve_retval_base<_DecompositionType,Rhs>::evalTo<Dest>(Dest &) const' being compiled
1> with
1> [
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>,
1> Dest=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/Assign.h(522) : see reference to function template instantiation 'void Eigen::ReturnByValue<Derived>::evalTo<ActualDerived>(Dest &) const' being compiled
1> with
1> [
1> Derived=Eigen::internal::solve_retval_base<Eigen::SparseLU<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>>,
1> ActualDerived=Eigen::Matrix<double,-1,1>,
1> Dest=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/Assign.h(522) : see reference to function template instantiation 'void Eigen::ReturnByValue<Derived>::evalTo<ActualDerived>(Dest &) const' being compiled
1> with
1> [
1> Derived=Eigen::internal::solve_retval_base<Eigen::SparseLU<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>>,
1> ActualDerived=Eigen::Matrix<double,-1,1>,
1> Dest=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/Assign.h(578) : see reference to function template instantiation 'Derived &Eigen::internal::assign_selector<Derived,OtherDerived,EvalBeforeAssigning>::evalTo<Derived,Eigen::ReturnByValue<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>>>(ActualDerived &,const ActualOtherDerived &)' being compiled
1> with
1> [
1> Derived=Eigen::Matrix<double,-1,1>,
1> OtherDerived=Eigen::internal::solve_retval_base<Eigen::SparseLU<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>>,
1> EvalBeforeAssigning=false,
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>,
1> ActualDerived=Eigen::Matrix<double,-1,1>,
1> ActualOtherDerived=Eigen::ReturnByValue<Eigen::internal::solve_retval_base<Eigen::SparseLU<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>>>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/Assign.h(578) : see reference to function template instantiation 'Derived &Eigen::internal::assign_selector<Derived,OtherDerived,EvalBeforeAssigning>::evalTo<Derived,Eigen::ReturnByValue<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>>>(ActualDerived &,const ActualOtherDerived &)' being compiled
1> with
1> [
1> Derived=Eigen::Matrix<double,-1,1>,
1> OtherDerived=Eigen::internal::solve_retval_base<Eigen::SparseLU<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>>,
1> EvalBeforeAssigning=false,
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>,
1> ActualDerived=Eigen::Matrix<double,-1,1>,
1> ActualOtherDerived=Eigen::ReturnByValue<Eigen::internal::solve_retval_base<Eigen::SparseLU<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>>>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/PlainObjectBase.h(421) : see reference to function template instantiation 'Derived &Eigen::MatrixBase<Derived>::operator =<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>>(const Eigen::ReturnByValue<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>> &)' being compiled
1> with
1> [
1> Derived=Eigen::Matrix<double,-1,1>,
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/PlainObjectBase.h(421) : see reference to function template instantiation 'Derived &Eigen::MatrixBase<Derived>::operator =<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>>(const Eigen::ReturnByValue<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>> &)' being compiled
1> with
1> [
1> Derived=Eigen::Matrix<double,-1,1>,
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/Matrix.h(190) : see reference to function template instantiation 'Derived &Eigen::PlainObjectBase<Derived>::operator =<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>>(const Eigen::ReturnByValue<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>> &)' being compiled
1> with
1> [
1> Derived=Eigen::Matrix<double,-1,1>,
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>
1> ]
1> c:\users\batty\documents\libraries\eigen-3.2.1\eigen\src/Core/Matrix.h(190) : see reference to function template instantiation 'Derived &Eigen::PlainObjectBase<Derived>::operator =<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>>(const Eigen::ReturnByValue<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>> &)' being compiled
1> with
1> [
1> Derived=Eigen::Matrix<double,-1,1>,
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>
1> ]
1> ..\..\fluidsim.cpp(1694) : see reference to function template instantiation 'Eigen::Matrix<_Scalar,_Rows,_Cols> &Eigen::Matrix<_Scalar,_Rows,_Cols>::operator =<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>>(const Eigen::ReturnByValue<Derived> &)' being compiled
1> with
1> [
1> _Scalar=double,
1> _Rows=-1,
1> _Cols=1,
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>,
1> Derived=Eigen::internal::solve_retval_base<Eigen::SparseLU<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>>
1> ]
1> ..\..\fluidsim.cpp(1694) : see reference to function template instantiation 'Eigen::Matrix<_Scalar,_Rows,_Cols> &Eigen::Matrix<_Scalar,_Rows,_Cols>::operator =<Eigen::internal::solve_retval_base<_DecompositionType,Rhs>>(const Eigen::ReturnByValue<Derived> &)' being compiled
1> with
1> [
1> _Scalar=double,
1> _Rows=-1,
1> _Cols=1,
1> _DecompositionType=Eigen::SparseLU<Eigen::SparseMatrix<double>>,
1> Rhs=Eigen::Matrix<double,-1,1>,
1> Derived=Eigen::internal::solve_retval_base<Eigen::SparseLU<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>>
1> ]
christopher_batty
Registered Member
Posts
3
Karma
0
So do I just have to ignore these warnings, or am I doing something stupid/wrong? This seems like a pretty standard use case.


Bookmarks



Who is online

Registered users: Baidu [Spider], Bing [Bot], Google [Bot], rblackwell