SparseQR occasionally fails for under-determined systems
@chhtz
Submitted by Christoph HertzbergAssigned to Nobody
Link to original bugzilla bug (#899)
Version: 3.3 (current stable)
Description
Currently, e.g., this fails:
./test/sparseqr_1 s2
I debugged this and found that a column which is only slightly above the pivotThreshold was used.
In our test-suite this happens very rarely, but happens a lot more often, if you generate more matrices with more cols than rows (e.g., increase MaxCols in generate_sparse_rectangular_problem in test/sparseqr.cpp).
A solution could be to increase the default threshold, perhaps depending on the cols/rows ratio.
Another thing that very rarely fails is the
VERIFY_IS_EQUAL(dqr.rank(), solver.rank());
test, probably because dqr.rank() depends non-continuously on the DenseQR's threshold.
This could be robustified by checking dqr.rank() for a small interval of thresholds and check that solver.rank() is inside that interval.