Thank you again for the patch. Indeed, it fixes compilation error for the multiplication:
However I compiler gives similar error, when I try to get solution from the solver. Please see the code:
1>U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/Core/Block.h(110): error : class "Eigen::BlockImpl<const Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, -1, -1, 0, Eigen::Sparse>" has no member "operator="
1> EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)
1> ^
1> detected during:
1> instantiation of class "Eigen::Block<XprType, BlockRows, BlockCols, InnerPanel> [with XprType=const Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, BlockRows=-1, BlockCols=-1, InnerPanel=0]" at line 163 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/SparseCore/../plugins/BlockMethods.h"
1> instantiation of "const Eigen::Block<const Derived, -1, -1, 0> Eigen::SparseMatrixBase<Derived>::topLeftCorner(Eigen::SparseMatrixBase<Derived>::Index, Eigen::SparseMatrixBase<Derived>::Index) const [with Derived=Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>]" at line 164 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/SparseQR/SparseQR.h"
1> instantiation of "bool Eigen::SparseQR<_MatrixType, _OrderingType>::_solve(const Eigen::MatrixBase<Rhs> &, Eigen::MatrixBase<Dest> &) const [with _MatrixType=Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, _OrderingType=Eigen::COLAMDOrdering<Index={int}>, Rhs=Eigen::Matrix<double, -1, 1, 0, -1, 1>, Dest=Eigen::Matrix<double, -1, 1, 0, -1, 1>]" at line 531 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/SparseQR/SparseQR.h"
1> instantiation of "void Eigen::internal::solve_retval<Eigen::SparseQR<_MatrixType, OrderingType>, Rhs>::evalTo(Dest &) const [with _MatrixType=Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, OrderingType=Eigen::COLAMDOrdering<Index={int}>, Rhs=Eigen::Matrix<double, -1, 1, 0, -1, 1>, Dest=Eigen::Matrix<double, -1, 1, 0, -1, 1>]" at line 51 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/misc/Solve.h"
1> instantiation of "void Eigen::internal::solve_retval_base<_DecompositionType, Rhs>::evalTo(Dest &) const [with _DecompositionType=Eigen::SparseQR<Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, Eigen::COLAMDOrdering<Index={int}>>, Rhs=Eigen::Matrix<double, -1, 1, 0, -1, 1>, Dest=Eigen::Matrix<double, -1, 1, 0, -1, 1>]" at line 61 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/Core/ReturnByValue.h"
1> instantiation of "void Eigen::ReturnByValue<Derived>::evalTo(Dest &) const [with Derived=Eigen::internal::solve_retval_base<Eigen::SparseQR<Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, Eigen::COLAMDOrdering<Index={int}>>, Eigen::Matrix<double, -1, 1, 0, -1, 1>>, Dest=Eigen::Matrix<double, -1, 1, 0, -1, 1>]" at line 522 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/Core/Assign.h"
1> instantiation of "Derived &Eigen::internal::assign_selector<Derived, OtherDerived, 0, 0>::evalTo(ActualDerived &, const ActualOtherDerived &) [with Derived=Eigen::Matrix<double, -1, 1, 0, -1, 1>, OtherDerived=Eigen::internal::solve_retval_base<Eigen::SparseQR<Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, Eigen::COLAMDOrdering<Index={int}>>, Eigen::Matrix<double, -1, 1, 0, -1, 1>>, ActualDerived=Eigen::Matrix<double, -1, 1, 0, -1, 1>,
1> ActualOtherDerived=Eigen::ReturnByValue<Eigen::internal::solve_retval_base<Eigen::SparseQR<Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, Eigen::COLAMDOrdering<Index={int}>>, Eigen::Matrix<double, -1, 1, 0, -1, 1>>>]" at line 578 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/Core/Assign.h"
1> instantiation of "Derived &Eigen::MatrixBase<Derived>::operator=(const Eigen::ReturnByValue<OtherDerived> &) [with Derived=Eigen::Matrix<double, -1, 1, 0, -1, 1>, OtherDerived=Eigen::internal::solve_retval_base<Eigen::SparseQR<Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, Eigen::COLAMDOrdering<Index={int}>>, Eigen::Matrix<double, -1, 1, 0, -1, 1>>]" at line 418 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/Core/PlainObjectBase..h"
1> instantiation of "Derived &Eigen::PlainObjectBase<Derived>::operator=(const Eigen::ReturnByValue<OtherDerived> &) [with Derived=Eigen::Matrix<double, -1, 1, 0, -1, 1>, OtherDerived=Eigen::internal::solve_retval_base<Eigen::SparseQR<Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, Eigen::COLAMDOrdering<Index={int}>>, Eigen::Matrix<double, -1, 1, 0, -1, 1>>]" at line 190 of "U:\Development\trunk\libs\eigen-mp-3.2\Eigen\src/Core/Matrix.h"
1> instantiation of "Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> &Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::operator=(const Eigen::ReturnByValue<OtherDerived> &) [with _Scalar=double, _Rows=-1, _Cols=1, _Options=0, _MaxRows=-1, _MaxCols=1, OtherDerived=Eigen::internal::solve_retval_base<Eigen::SparseQR<Eigen::SparseMatrix<Scalar={double}, 0, Index={int}>, Eigen::COLAMDOrdering<Index={int}>>, Eigen::Matrix<double, -1, 1, 0, -1, 1>>]" at
1> line 296 of "eigen_test.cpp"