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

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

Portrait de minifat

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 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de Tabrez Ali

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

Portrait de Sergey Kuznetsov (Intel)


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


Portrait de minifat


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.

Portrait de Viral Dave

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.

Portrait de mecej4

Viral said: Quote:

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 :

Connectez-vous pour laisser un commentaire.