igor175 [Fri, 19 Apr 2013 23:27:57 +0000 (23:27 +0000)]
added HR (Hermitian 'rook') path to LAPACK test routines alaerh.f alahd.f aladhd.f
igor175 [Fri, 19 Apr 2013 22:10:35 +0000 (22:10 +0000)]
changed comments in LAPACK testing routine (c,z)latb4.f
igor175 [Thu, 18 Apr 2013 00:39:57 +0000 (00:39 +0000)]
fixed comments in LAPACK testing routines (s,d,c,z)lavsy.f, (s,d,c,z)lavsy_rook.f (c,z)lavhe.f, (c,z)lavhe_rook.f
igor175 [Wed, 17 Apr 2013 05:11:46 +0000 (05:11 +0000)]
fixed comments in LAPACK test routines (s,d,c,z)syt01.f, (s,d,c,z)syt01_rook.f and (c,z)het01.f, (c,z)het01_rook.f
igor175 [Wed, 17 Apr 2013 03:53:30 +0000 (03:53 +0000)]
minor changes in LAPACK testing routines (s,d,c,z)drvsy.f, (s,d,c,z)drvsy_rook.f, (c,z)drvhe.f, and (c,z)drvhe_rook.f
igor175 [Wed, 17 Apr 2013 02:53:48 +0000 (02:53 +0000)]
removed whitespace in LAPACK testing routines (s,d,c,z)chksy.f and (s,d,c,z)chksy_rook.f and (c,z)chkhe.f (c,z)chkhe_rook.fand minor modifications
igor175 [Wed, 17 Apr 2013 02:44:09 +0000 (02:44 +0000)]
changed comments in LAPACK testing routines (s,d,c,z)chksy.f and (s,d,c,z)chksy_rook.f (c,z)chkhe.f (c,z)chkhe_rook.fand minor modifications
igor175 [Wed, 17 Apr 2013 01:46:16 +0000 (01:46 +0000)]
changed comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy_rook.f (c,z)chkhe.f (c,z)chkhe_rook.f and minor modifications
igor175 [Wed, 17 Apr 2013 01:45:24 +0000 (01:45 +0000)]
changed comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy_rook.f (c,z)chkhe.f (c,z)chkhe_rook.f and minor modifications
igor175 [Tue, 16 Apr 2013 22:06:41 +0000 (22:06 +0000)]
changed comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy.f
igor175 [Fri, 12 Apr 2013 23:45:56 +0000 (23:45 +0000)]
changed coments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy.f
igor175 [Fri, 12 Apr 2013 20:06:51 +0000 (20:06 +0000)]
added test routines (c,z)chkhe_rook.f and (c,z)drvhe_rook.f for Hermitian factorization routines with rook pivoting algorithm
igor175 [Fri, 12 Apr 2013 20:06:18 +0000 (20:06 +0000)]
added test routines (c,z)chkhe_rook.f and (c,z)drvhe_rook.f for Hermitian factorization routines with rook pivoting algorithm
julie [Thu, 4 Apr 2013 05:20:31 +0000 (05:20 +0000)]
lapacke.h: template with C linkage error - forum topic 4221
james [Tue, 26 Mar 2013 14:55:38 +0000 (14:55 +0000)]
removed references to example_ZGESV_rowmajor.c
james [Tue, 26 Mar 2013 14:53:56 +0000 (14:53 +0000)]
removed example_ZGESV_rowmajor.c
james [Fri, 22 Mar 2013 20:54:57 +0000 (20:54 +0000)]
corrected bug found by Tyrone Rees posted on email list:
"I think there's a bug in the routine dlaqp2.f in version 3.4.2 of LAPACK
(and possibly earlier). Line 220 of the source is
IF( I.LE.N ) THEN
whereas for the other versions the same line reads
IF( I.LT.N ) THEN
This difference appears to make the routine dgeqp3 fall over when asked
to do a factorization of the last two columns of a 10x5 matrix. The NAG
fortran compiler gives the error:
Subscript out of range for assumed-size array A - Access to element 22
but actual argument has only 20 elements
Program terminated by fatal error
The single precision version runs without a hiccup.
Best wishes,
Tyrone"
james [Fri, 22 Mar 2013 12:38:47 +0000 (12:38 +0000)]
Applied patch provided by Sergey Kuznetsov @ Intel, fixes bug where TAU2 can be uninitialized.
james [Tue, 5 Mar 2013 17:52:07 +0000 (17:52 +0000)]
added code to set the last pivots to n: ipiv(n)=jpiv(n)=n
julie [Fri, 15 Feb 2013 21:54:15 +0000 (21:54 +0000)]
Update and add examples
julie [Fri, 15 Feb 2013 16:45:00 +0000 (16:45 +0000)]
Remove unused file
julie [Thu, 7 Feb 2013 16:28:08 +0000 (16:28 +0000)]
Fix typos in README
julie [Thu, 10 Jan 2013 04:26:11 +0000 (04:26 +0000)]
Add c/zlacp2 for PLASMA team
igor175 [Wed, 12 Dec 2012 03:03:41 +0000 (03:03 +0000)]
Updated comments in (s,d,c,z)lasy_rook.f and (c,z)lahe_rook.f
igor175 [Wed, 12 Dec 2012 02:49:09 +0000 (02:49 +0000)]
updated comments in (s,d,c,z)lasyf.f and (c,z)lahef.f
igor175 [Wed, 12 Dec 2012 02:15:21 +0000 (02:15 +0000)]
Updated comments in (s,d,c,z)sytf2_rook.f
igor175 [Wed, 12 Dec 2012 02:08:16 +0000 (02:08 +0000)]
Updated comments in (s,d,c,z)sytf2.f and (c,z)hetf2.f
igor175 [Wed, 12 Dec 2012 01:16:46 +0000 (01:16 +0000)]
updated comments in
igor175 [Tue, 11 Dec 2012 20:33:11 +0000 (20:33 +0000)]
fixed comments in clahef_rook.f and zlahef_rook.f
julie [Tue, 11 Dec 2012 19:01:44 +0000 (19:01 +0000)]
Commit Victor Liu's suggestion about making the complex division routine more robust
tests and builds seems fine.
Message sent on Oct 18th
I just saw a paper on ArXiv about making the complex division routine more robust:
http://arxiv.org/abs/1210.4539
Second author is actually the original inventor of the current algorithm in Lapack.
I have attached my modified DLADIV routine, which passes all the tests in the build process.
igor175 [Wed, 5 Dec 2012 07:16:18 +0000 (07:16 +0000)]
Replaced IF(J.LE.N) by IF(J.LT.N) for 'U', where U12 is put in standard form by partially undoing the interchanges, also added comments to the part where U21 is put in standard form; Similarly, replaced IF(J.GE.1) by IF(J.GT.1) for 'L', where L21 is put in standard form by partially undoing the interchanges, also added comments to the part where L21 is put in standard form; Affected files: zlahef.f clahef.f zlasyf.f clasyf.f dlasyf.f slasyf.f
igor175 [Sat, 10 Nov 2012 03:33:51 +0000 (03:33 +0000)]
fixed a typo in a comment in (c,z)lahef_rook.f
igor175 [Sat, 10 Nov 2012 02:33:57 +0000 (02:33 +0000)]
added clahef_rook.f and zlahef_rook.f
igor175 [Thu, 8 Nov 2012 23:23:15 +0000 (23:23 +0000)]
fixed a typo in a commnet in (c,z)lahef.f
igor175 [Thu, 8 Nov 2012 21:53:21 +0000 (21:53 +0000)]
(s,d,c,z)lasyf.f and (c,z)lahef.f: added comments to the part where a column or 2 columns are updated at each step
igor175 [Sat, 3 Nov 2012 00:53:08 +0000 (00:53 +0000)]
fixed comments in (s,d,c,z)lasyf.f and (c,z)lahef.f
igor175 [Fri, 2 Nov 2012 04:26:02 +0000 (04:26 +0000)]
updated comments for interchage of rows and columns in (s,d,c,z)lasyf.f and (c,z)lagef.f
igor175 [Fri, 2 Nov 2012 03:02:56 +0000 (03:02 +0000)]
Changed comment in (sdcz)lasyf.f and (cz)lahef.f about interchanges for 2x2 pivot
igor175 [Fri, 2 Nov 2012 02:00:52 +0000 (02:00 +0000)]
(s,d,c,z)lasyf.f: introduced from zlahef.f a more efficient version of the code that interchanges row and columns -- 1) for 'L' version: eliminated unnecessary copying to elemnents in cols. K (K and K+1 for 2x2 pivot) that later on will be overwritten by storing L(k) ( L(k) and L(k+1) for 2x2 pivot ) into these cols. 2) for 'U' version: eliminated unnecessary copying to elemnents in cols. K (K and K-1 for 2x2 pivot) that later on will be overwritten by storing L(k) ( L(k)and L(k-1) for 2x2 pivot ) into these cols.
igor175 [Fri, 2 Nov 2012 00:44:17 +0000 (00:44 +0000)]
updated comments in (c,z)lahef.f for column interchange
igor175 [Thu, 1 Nov 2012 22:51:10 +0000 (22:51 +0000)]
(c,z)lahef.f: Changed the length of the swap vector from KK-1 to K-1 for the 'L' case and from N-KK to N-K for the 'U' case. It is sufficient to swap rows KK and KP only in the first K-1 columns of A instead of in the first KK-1 columns of A in 'L' case (columns K (or K and K+1) of A will be later overwritten). It is sufficient to swap rows KK and KP only in the last K+1 to N columns of A instead of in the last KK+1 to N columns of A in the 'U' case (columns K (or K and K-1) of A will be later overwritten).
igor175 [Thu, 1 Nov 2012 19:37:46 +0000 (19:37 +0000)]
fixesd inconsistencies between 'L' and 'U' parts in (z,c)lahef.f, added an IF check to 'U' part IF(KP.GT.1) where column interchange occurs
igor175 [Tue, 30 Oct 2012 23:57:03 +0000 (23:57 +0000)]
fixes to comments in *zlasyf_rook.f
igor175 [Mon, 29 Oct 2012 18:49:49 +0000 (18:49 +0000)]
fixes to comments in *lasyf_rook.f
igor175 [Mon, 29 Oct 2012 18:30:30 +0000 (18:30 +0000)]
fixes to comments in *lasyf_rook.f
james [Sat, 27 Oct 2012 15:13:36 +0000 (15:13 +0000)]
removed extra characters after ZERO
julie [Fri, 26 Oct 2012 05:04:09 +0000 (05:04 +0000)]
Add xlacn2 for PLASMA team
igor175 [Thu, 25 Oct 2012 22:25:22 +0000 (22:25 +0000)]
fixes to documentation in clahef.f and zlahef.f
igor175 [Thu, 25 Oct 2012 22:12:12 +0000 (22:12 +0000)]
fixes to comments in *lasyf_rook.f
igor175 [Thu, 25 Oct 2012 21:48:07 +0000 (21:48 +0000)]
fixes to documentation in *lasyf.f, *lasyf_rook.f
james [Fri, 19 Oct 2012 21:45:55 +0000 (21:45 +0000)]
patch from Mathworks that fixes convergence problem with some particular pencils in xGGEV
james [Thu, 11 Oct 2012 18:19:31 +0000 (18:19 +0000)]
* added check for NaN after the norm of each block of H is computed
* if NaN is detected, returns with INFO=-6 (H is the 6th parameter)
* fixes problem found by Alexander Kobotov at Intel where a NaN in H can cause an infinite loop:
http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=3928
julie [Mon, 8 Oct 2012 21:12:36 +0000 (21:12 +0000)]
Simplify description of workspace requirement
Reported by Simon on Oct 8th on LAPACK forum : http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=3951
The size of the workspace for DGESDD for JOBZ = 'S' or 'A' has been changed in LAPACK 3.4.2, and is set by LWORK. The current description of LWORK reads:
LWORK >= 3*min(M,N) +
max(max(M,N),4*min(M,N)*min(M,N)+3*min(M,N)+max(M,N)).
In the second line, both arguments of max contain max(M,N), and so the the function is redundant - the second argument will always be realised.
So the description could be simplified to:
LWORK >= 3*min(M,N) +
4*min(M,N)*min(M,N)+3*min(M,N)+max(M,N)
or further simplified to
LWORK >= min(M,N)*(6+4*min(M,N))+max(M,N)
julie [Tue, 25 Sep 2012 23:56:27 +0000 (23:56 +0000)]
julie [Sat, 22 Sep 2012 03:33:49 +0000 (03:33 +0000)]
julie [Fri, 21 Sep 2012 15:48:46 +0000 (15:48 +0000)]
julie [Fri, 21 Sep 2012 02:21:29 +0000 (02:21 +0000)]
james [Thu, 20 Sep 2012 14:41:07 +0000 (14:41 +0000)]
james [Tue, 18 Sep 2012 01:14:38 +0000 (01:14 +0000)]
james [Sat, 8 Sep 2012 23:02:04 +0000 (23:02 +0000)]
james [Thu, 6 Sep 2012 03:38:21 +0000 (03:38 +0000)]
james [Thu, 6 Sep 2012 03:34:54 +0000 (03:34 +0000)]
julie [Wed, 29 Aug 2012 16:08:30 +0000 (16:08 +0000)]
james [Tue, 28 Aug 2012 14:29:34 +0000 (14:29 +0000)]
julie [Sat, 25 Aug 2012 22:58:53 +0000 (22:58 +0000)]
julie [Sat, 25 Aug 2012 22:27:13 +0000 (22:27 +0000)]
julie [Sat, 25 Aug 2012 22:24:59 +0000 (22:24 +0000)]
Add ilaver to LAPACKE
james [Fri, 24 Aug 2012 00:32:54 +0000 (00:32 +0000)]
julie [Wed, 22 Aug 2012 14:58:21 +0000 (14:58 +0000)]
james [Wed, 22 Aug 2012 02:23:49 +0000 (02:23 +0000)]
julie [Tue, 21 Aug 2012 05:09:38 +0000 (05:09 +0000)]
Correct typo found by Elena Ivanova, Oracle.
See http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=3612
james [Sat, 18 Aug 2012 22:01:21 +0000 (22:01 +0000)]
Corrected bug that occurs when V is stored in backwards order: previously, the scan for zero rows or columns at the _end_ of V can result in the trunctation of the unit triangular part of V. The correction replaces the LASTV in the DIRECT='B' cases with the full length, which is either M or N, which then keeps the full K-by-K unit triangular portion of V. Another approach, which could be applied in a future revision, is to add new routines to compute the first non-zero row and non-zero column of a matrix, and store this index in FIRSTV, and run the loops and matrix multiplications from FIRSTV:M and FIRSTV:N where appropriate.
james [Sat, 18 Aug 2012 21:45:06 +0000 (21:45 +0000)]
reverting to previous version, which is correct
james [Fri, 17 Aug 2012 00:53:59 +0000 (00:53 +0000)]
fixed logic error that corrects bug found by Duncan Po at Mathworks
julie [Fri, 10 Aug 2012 17:32:23 +0000 (17:32 +0000)]
Correct comments and Doxygen generation following comments from Sa-Lin Cheng Bernstein sent to lapack mailing list on August 9th 2012
While looking at the new lapack version (v3.4.1) and going through the routines on http://www.netlib.org/lapack/lapack_routine/, we found some errors and thought that we should report them. Below is the list of the errors.
====================================================================
(1) Should be "\ingroup complex16OTHERsolve" and not "\ingroup complex16OTHERcomputational" because they are driver routines; in addition, in the line just below SUBROUTINE <routinename>, it should be driver routine:
sgtsv.f
sgtsvx.f
sptsv.f
sptsvx.f
dgtsv.f
dgtsvx.f
dptsv.f
dptsvx.f
cgtsv.f
cgtsvx.f
cptsv.f
cptsvx.f
zgtsv.f
zgtsvx.f
zptsv.f
zptsvx.f
(2) Should be "\ingroup complex16SYsolve" and not "\ingroup complex16OTHERcomputational" because they are driver routines; in addition, in the line just below SUBROUTINE <routinename>, it should be driver routine:
ssysvxx.f
dsysvxx.f
(3) Should be "\ingroup realOTHERcomputational" and not ""\ingroup auxOTHERcomputational":
spttrf.f
(4) Should be "\ingroup doubleOTHERcomputational" and not ""\ingroup auxOTHERcomputational":
dpttrf.f
(5) Should be "symmetric matrix" and not "Hermitian indefinite matrix" in "\par Purpose:"
ssytri2.f
dsytri2.f
csytri2.f
zsytri2.f
(6) Should be "\ingroup realGEsing" and not "\ingroup realGEcomputational":
sgejsv.f
dgejsv.f
langou [Thu, 9 Aug 2012 15:49:47 +0000 (15:49 +0000)]
Correct comments in
SRC/sgeev.f
SRC/dgeevx.f
SRC/dgeev.f
SRC/sgeevx.f
Reported by Konstantinos Kafoysas (Beta CAE Systems S.A., Greece) on Thu Aug
9th, 2012 through LAPACK mailing list.
> In the comments of dgeev function
>
> * The left eigenvector u(j) of A satisfies
> * u(j)**T * A = lambda(j) * u(j)**T
> * where u(j)**T denotes the transpose of u(j).
>
> u is supposed to satisfy u(j)**H * A = lambda(j) * u(j)**H
julie [Fri, 3 Aug 2012 18:17:41 +0000 (18:17 +0000)]
error in comment detected by Mathieu (PLASMA)
Routine affected: [CZ]HEGST et [CZ]HEGS2,
B is IN in comment, but in the code, B is actually changed, but after restored.
Here is the code portion that is to blame. [CZ]HEGS2
00203 IF( K.LT.N ) THEN
00204 CALL ZDSCAL( N-K, ONE / BKK, A( K, K+1 ), LDA )
00205 CT = -HALF*AKK
00206 CALL ZLACGV( N-K, A( K, K+1 ), LDA )
00207 CALL ZLACGV( N-K, B( K, K+1 ), LDB )
00208 CALL ZAXPY( N-K, CT, B( K, K+1 ), LDB, A( K, K+1 ),
00209 $ LDA )
00210 CALL ZHER2( UPLO, N-K, -CONE, A( K, K+1 ), LDA,
00211 $ B( K, K+1 ), LDB, A( K+1, K+1 ), LDA )
00212 CALL ZAXPY( N-K, CT, B( K, K+1 ), LDB, A( K, K+1 ),
00213 $ LDA )
00214 CALL ZLACGV( N-K, B( K, K+1 ), LDB )
00215 CALL ZTRSV( UPLO, 'Conjugate transpose', 'Non-unit',
00216 $ N-K, B( K+1, K+1 ), LDB, A( K, K+1 ),
00217 $ LDA )
00218 CALL ZLACGV( N-K, A( K, K+1 ), LDA )
julie [Fri, 27 Jul 2012 06:42:44 +0000 (06:42 +0000)]
Commit Brian Sutton new CS Decomposition routines.
All the routines from the SRC folder have been updated to integrate the current Doxygen layout.
Everything seems to be fine, all tests passed without problem.
james [Tue, 17 Jul 2012 13:15:40 +0000 (13:15 +0000)]
added NaN check to prevent NaN's from being skipped in accumulation
james [Mon, 16 Jul 2012 14:21:07 +0000 (14:21 +0000)]
matrix norms now consistently return nan when input matrix contains a nan;
previously, this was (usually) only the case for the 'F' norm
julie [Fri, 13 Jul 2012 17:12:37 +0000 (17:12 +0000)]
Add make.in for pgf95 compiler
julie [Wed, 4 Jul 2012 02:53:38 +0000 (02:53 +0000)]
Correct bug0096 reported by Joseph Young from Sandia.
Followed recommendation, use the existing sorting code.
Report sent to LAPACK mailing list on June 26th 2012
From Joseph:
> There appears to be an inconsistency and possible bug in the dstemr
> implementation. When calculating the eigenvalues of a matrix, the
> returned eigenvalues are supposed to be returned in ascending order.
> Although this appears to be the case for N >= 3, it does not appear to
> be the case for N=2. I believe this happens because the dstemr routine
> has special cases for N=0,1, and 2, which immediately return after their
> computation. Because these cases return immediately, they do not call
> the sorting routines around line 723 (in LAPACK version 3.4.1). As
> such, a simple fix would be to have the N=2 case call this sorting code
> rather than returning.
julie [Tue, 3 Jul 2012 04:39:13 +0000 (04:39 +0000)]
Add Brief description for auxiliary routines
james [Fri, 29 Jun 2012 11:47:00 +0000 (11:47 +0000)]
Added fix to prevent dividing by T when T=0 provided by Alexander Kobotov of Intel.
julie [Tue, 22 May 2012 00:55:21 +0000 (00:55 +0000)]
Correct a problem reported by Keita Teranishi from CRAY on May 18th 2012
Confirmed and Corrected by Julie on May 21st 2012
====================================
EMAIL:
We would like to report a bug in {S,D}SYEVR and {C,Z}HEEVR routines. This bug causes writing two different data in the same address in IWORK, potentially producing wrong answers.
The bug description is provided in the bottom of the email. Please let us know, if you have any questions.
Thank you,
Line 543 in {S,D}SYEVR:
Line 717 on {C,Z}HEEVR:
=== Code Starts here==
INDISP = INDIBL + N
* IWORK(INDIFL:INDIFL+N-1) stores the indices of eigenvectors
* that corresponding to eigenvectors that fail to converge in
* DSTEIN. This information is discarded; if any fail, the driver
* returns INFO > 0.
INDIFL = INDISP + N
* INDIWO is the offset of the remaining integer workspace.
INDIWO = INDISP + N <- -- It is suspicious.
=====End of the Code=========
I think this should be INDIWO = INDIFL+N. Otherwise, subsequent {S,D}STEIN call takes the same address for IWORK(INDIWO) and INWROK(INDIFL).
CALL DSTEIN( N, WORK( INDD ), WORK( INDE ), M, W,
$ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ,
$ WORK( INDWK ), IWORK( INDIWO ), IWORK( INDIFL ),
$ INFO )
====================================
james [Wed, 16 May 2012 19:44:39 +0000 (19:44 +0000)]
added missing comma, thanks to Lee Killough at ANL
julie [Mon, 14 May 2012 18:34:22 +0000 (18:34 +0000)]
Correct a minor problem in comments sent by Alexander Kobotov
One more minor notice:
- In sgsvj0.f and sgsvk1.f: EPS and SFMIN become INTEGER in description whereas these are actually REAL.
julie [Sat, 12 May 2012 00:51:25 +0000 (00:51 +0000)]
Fix lange routine.
/* Allocate memory for working array(s) */
if( LAPACKE_lsame( norm, 'e' ) || LAPACKE_lsame( norm, 'f' ) ) {
work = (double*)LAPACKE_malloc( sizeof(double) * MAX(1,m) );
if( work == NULL ) {
info = LAPACK_WORK_MEMORY_ERROR;
goto exit_level_0;
}
}
This is wrong, it is actually the opposite. Only the inf norm needs a workspace.
Thanks Mathieu for catching this!
julie [Thu, 26 Apr 2012 13:22:53 +0000 (13:22 +0000)]
Commit patch sent by Sébastien Fabbro to enable LAPACKE built without LAPACK.
The patch has been modified a little by Julie as there were some minors problems.
This also fix the BUILD_TESTING=OFF option problem reported by Marcin on lapack mailing list.
From Sébastien:
Here is a patch to compile lapacke with CMake using an already
existing optimized lapack library instead of forcing the build of the
included one in the tar ball. It applies to the latest lapack svn
trunk.
julie [Wed, 25 Apr 2012 20:35:07 +0000 (20:35 +0000)]
Update CMAKE version requirement and remove FindBLAS module that is now include inside CMAKE
julie [Wed, 25 Apr 2012 06:51:09 +0000 (06:51 +0000)]
Minor modification for ctest build template
julie [Wed, 25 Apr 2012 05:14:31 +0000 (05:14 +0000)]
Fix small problem detected by user Yao Toa. sent to the LAPACK mailing list on April 23th 2012
It seems that this one has been around forever
============
hi.
i found a subtle difference between dsyevd.f and ssyevd.f when using lapack 3.4.1.
dsyevd updates LOPT after calling dsytrd and dlacpy. but those codes are not visible in ssyevd.f, cheevd.f and zheevd.f.
pls refer to line 329, 344 in dsyevd.f.
i wonder whether those codes are necessary, because dsyevd has precalculated LOPT with at least 1+6*N+2*N**2.
if those codes must be there, why not for ssyevd?
thanks in advance.
Yao Tao
james [Mon, 23 Apr 2012 23:16:24 +0000 (23:16 +0000)]
modified exceptional shift for complex versions - solves problem of nan's appearing on some platforms, most notably IBM/XLF, causing an infinite loop in xLARTG (which also should be fixed by enforcing a max iteration count when computing SCALE)
julie [Mon, 23 Apr 2012 21:33:19 +0000 (21:33 +0000)]
Fix problems in comments found by Alexander Kobotov
Just taking a quick look on the new release I noticed some minor issues there, which probably caused by a generation script:
- If you explore diff for files (c/z)gbrfsx, cgbsvx, cgbsvxx, cheequb, clanhf, zheequb you could find that number of datatype descriptions in documentation were changed to incorrect one (DOUBLE PRECISION instead of COMPLEX, or COMPLEX*16 instead of just COMPLEX).
+ cunbdb has CMPLX instead of COMPLEX for X12 parameter.
+ zggevx RWORK become REAL instead of correct DOUBLE PRECISION
- Number of files got following string "/ output)", which seems meaningless. Just grep for it.
julie [Fri, 20 Apr 2012 19:08:58 +0000 (19:08 +0000)]
Fix XLF flags that were causing test zgg to hang
james [Thu, 19 Apr 2012 15:30:39 +0000 (15:30 +0000)]
put FOUR parameter back since it is used in this routine
julie [Wed, 18 Apr 2012 19:09:31 +0000 (19:09 +0000)]
rearrange the test (Julien prefers it that way)
julie [Wed, 18 Apr 2012 16:37:50 +0000 (16:37 +0000)]
Update date and revision number
julie [Wed, 18 Apr 2012 16:35:07 +0000 (16:35 +0000)]
Correct bug sent by NAG people
Got a new bug for you! Mick Pont found this problem in DLAED6. The code in question is the 40 loop - when DSCALE(I)=TAU you get a divide by zero (rare in practice). This can cause some compilers to immediately stop, e.g. the Sun compiler.
Mick proposed solution is below:
DO 40 I = 1, 3
IF (DSCALE( I ).NE.TAU) THEN
TEMP = ONE / ( DSCALE( I )-TAU )
TEMP1 = ZSCALE( I )*TEMP
TEMP2 = TEMP1*TEMP
TEMP3 = TEMP2*TEMP
TEMP4 = TEMP1 / DSCALE( I )
FC = FC + TEMP4
ERRETM = ERRETM + ABS( TEMP4 )
DF = DF + TEMP2
DDF = DDF + TEMP3
ELSE
* On rare occasions dscale(i) can be exactly equal to
* tau, leading to division by zero. If no trap occurs,
* there is no problem; the quantities above all overflow
* and the test on abs(f) below sends you to the end
* with good results. If a trap occurs, though, the
* user program will stop. Avoid that happening by
* jumping directly out.
GO TO 60
END IF
40 CONTINUE
This seems to work OK in our testing.
james [Tue, 17 Apr 2012 17:26:31 +0000 (17:26 +0000)]
modified exceptional shift strategy so that QZ now works for various pencils (see netlib.org/lapack/Errata/vrac/lapack_known_issues.html)