platform/upstream/lapack.git
11 years agoAdd c/zlacp2 for PLASMA team
julie [Thu, 10 Jan 2013 04:26:11 +0000 (04:26 +0000)]
Add c/zlacp2 for PLASMA team

11 years agoUpdated comments in (s,d,c,z)lasy_rook.f and (c,z)lahe_rook.f
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

11 years agoupdated comments in (s,d,c,z)lasyf.f and (c,z)lahef.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

11 years agoUpdated comments in (s,d,c,z)sytf2_rook.f
igor175 [Wed, 12 Dec 2012 02:15:21 +0000 (02:15 +0000)]
Updated comments in (s,d,c,z)sytf2_rook.f

11 years agoUpdated comments in (s,d,c,z)sytf2.f and (c,z)hetf2.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

11 years agoupdated comments in
igor175 [Wed, 12 Dec 2012 01:16:46 +0000 (01:16 +0000)]
updated comments in

11 years agofixed comments in clahef_rook.f and zlahef_rook.f
igor175 [Tue, 11 Dec 2012 20:33:11 +0000 (20:33 +0000)]
fixed comments in clahef_rook.f and zlahef_rook.f

11 years agoCommit Victor Liu's suggestion about making the complex division routine more robust
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.

11 years agoReplaced IF(J.LE.N) by IF(J.LT.N) for 'U', where U12 is put in standard form by parti...
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

11 years agofixed a typo in a comment in (c,z)lahef_rook.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

11 years agoadded clahef_rook.f and zlahef_rook.f
igor175 [Sat, 10 Nov 2012 02:33:57 +0000 (02:33 +0000)]
added clahef_rook.f and zlahef_rook.f

11 years agofixed a typo in a commnet in (c,z)lahef.f
igor175 [Thu, 8 Nov 2012 23:23:15 +0000 (23:23 +0000)]
fixed a typo in a commnet in (c,z)lahef.f

11 years ago(s,d,c,z)lasyf.f and (c,z)lahef.f: added comments to the part where a column or 2...
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

11 years agofixed comments in (s,d,c,z)lasyf.f and (c,z)lahef.f
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

11 years agoupdated comments for interchage of rows and columns in (s,d,c,z)lasyf.f and (c,z...
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

11 years agoChanged comment in (sdcz)lasyf.f and (cz)lahef.f about interchanges for 2x2 pivot
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

11 years ago(s,d,c,z)lasyf.f: introduced from zlahef.f a more efficient version of the code that...
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.

11 years agoupdated comments in (c,z)lahef.f for column interchange
igor175 [Fri, 2 Nov 2012 00:44:17 +0000 (00:44 +0000)]
updated comments in (c,z)lahef.f for column  interchange

11 years ago(c,z)lahef.f: Changed the length of the swap vector from KK-1 to K-1 for the 'L'...
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).

11 years agofixesd inconsistencies between 'L' and 'U' parts in (z,c)lahef.f, added an IF check...
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

11 years agofixes to comments in *zlasyf_rook.f
igor175 [Tue, 30 Oct 2012 23:57:03 +0000 (23:57 +0000)]
fixes to comments in *zlasyf_rook.f

11 years agofixes to comments in *lasyf_rook.f
igor175 [Mon, 29 Oct 2012 18:49:49 +0000 (18:49 +0000)]
fixes to comments in *lasyf_rook.f

11 years agofixes 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

11 years agoremoved extra characters after ZERO
james [Sat, 27 Oct 2012 15:13:36 +0000 (15:13 +0000)]
removed extra characters after ZERO

11 years agoAdd xlacn2 for PLASMA team
julie [Fri, 26 Oct 2012 05:04:09 +0000 (05:04 +0000)]
Add xlacn2 for PLASMA team

11 years agofixes to documentation in clahef.f and zlahef.f
igor175 [Thu, 25 Oct 2012 22:25:22 +0000 (22:25 +0000)]
fixes to documentation in clahef.f and zlahef.f

11 years agofixes to comments in *lasyf_rook.f
igor175 [Thu, 25 Oct 2012 22:12:12 +0000 (22:12 +0000)]
fixes to comments in *lasyf_rook.f

