how to solve the sparse equations trans(A)*A=trans(A)*b

how to solve the sparse equations trans(A)*A=trans(A)*b

Hi folks,

Here I met a problem of solving large sparse equations trans(A)*A*x=trans(A)*b,

I find there is only sparse_matrix*dense_matrix in mkl sparse blas interface. Is there any ideas for the problem ?

Many Thanks!

6 帖子 / 0 全新

I am not sure if the new versions of MKL provide this functionality but there is a nice tool kit called sparskit which is available here


We are planning to integrate several new interfaces for multiplying and adding two compressed sparse row matrices into coming MKL 10.1 Beta.

Althoughthe computation of A^T*Acan be broken into matrix-vector products and the neededmatrix can be computed with the help of MKL Sparse BLAS 2.

I've got a question regarding the representation of the result matrix A^T*A. Should the A^T*A be represented in the compressed sparse row format or it should be a dense? I'm asking because the A^T*A matrix can be a small matrixandthe least squaresproblem can be further solve by LAPACK routine for example?

Thanks in advance

All the best



It is very nice to hear that new sparse functions will be added in the new version of MKL.

In my case, A^T*A is still sparse matrix.

hi minifat,

I want to do the same problem. Did you get any solution for this? please inform me how to do this and is there any anlternative way is pesent? My matrix size is in lacs x lacs and hardly thousand of non zero values are present.

Viral said: Zitat:

My matrix size is in lacs x lacs

There is a species of insect, Metatachardia Laccifer, which emits a resin called "lac". The dead bodies of this insect, when dissolved by the billions in alcohol, yield shellac, used for imparting a fine finish to wooden furniture. "lakh" is a Hinglish word which means 100,000.

The widely used and freely available SPQR package (part of SuiteSparseQR) seems to be exactly what you ask for:


An alternative (not necessarily free) package, written in Fortran 77, is HSL MA49 :