[eigen] Re: efficient trace of product of symmetric matrices |

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

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: [eigen] Re: efficient trace of product of symmetric matrices*From*: Patrick <pat05.mlst@xxxxxxxxx>*Date*: Mon, 20 Feb 2012 22:28:53 +0000*Authentication-results*: mr.google.com; spf=pass (google.com: domain of pat05.mlst@xxxxxxxxx designates 10.68.225.164 as permitted sender) smtp.mail=pat05.mlst@xxxxxxxxx; dkim=pass header.i=pat05.mlst@xxxxxxxxx*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=4UNYvwlhG4h75AN9IiW19PGcYdTrYCicVRy9mDm87Eg=; b=j+M4pYAzJxYF6Dgu3p6NQto88ekurEwqGLWHMOG23mVoBuPkxXOL+cfTO/mZNklvHI YCP1k0HzZ7QmSaV7Pl7Fq302Sv/v7EEvH55n6RffkrGPXfmUSAlAr4syGiKoH7yffP+1 3vGk32IrrfnxOWj6kBmTC4T/nvZS26zkQ1O3c=

Hi everyone,

I'm wondering whether it is currently possible to compute

tr(A*B), where A \in Sym(n,n), B \in Sym(n,n)

efficiently using the development branch of Eigen3.

Since A and B are symmetric and

tr(A*B) = sum_ij a_ij * b_ij,

the best way I can think of doing this is

double tr=0;

for(size_t i=0; i<A.rows(); ++i)

{

tr += A(i,i) * B(i,i);

for(size_t j=0; j<i; ++j)

tr += 2 * A(i,j)*B(i,j);

}

I noticed that the triangularView methods do not expose the array

interface, so am I correct in assuming I cannot vectorise this using

triangular views?

Furthermore, when trying to make a matrix symmetric by calling

A.triangularView<StrictlyUpper>() = A.triangularView<StrictlyLower>(),

I noticed that no assignment was taking place, i.e. the matrix A remained as is.

Is this the expected behaviour?

Thanks.

Kind regards,

Patrick

**Follow-Ups**:**Re: [eigen] Re: efficient trace of product of symmetric matrices***From:*Gael Guennebaud

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] Owls** - Next by Date:
**Re: [eigen] Re: efficient trace of product of symmetric matrices** - Previous by thread:
**Re: [eigen] Creating a EulerAngle object** - Next by thread:
**Re: [eigen] Re: efficient trace of product of symmetric matrices**

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