11 years agofixes to documentation in *lasyf.f, *lasyf_rook.f
igor175 [Thu, 25 Oct 2012 21:48:07 +0000 (21:48 +0000)]
fixes to documentation in *lasyf.f, *lasyf_rook.f

11 years agopatch from Mathworks that fixes convergence problem with some particular pencils...
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

11 years ago* added check for NaN after the norm of each block of H is computed
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

11 years agoSimplify description of workspace requirement
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)

11 years ago(no commit message)
julie [Tue, 25 Sep 2012 23:56:27 +0000 (23:56 +0000)]

11 years ago(no commit message)
julie [Sat, 22 Sep 2012 03:33:49 +0000 (03:33 +0000)]

11 years ago(no commit message)
julie [Fri, 21 Sep 2012 15:48:46 +0000 (15:48 +0000)]

11 years ago(no commit message)
julie [Fri, 21 Sep 2012 02:21:29 +0000 (02:21 +0000)]

11 years ago(no commit message)
james [Thu, 20 Sep 2012 14:41:07 +0000 (14:41 +0000)]

11 years ago(no commit message)
james [Tue, 18 Sep 2012 01:14:38 +0000 (01:14 +0000)]

11 years ago(no commit message)
james [Sat, 8 Sep 2012 23:02:04 +0000 (23:02 +0000)]

12 years ago(no commit message)
james [Thu, 6 Sep 2012 03:38:21 +0000 (03:38 +0000)]

12 years ago(no commit message)
james [Thu, 6 Sep 2012 03:34:54 +0000 (03:34 +0000)]

12 years ago(no commit message)
julie [Wed, 29 Aug 2012 16:08:30 +0000 (16:08 +0000)]

12 years ago(no commit message)
james [Tue, 28 Aug 2012 14:29:34 +0000 (14:29 +0000)]

12 years ago(no commit message)
julie [Sat, 25 Aug 2012 22:58:53 +0000 (22:58 +0000)]

12 years ago(no commit message)
julie [Sat, 25 Aug 2012 22:27:13 +0000 (22:27 +0000)]

12 years agoAdd ilaver to LAPACKE
julie [Sat, 25 Aug 2012 22:24:59 +0000 (22:24 +0000)]
Add ilaver to LAPACKE

12 years ago(no commit message)
james [Fri, 24 Aug 2012 00:32:54 +0000 (00:32 +0000)]

12 years ago(no commit message)
julie [Wed, 22 Aug 2012 14:58:21 +0000 (14:58 +0000)]

12 years ago(no commit message)
james [Wed, 22 Aug 2012 02:23:49 +0000 (02:23 +0000)]

12 years agoCorrect typo found by Elena Ivanova, Oracle.
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

12 years agoCorrected bug that occurs when V is stored in backwards order: previously, the scan...
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.

12 years agoreverting to previous version, which is correct
james [Sat, 18 Aug 2012 21:45:06 +0000 (21:45 +0000)]
reverting to previous version, which is correct

12 years agofixed logic error that corrects bug found by Duncan Po at Mathworks
james [Fri, 17 Aug 2012 00:53:59 +0000 (00:53 +0000)]
fixed logic error that corrects bug found by Duncan Po at Mathworks

12 years agoCorrect comments and Doxygen generation following comments from Sa-Lin Cheng Bernstei...
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

12 years agoCorrect comments in
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

12 years agoerror in comment detected by Mathieu (PLASMA)
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 )

12 years agoCommit Brian Sutton new CS Decomposition routines.
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.

12 years agoadded NaN check to prevent NaN's from being skipped in accumulation
james [Tue, 17 Jul 2012 13:15:40 +0000 (13:15 +0000)]
added NaN check to prevent NaN's from being skipped in accumulation

12 years agomatrix norms now consistently return nan when input matrix contains a nan;
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

12 years agoAdd make.in for pgf95 compiler
julie [Fri, 13 Jul 2012 17:12:37 +0000 (17:12 +0000)]
Add make.in for pgf95 compiler

12 years agoCorrect bug0096 reported by Joseph Young from Sandia.
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.

12 years agoAdd Brief description for auxiliary routines
julie [Tue, 3 Jul 2012 04:39:13 +0000 (04:39 +0000)]
Add Brief description for auxiliary routines

