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

BiCGSTAB problem vs2010

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

BiCGSTAB problem vs2010

Sun Aug 24, 2014 4:31 am
Hello everyone ;D

I've got this BiCGSTAB.h error while compiling CGAL's demo, I'm using current eigen (3.2.2) with Visual Studio 2010
here's the error log
Code: Select all
e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src/IterativeLinearSolvers/BiCGSTAB.h(42): error C2678: binary '*' : no operator found which takes a left-hand operand of type 'const Eigen::SparseMatrix<_Scalar>' (or there is no acceptable conversion)
2>          with
2>          [
2>              _Scalar=double
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(76): could be 'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const double &,const Eigen::SparseMatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(80): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const std::complex<double> &,const Eigen::SparseMatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(76): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::MatrixBase<Derived>::operator *(const double &,const Eigen::MatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::Matrix<double,-1,1>,
2>              Derived=Eigen::Matrix<double,-1,1>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(80): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::MatrixBase<Derived>::operator *(const std::complex<double> &,const Eigen::MatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::Matrix<double,-1,1>,
2>              Derived=Eigen::Matrix<double,-1,1>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(76): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::MatrixBase<Derived>::operator *(const double &,const Eigen::MatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::Block<Eigen::Matrix<double,-1,1>,-1,1,true>,
2>              Derived=Eigen::Block<Eigen::Matrix<double,-1,1>,-1,1,true>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(80): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::MatrixBase<Derived>::operator *(const std::complex<double> &,const Eigen::MatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::Block<Eigen::Matrix<double,-1,1>,-1,1,true>,
2>              Derived=Eigen::Block<Eigen::Matrix<double,-1,1>,-1,1,true>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(49): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const double &) const'
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(69): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const std::complex<double> &) const'
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          while trying to match the argument list '(const Eigen::SparseMatrix<_Scalar>, Eigen::Block<XprType,BlockRows,BlockCols,InnerPanel>)'
2>          with
2>          [
2>              _Scalar=double
2>          ]
2>          and
2>          [
2>              XprType=Eigen::Matrix<double,-1,1>,
2>              BlockRows=-1,
2>              BlockCols=1,
2>              InnerPanel=true
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src/IterativeLinearSolvers/BiCGSTAB.h(212) : see reference to function template instantiation 'bool Eigen::internal::bicgstab<Eigen::SparseMatrix<_Scalar>,Eigen::Block<XprType,BlockRows,BlockCols,InnerPanel>,Eigen::Block<Derived,-1,1,true>,Eigen::DiagonalPreconditioner<_Scalar>>(const MatrixType &,const Rhs &,Dest &,const Preconditioner &,int &,double &)' being compiled
2>          with
2>          [
2>              _Scalar=double,
2>              XprType=const Eigen::Matrix<double,-1,1>,
2>              BlockRows=-1,
2>              BlockCols=1,
2>              InnerPanel=true,
2>              Derived=Eigen::Matrix<double,-1,1>,
2>              MatrixType=Eigen::SparseMatrix<double>,
2>              Rhs=Eigen::Block<const Eigen::Matrix<double,-1,1>,-1,1,true>,
2>              Dest=Eigen::Block<Eigen::Matrix<double,-1,1>,-1,1,true>,
2>              Preconditioner=Eigen::DiagonalPreconditioner<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src/misc/SparseSolve.h(115) : see reference to function template instantiation 'void Eigen::BiCGSTAB<_MatrixType>::_solveWithGuess<T,Dest>(const Rhs &,Dest &) const' being compiled
2>          with
2>          [
2>              _MatrixType=Eigen::SparseMatrix<double>,
2>              T=Eigen::Matrix<double,-1,1>,
2>              Dest=Eigen::Matrix<double,-1,1>,
2>              Rhs=Eigen::Matrix<double,-1,1>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src/Core/ReturnByValue.h(60) : see reference to function template instantiation 'void Eigen::internal::solve_retval_with_guess<DecompositionType,Rhs,Guess>::evalTo<Dest>(Dest &) const' being compiled
2>          with
2>          [
2>              DecompositionType=Eigen::BiCGSTAB<Eigen::SparseMatrix<double>>,
2>              Rhs=Eigen::Matrix<double,-1,1>,
2>              Guess=CGAL::Eigen_solver_traits<Eigen::BiCGSTAB<Eigen::SparseMatrix<double>>>::Vector,
2>              Dest=Eigen::Matrix<double,-1,1>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src/Core/Matrix.h(296) : see reference to function template instantiation 'void Eigen::ReturnByValue<Derived>::evalTo<Eigen::Matrix<_Scalar,_Rows,_Cols>>(Dest &) const' being compiled
2>          with
2>          [
2>              Derived=Eigen::internal::solve_retval_with_guess<Eigen::BiCGSTAB<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>,CGAL::Eigen_solver_traits<Eigen::BiCGSTAB<Eigen::SparseMatrix<double>>>::Vector>,
2>              _Scalar=double,
2>              _Rows=-1,
2>              _Cols=1,
2>              Dest=Eigen::Matrix<double,-1,1>
2>          ]
2>          E:\workspace\cgal\include\CGAL/Eigen_solver_traits.h(140) : see reference to function template instantiation 'Eigen::Matrix<_Scalar,_Rows,_Cols>::Matrix<Eigen::internal::solve_retval_with_guess<DecompositionType,Rhs,Guess>>(const Eigen::ReturnByValue<Derived> &)' being compiled
2>          with
2>          [
2>              _Scalar=double,
2>              _Rows=-1,
2>              _Cols=1,
2>              DecompositionType=Eigen::BiCGSTAB<Eigen::SparseMatrix<double>>,
2>              Rhs=Eigen::Matrix<double,-1,1>,
2>              Guess=CGAL::Eigen_solver_traits<Eigen::BiCGSTAB<Eigen::SparseMatrix<double>>>::Vector,
2>              Derived=Eigen::internal::solve_retval_with_guess<Eigen::BiCGSTAB<Eigen::SparseMatrix<double>>,Eigen::Matrix<double,-1,1>,CGAL::Eigen_solver_traits<Eigen::BiCGSTAB<Eigen::SparseMatrix<double>>>::Vector>
2>          ]
2>e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src/IterativeLinearSolvers/BiCGSTAB.h(86): error C2678: binary '*' : no operator found which takes a left-hand operand of type 'const Eigen::SparseMatrix<_Scalar>' (or there is no acceptable conversion)
2>          with
2>          [
2>              _Scalar=double
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(76): could be 'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const double &,const Eigen::SparseMatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(80): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const std::complex<double> &,const Eigen::SparseMatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(76): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::MatrixBase<Derived>::operator *(const double &,const Eigen::MatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::Matrix<double,-1,1>,
2>              Derived=Eigen::Matrix<double,-1,1>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(80): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::MatrixBase<Derived>::operator *(const std::complex<double> &,const Eigen::MatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::Matrix<double,-1,1>,
2>              Derived=Eigen::Matrix<double,-1,1>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(49): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const double &) const'
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(69): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const std::complex<double> &) const'
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          while trying to match the argument list '(const Eigen::SparseMatrix<_Scalar>, VectorType)'
2>          with
2>          [
2>              _Scalar=double
2>          ]
2>e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src/IterativeLinearSolvers/BiCGSTAB.h(92): error C2678: binary '*' : no operator found which takes a left-hand operand of type 'const Eigen::SparseMatrix<_Scalar>' (or there is no acceptable conversion)
2>          with
2>          [
2>              _Scalar=double
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(76): could be 'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const double &,const Eigen::SparseMatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(80): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const std::complex<double> &,const Eigen::SparseMatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(76): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::MatrixBase<Derived>::operator *(const double &,const Eigen::MatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::Matrix<double,-1,1>,
2>              Derived=Eigen::Matrix<double,-1,1>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(80): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::MatrixBase<Derived>::operator *(const std::complex<double> &,const Eigen::MatrixBase<Derived> &)' [found using argument-dependent lookup]
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::Matrix<double,-1,1>,
2>              Derived=Eigen::Matrix<double,-1,1>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(49): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const double &) const'
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple_op<double>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          e:\lib\eigen-eigen-1306d75b4a21\eigen-eigen-1306d75b4a21\eigen\src\sparsecore\../plugins/CommonCwiseUnaryOps.h(69): or       'const Eigen::CwiseUnaryOp<UnaryOp,XprType> Eigen::SparseMatrixBase<Derived>::operator *(const std::complex<double> &) const'
2>          with
2>          [
2>              UnaryOp=Eigen::internal::scalar_multiple2_op<double,std::complex<double>>,
2>              XprType=const Eigen::SparseMatrix<double>,
2>              Derived=Eigen::SparseMatrix<double>
2>          ]
2>          while trying to match the argument list '(const Eigen::SparseMatrix<_Scalar>, VectorType)'
2>          with
2>          [
2>              _Scalar=double
2>          ]
2>
2>Build FAILED.


what should I do?
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS

Re: BiCGSTAB problem vs2010

Tue Aug 26, 2014 8:16 am
What about the latest revision: https://bitbucket.org/eigen/eigen/get/3.2.zip ?
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS

Re: BiCGSTAB problem vs2010

Tue Aug 26, 2014 11:01 am
For the record, this issue seems to be related to this bug entry: http://eigen.tuxfamily.org/bz/show_bug.cgi?id=857


Bookmarks



Who is online

Registered users: Bing [Bot], claydoh, Google [Bot], rblackwell, Yahoo [Bot]