Skip to content

SparseQR::factorize is slow on particular matrix

Summary

Calling SparseQR::factorize() takes over 5 minutes computng the QR factorization on the given matrix.

Environment

  • Operating System : Linux
  • Architecture : x64
  • Eigen Version : 3.4.0
  • Compiler Version : Gcc 11.3.0
  • Compile Flags :
  • Vector Extension :

Minimal Example

#include <unsupported/Eigen/SparseExtra>
#include <Eigen/SparseQR>


auto main() -> int{
  Eigen::SparseMatrix<double> matrix;
  Eigen::loadMarket(matrix, "matrix");

  Eigen::SparseQR<decltype(matrix), Eigen::COLAMDOrdering<int>> qr;
  qr.analyzePattern(matrix);
  qr.factorize(matrix);
}

Here is the matrix

Steps to reproduce

  1. compile the above code and copy the matrix file next to it.
  2. run the code

What is the current bug behavior?

The code never finishes

What is the expected correct behavior?

The code should finish within reasonable time and compute the sparse qr decomposition.

Relevant logs

Edited by Rasmus Munk Larsen