Re: [eigen] Generalised Eigenvector Problem using the QZ algorithm. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Generalised Eigenvector Problem using the QZ algorithm.
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Thu, 11 Jun 2009 13:41:03 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=e7yzjXkQdvc3OhjAOLzLFir6zwC68Gmz3jYObxf1JgY=; b=vLYRKSNqy5X3BazSFwYkL4OZglbX0ZZZeGpwHrtDe3U5QaG065cPFdsHuTx+SLV+tE lZ87C0RQZP4ZQ35XJYT9kGkNZ3RjNErSkhptC36QPuUhc53c9+I+E6saKY0Q14CJcSNn VRd0KkqH2VTFmdN2ap59npYPGpa/DcmcZ07bY=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=FjaJRmfiqDPXNZkN3m/2T4La+odmR84WoZ5S/NnZXxd2HkTA0OBfxAk7z33kEFm0TV uczUosee78ZAse6niiZYL2uuMLSgWIWns0OnVJ4LezVOcdAEI+FRtonzUHAovEAzlCrk DqlZJu0//vDW2VRtYSFAD+EWUPPZNQ9/01H/8=
Hi,
On Thu, Jun 11, 2009 at 12:35 PM, Tim Hutt<tdhutt@xxxxxxxxx> wrote:
> Hi,
>
> I'm trying to implement the ellipse fitting algorithm from
>
> http://homepages.inf.ed.ac.uk/cgi/rbf/CVONLINE/entries.pl?TAG384
>
> in C++ with eigen2. The algorithm relies on being able to solve the
> generalised eigenvector problem:
>
> Ax = lambda Bx
>
> (See: http://www.cs.utk.edu/~dongarra/etemplates/node282.html )
>
> In my case A and B are both rank-deficient so I can't invert them.
> Apparently the normal way to solve this is using the QZ algorithm,
> which is apparently similar to the QR algorithm.
that's a pity that B is not positive definite ;) So indeed, in that
case you will have to work a bit.
However, note that in your case the matrix A is selfadjoint, so
perhaps there exist a faster method than the QZ algorithm tailored for
the generalized selfadjoint eigenvalue problem with B non invertible ?
> The LAPACK routine is (I think) DGGEV or DGGEVX (who names these things?)
I think that in fortran 77 you are limited to 6 letters for the name
of the functions :( So here you have:
D = double (f for float, c and z for complexes)
G = Generalized
G = General (there is also H for Hermitian)
E = Eigen
V = Vector
> Any chance anyone could port the LAPACK code (or the CLAPACK code) to
> eigen? I could probably do it but I'm guessing there's someone out
> there who is familiar with LAPACK's crazy naming scheme and eigen who
> could do it a lot faster.
I don't think anybody will have time to do that soon.
gael.
> In return I have access to many journals. Papers on request. Or beer
> if you live in London. :-)
>
> Tim
>
>
>