On Tue, Nov 17, 2009 at 01:09:24PM -0500, Dominique Orban wrote:
Thanks for the reply
>
> If you really need A*A^T explicitly, I suggest building A^T and then using
> dot().
>
I think we do. Our matrices are ~ 10 Million square, so A^T not
cheap doing it either explictly as A[i,j]=A[j,i] (ouch) or as
A^T = spmatrix.dot(A,I)
> Often you don't need this matrix explicitly though (e.g., it is easy
> to build matrix-vector products with A*A^T without assembling this matrix).
> Similarly, if you need to factorize it to solve A*A^T x = b, you can solve
> the equivalent system
>
> [ I A^T ] [x] [ 0]
> [ A 0 ] [y] = [-b]
>
> This last system is also much sparser, and it is symmetric. It is indefinite
> though.
Our application is more statistical (correlation) - we're not trying to solve/invert.
Regards.
--
Fergus Gallagher
"I take my children everywhere, but they always find their way back
home." - Robert Orben
|