Re: [eigen] Fast method for computing Gramian Matrix |

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

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] Fast method for computing Gramian Matrix*From*: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>*Date*: Fri, 30 Mar 2012 23:50:44 +0200*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; bh=dfSjiV5IkUVOc0FWqqBI3tJkBuaOJw5OTvuOWZLTZ1o=; b=XDjErS4lC5BUoV37ZBce3Xy0I+ntJr06Q9ZpWVbJJMFvakCL+Tt8JLcC7l64awJsRK lnptfsSyPTGAGa59uurffjbuj2gzgMTZJt1DvBlwasAh3SgLbHqRwaZV2FsBSDkdu520 XaqTPjoDqbW82Ux5BR4cUiQUqGFsBMcM7tOpaQIk1wjFauiBOmuawMdNLcilR7Od+UPN XSi5dGtwdoaMpVQKh4pJUQ8IaO9VwOG2HNZuB0bdx6YJq4FvHfWZ5vN/yIPLfnI/aZu6 Dpg5tqAIfiGazMswGdF66X+OWLyzPHRiMKab+jzTD9qUXjvhlvhw4NMD8hOsdCbwyrZn 6yxw==

SelfAdjointEigenSolver uses the lower triangular part only. Unlike LLT or LDLT, it is not possible to choose to use the upper part. gael On Fri, Mar 30, 2012 at 11:20 PM, Jim Bosch <talljimbo@xxxxxxxxx> wrote: > 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. > > Thanks! > > Jim > > > > > 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(); >> >> cheers, >> gael >> >> 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> >>>> wrote: >>>>> >>>>> >>>>> (sorry for hitting send too soon) >>>>> >>>>> http://en.wikipedia.org/wiki/Gramian_matrix >>>>> >>>>> 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 >>>>> Hermitian. >>>>> >>>>> 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(); >>>> MMt.setZero().selfadjointView<Eigen::Upper>().rankUpdate(M); >>>> >>> 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. >>> >>> >>> >> >> > > >

**References**:**[eigen] Fast method for computing Gramian Matrix***From:*Mark Borgerding

**[eigen] Fast method for computing Gramian Matrix***From:*Mark Borgerding

**Re: [eigen] Fast method for computing Gramian Matrix***From:*Douglas Bates

**Re: [eigen] Fast method for computing Gramian Matrix***From:*Mark Borgerding

**Re: [eigen] Fast method for computing Gramian Matrix***From:*Gael Guennebaud

**Re: [eigen] Fast method for computing Gramian Matrix***From:*Jim Bosch

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] Fast method for computing Gramian Matrix** - Previous by thread:
**Re: [eigen] Fast method for computing Gramian Matrix**

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