octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A plea for gsvd


From: Pascal Dupuis
Subject: Re: A plea for gsvd
Date: Tue, 25 Apr 2006 14:55:12 +0200
User-agent: Mutt/1.5.11+cvs20060403

On Sat, Apr 22, 2006 at 06:33:07PM +0200, David Bateman wrote:

> There were a couple of very simple bugs in your code that I fixed (size
> of arg to dggsvd and number of F77 args incorrect), fixing that the code
> now appears to work correctly and not seg-fault. Can you check. Also the
> help of the gsvd function needs to be updated as it references svd and
> in particular suggests using "svd(hilb(3))" as an example. Could you
> update this.
> 

Hello,

revised code included. This one works.

Some rought points:
- the doc
- according to dggsvd.f doc, the purpose is to get
   U���*A*Q = D1*( 0 R ),    V���*B*Q = D2*( 0 R )
  As the function also computes R, I added a 6th output argument to
  return R as well. This only works if  M-K-L >= 0 (see the doc),
  otherwise part of R is stored in B
- there are two formulations, this one and another as explained at the
  end of the doc, U���*A*X = diag(alpha_i),   V���*B*X = diag(beta_i), but
  the 'X' in the latter case requires to compute Q*[ I   0; 0 R]. X is a
  factor which simultaneously diagonalise A and B, and is not
  orthogonal. Which one to choose ?
- in the case of 1 output arg, returns the extended singular values
  alpha_i/beta_i, infinite values not being considered as
  problematic. If B is invertible, they are the singular values of A*inv(B)

Best regards

Pascal

-- 
Dr. ir. Pascal Dupuis, conseiller technologique/technological advisor
U. C. Louvain AC/ADRE :  http://www.adre.ucl.ac.be/
Place de L'Universit��, 1; B-1348 Louvain-la-Neuve Belgium
T??l. +32-10-47 92 33; Fax +32-10-47 48 30

Attachment: gsvd.tar.bz2
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]