Re: [eigen] Fast method for computing Gramian Matrix

[ Thread Index | Date Index | More Archives ]

Is it necessary to do something like this to form the full dense matrix when using SelfAdjointEigenSolver? I noticed that it doesn't have a UpLo template parameter to tell it which triangle to use.



On 03/29/2012 06:55 PM, Gael Guennebaud wrote:
with a copy:

C = B.selfadjointView<Upper>();

or in-place using triangularView as a writing mask:

B.triangularView<StrictlyLower>() = B.adjoint();


On Fri, Mar 30, 2012 at 12:18 AM, Mark Borgerding<mark@xxxxxxxxxxxxxx>  wrote:
On 03/29/2012 01:18 AM, Douglas Bates wrote:

On Thu, Mar 29, 2012 at 3:50 AM, Mark Borgerding<mark@xxxxxxxxxxxxxx>

(sorry for hitting send too soon)

What is the fastest way to compute MM' when M is wide?
The diagonal elements are the norm-squared of the rows of M. The result

Is there an optimized method in Eigen or otherwise?

I have used the rankUpdate method for a selfadjoint view to calculate
this.  I assume that it is an efficient way to calculate the result
but I haven't done any timings.

MatrixXcd MMt(M.rows(), M.rows();

Thanks.  That cut the time to about 80% of the full matrix product.

Is there an elegant way to recover the full, square self-adjoint matrix from
a SelfAdjointView ?
I've been adding the SA view to its own adjoint and then subtracting the
original diagonal.

Mail converted by MHonArc 2.6.19+