LAPACK Archives

[Lapack] DGGEV return msg mismatch with code

Dear Peng,
indeed, there is a problem. it has been listed bug 0090 and has been corrected 
in our repository (rev 1231).
See http://www.netlib.org/lapack/Errata/index2.html
Thank you very much for reporting the issue.
Sincerely,
Julie
On Mar 19, 2012, at 3:35 PM, Hong Bo Peng wrote:

Sorry. I mean DGGEV compared to DGEEVX. In your list, you are comparing DGGEV 
and DGGEVX.

Best Regards!
Peng HongBo

GCG Systems & Technology Lab
Building 28, ZhongGuanCun SoftPark
No.8 Dong Bei Wang West Road
Haidian District Beijing P.R.China 100193
Tel: 86-10-82452835
Email: penghb@Domain.Removed



<graycol.gif>julie langou ---03/20/2012 06:10:16---Dear Peng, I believe the 
behavior of the two routines DGEEV and DGEEVX are the same. The piece of co

From: julie langou <julie@Domain.Removed>
To:   Hong Bo Peng/China/IBM at IBMCN
Date: 03/20/2012 06:10
Subject:      Re: [Lapack] DGGEV return msg mismatch with code



Dear Peng,
I believe the behavior of the two routines DGEEV and DGEEVX are the same. The 
piece of code is similar.
Julie

DGGEV

CALL DHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB,
$ ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR,
$ WORK( IWRK ), LWORK+1-IWRK, IERR )
IF( IERR.NE.0 ) THEN
IF( IERR.GT.0 .AND. IERR.LE.N ) THEN
INFO = IERR
ELSE IF( IERR.GT.N .AND. IERR.LE.2*N ) THEN
INFO = IERR - N
ELSE
INFO = N + 1
END IF
GO TO 110
END IF
----
110 CONTINUE
*
WORK( 1 ) = MAXWRK
*
RETURN
*


DGGEVX
CALL DHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB,
$ ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK,
$ LWORK, IERR )
IF( IERR.NE.0 ) THEN
IF( IERR.GT.0 .AND. IERR.LE.N ) THEN
INFO = IERR
ELSE IF( IERR.GT.N .AND. IERR.LE.2*N ) THEN
INFO = IERR - N
ELSE
INFO = N + 1
END IF
GO TO 130
END IF
----
130 CONTINUE
WORK( 1 ) = MAXWRK
*
RETURN


On Mar 11, 2012, at 7:29 PM, Hong Bo Peng wrote:
Hi

I am doing some work with DGGEV. When I check the return msg and the actual 
code, I found something may be wrong. Here is part of comments in the header 
of DGGEV.F.

*  INFO    (output) INTEGER
*          = 0:  successful exit
*          < 0:  if INFO = -i, the i-th argument had an illegal value.
*          = 1,...,N:
*                The QZ iteration failed.  No eigenvectors have been
*                calculated, but ALPHAR(j), ALPHAI(j), and BETA(j)
*                should be correct for j=INFO+1,...,N.
*          > N:  =N+1: other than QZ iteration failed in DHGEQZ.
*                =N+2: error return from DTGEVC.

When INFO = 1...N, there is an error in DHGEQZ (QZ iteration failed). From 
the code, we can see it jumps to label 110 then set WORK(1) and return. 
But in case of we scaled the matrix, we still need to undo scale for the 
output array ALPHAR, ALPHAI and BETA for those values j=INFO+1,...,N. 

In DGEEVX, we can see that it jumps to label 50 in case of DHSEQR failure and 
then undo scale before return.

Please correct me if I am wrong. Thank you.

Best Regards!
Peng HongBo
_______________________________________________
Lapack mailing list
Lapack@Domain.Removed
http://lists.eecs.utk.edu/mailman/listinfo/lapack



-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
http://lists.eecs.utk.edu/mailman/private/lapack/attachments/20120320/82d99f03/attachment.html
 

<Prev in Thread] Current Thread [Next in Thread>


For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or