12 years agoAdded fix to prevent dividing by T when T=0 provided by Alexander Kobotov of Intel.
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.

12 years agoCorrect a problem reported by Keita Teranishi from CRAY on May 18th 2012
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 )

====================================

12 years agoadded missing comma, thanks to Lee Killough at ANL
james [Wed, 16 May 2012 19:44:39 +0000 (19:44 +0000)]
added missing comma, thanks to Lee Killough at ANL

12 years agoCorrect a minor problem in comments sent by Alexander Kobotov
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.

12 years agoFix lange routine.
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!

12 years agoCommit patch sent by Sébastien Fabbro to enable LAPACKE built without LAPACK.
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.

12 years agoUpdate CMAKE version requirement and remove FindBLAS module that is now include insid...
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

12 years agoMinor modification for ctest build template
julie [Wed, 25 Apr 2012 06:51:09 +0000 (06:51 +0000)]
Minor modification for ctest build template

12 years agoFix small problem detected by user Yao Toa. sent to the LAPACK mailing list on April...
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

12 years agomodified exceptional shift for complex versions - solves problem of nan's appearing...
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)

12 years agoFix problems in comments found by Alexander Kobotov
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.

12 years agoFix XLF flags that were causing test zgg to hang
julie [Fri, 20 Apr 2012 19:08:58 +0000 (19:08 +0000)]
Fix XLF flags that were causing test zgg to hang

12 years agoput FOUR parameter back since it is used in this routine
james [Thu, 19 Apr 2012 15:30:39 +0000 (15:30 +0000)]
put FOUR parameter back since it is used in this routine

12 years agorearrange the test (Julien prefers it that way)
julie [Wed, 18 Apr 2012 19:09:31 +0000 (19:09 +0000)]
rearrange the test (Julien prefers it that way)

12 years agoUpdate date and revision number
julie [Wed, 18 Apr 2012 16:37:50 +0000 (16:37 +0000)]
Update date and revision number

12 years agoCorrect bug sent by NAG people
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.

12 years agomodified exceptional shift strategy so that QZ now works for various pencils (see...
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)

12 years agoUpdate version number
julie [Fri, 13 Apr 2012 18:22:32 +0000 (18:22 +0000)]
Update version number

12 years agoFix small issue with lapacke built
julie [Thu, 12 Apr 2012 23:06:02 +0000 (23:06 +0000)]
Fix small issue with lapacke built

12 years agoAdd -qnosave option for xlf compiler (Thanks Rodney)
julie [Thu, 12 Apr 2012 21:07:52 +0000 (21:07 +0000)]
Add -qnosave option for xlf compiler (Thanks Rodney)

12 years agoFollow up to rev r1130
julie [Thu, 12 Apr 2012 00:56:00 +0000 (00:56 +0000)]
Follow up to rev r1130

Fix bug bug0088 reported by Mike Pont from NAG on the forum
(see http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=2893)

Actually there were a lot of problems regarding arguments checking.
I tried to correct most of them.

Apply the fix propose to all x[he/sy]rfsx.f routines
- Use IGNORE_CWISE as suggested to prevent use of unitialize variable PARAMS

I also appied the previous TESTING fix to all routines

INFO has new value in ZHERFSX (see description of INFO between ZHESVX and ZHESVXX)
This is set on line 634 (IF ( INFO .LE. N ) INFO = N + J) of zherfsx.f
And this is not handled by the testing LIN/zdrvhex.f
I just add  .AND. INFO.LE.N at line 638 to avoid raising an error when INFO = N + J

At the moment, I would recommand a further look at those routines.
ZHE, ZSY led to 182 Tests failing to pass the threshold
and the same for complex

better than before, but still....

12 years agoremoved comment regarding A being modified and restored - this is no longer the case...
james [Wed, 11 Apr 2012 23:08:06 +0000 (23:08 +0000)]
removed comment regarding A being modified and restored - this is no longer the case with the changes made to xLARFT

12 years agoRemove unused variables
julie [Wed, 11 Apr 2012 20:16:24 +0000 (20:16 +0000)]
Remove unused variables

12 years agoRemove unused parameters
julie [Wed, 11 Apr 2012 19:43:59 +0000 (19:43 +0000)]
Remove unused parameters

