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
|