Re: [eigen] Re: SparseQR crashes on rectangular matrix

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


I have tested m==n case with the latest version of Eigen from the repository.
No errors. Sorry (must always sync my working rep).

I. 
However out-of-bounds errors still appear (m==n). 
Simple test program: http://holoborodko.com/pavel/downloads/eigen_test.cpp
Out-of-bounds report: http://holoborodko.com/pavel/downloads/sparseqr%20-%20outofbounds.txt

Basically such errors detected at the following two lines:

solver.compute(A);
....
DenseMatrixType X = solver.solve(B);
 
Compiled & diagnosed by ICC 13.1 in Debug x64 build with /Qcheck-pointers:rw

II.
Question about SparseMatrix & custom scalars.
In my recent commits to Eigen I have fixed some issues with non-POD scalars support.
However there are some parts in Sparse module which are still non-compatible with non-POD scalars.

AmbiVector in particular. Its implementation has pretty convoluted logic, I am not able to fix it in short time.
Here is more details: https://bitbucket.org/eigen/eigen/pull-request/32/fixes-for-sparsematrix-to-support-non-pod/diff

Would appreciate any help from core developers in this regard.   

III.
I believe case of m < n is very important to support in SparseQR. 
Dense QR has such support. Octave's SparseQR also has such support.

I will provide any help in this regard.

Thank you,
Pavel.



On Thu, Sep 12, 2013 at 1:10 AM, Pavel Holoborodko <pavel@xxxxxxxxxxxxxxx> wrote:
QR is useful for analysis and solution of underdetermined systems too. 
Here is chapter from Higham's book: http://epubs.siam.org/doi/abs/10.1137/1.9780898718027.ch21
Same approach referenced in Golub & Loan (ch. 5.7.2).

Will test m == n again and will let you know the details tomorrow (now is pretty late in Tokyo). 
Btw, Intel compiler bounds checker detects many out-bounds reads & writes in SparseQR even for m > n.
Whereas no such issues are detected for sparse LU & LDLt.

It is again ICC 13.1 & MSVC combo. 




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/