diff options
-rw-r--r-- | Eigen/src/SPQRSupport/SuiteSparseQRSupport.h | 7 | ||||
-rw-r--r-- | test/spqr_support.cpp | 4 |
2 files changed, 6 insertions, 5 deletions
diff --git a/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h index d9c3113e7..953d57c9d 100644 --- a/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +++ b/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h @@ -119,16 +119,16 @@ class SPQR : public SparseSolverBase<SPQR<_MatrixType> > max2Norm = RealScalar(1); pivotThreshold = 20 * (mat.rows() + mat.cols()) * max2Norm * NumTraits<RealScalar>::epsilon(); } - cholmod_sparse A; A = viewAsCholmod(mat); + m_rows = matrix.rows(); Index col = matrix.cols(); m_rank = SuiteSparseQR<Scalar>(m_ordering, pivotThreshold, col, &A, &m_cR, &m_E, &m_H, &m_HPinv, &m_HTau, &m_cc); if (!m_cR) { - m_info = NumericalIssue; + m_info = NumericalIssue; m_isInitialized = false; return; } @@ -139,7 +139,7 @@ class SPQR : public SparseSolverBase<SPQR<_MatrixType> > /** * Get the number of rows of the input matrix and the Q matrix */ - inline Index rows() const {return m_cR->nrow; } + inline Index rows() const {return m_rows; } /** * Get the number of columns of the input matrix. @@ -245,6 +245,7 @@ class SPQR : public SparseSolverBase<SPQR<_MatrixType> > mutable Index m_rank; // The rank of the matrix mutable cholmod_common m_cc; // Workspace and parameters bool m_useDefaultThreshold; // Use default threshold + Index m_rows; template<typename ,typename > friend struct SPQR_QProduct; }; diff --git a/test/spqr_support.cpp b/test/spqr_support.cpp index baa25a0c2..81e63b6a5 100644 --- a/test/spqr_support.cpp +++ b/test/spqr_support.cpp @@ -20,8 +20,8 @@ int generate_sparse_rectangular_problem(MatrixType& A, DenseMat& dA, int maxRows int cols = internal::random<int>(1,rows); double density = (std::max)(8./(rows*cols), 0.01); - A.resize(rows,rows); - dA.resize(rows,rows); + A.resize(rows,cols); + dA.resize(rows,cols); initSparse<Scalar>(density, dA, A,ForceNonZeroDiag); A.makeCompressed(); return rows; |