12 years agoadded code to handle N=1 case to fix divide by zero problem that occurs
james [Wed, 11 Apr 2012 01:50:07 +0000 (01:50 +0000)]
added code to handle N=1 case to fix divide by zero problem that occurs
when the single (diagonal) element is negative

see: http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg01195.html

12 years agoFix call to GEMQRT (no lwork) and lwork declarations
julie [Tue, 10 Apr 2012 20:59:35 +0000 (20:59 +0000)]
Fix call to GEMQRT (no lwork) and lwork declarations

12 years agoFix External Subroutines declarations
julie [Tue, 10 Apr 2012 20:21:27 +0000 (20:21 +0000)]
Fix External Subroutines declarations

12 years agoAdd the python script for LAPACK Summary output to CTEST
julie [Thu, 5 Apr 2012 05:47:38 +0000 (05:47 +0000)]
Add the python script for LAPACK Summary output to CTEST

12 years agochanged SVD test threshold to 50.0 and removed SEP test for matrix type 9 so that...
james [Thu, 5 Apr 2012 02:53:32 +0000 (02:53 +0000)]
changed SVD test threshold to 50.0 and removed SEP test for matrix type 9 so that all tests pass

12 years agochanged weights so that the badly conditioned tests (which always fail) are avoided...
james [Tue, 3 Apr 2012 18:11:13 +0000 (18:11 +0000)]
changed weights so that the badly conditioned tests (which always fail) are avoided for SXV, DXV, CXV, ZXV.

12 years agoFix provided by Hong Bo Peng for bug0026
james [Tue, 3 Apr 2012 15:29:34 +0000 (15:29 +0000)]
Fix provided by Hong Bo Peng for bug0026

12 years agoUndoing unvoluntary change commited in 1237
julie [Mon, 2 Apr 2012 21:58:34 +0000 (21:58 +0000)]
Undoing unvoluntary change commited in 1237

12 years ago(no commit message)
julie [Mon, 2 Apr 2012 21:44:14 +0000 (21:44 +0000)]

12 years agoFollowing Mathieu's request, some part of lapacke.h were moved to lapacke_utils.h
julie [Thu, 22 Mar 2012 22:55:22 +0000 (22:55 +0000)]
Following Mathieu's request, some part of lapacke.h were moved to lapacke_utils.h
(the definition of ABS, MAX, MIN, etc...)
Those were conflicting with PLASMA internal definitions.

LAPCKE Routines are now just including lapacke_utils.h which in turn includes lapacke.h

12 years agoCorrect problem in Workspace calculation
julie [Thu, 22 Mar 2012 02:05:18 +0000 (02:05 +0000)]
Correct problem in Workspace calculation

12 years agoCorrect bug 0090 Need to unscale if necessary when there is an error in DHGEQZ (QZ...
julie [Tue, 20 Mar 2012 21:31:07 +0000 (21:31 +0000)]
Correct bug 0090 Need to unscale if necessary when there is an error in DHGEQZ (QZ iteration failed)

 * bug report by Hong Bo Peng Sandgren, on 03-19-2012.
 * See link:http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg01257.html[LAPACK Mailing list msg 01257]

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.

12 years agoAdd csyr and zsyr needed by the PLASMA project
julie [Tue, 20 Mar 2012 04:23:55 +0000 (04:23 +0000)]
Add csyr and zsyr needed by the PLASMA project

12 years agomodified so that V is [in] only instead of [in/out]
james [Thu, 23 Feb 2012 19:34:36 +0000 (19:34 +0000)]
modified so that V is [in] only instead of [in/out]

12 years agoChange CMAKE configuration for LAPACKE
julie [Fri, 17 Feb 2012 17:23:57 +0000 (17:23 +0000)]
Change CMAKE configuration for LAPACKE

CMAKE now can find the Fortran Mangling automatically (no need of extra flags)
with the module FortranCInterface and create the necessary header.
Needed to make some adjustements with the routine name.
Added a file lapacke_mangling_with_flags.h that is used with Makefile build

lapacke.h now requires lapacke_mangling.h
 - the file is created by CMAKE if CMAKE is used
 - the file is copied from lapacke_mangling_with_flags if Makefile is used