summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-08-09Correct comments in langou4-8/+8
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
2012-08-03error in comment detected by Mathieu (PLASMA)julie4-4/+4
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 )
2012-07-27Commit Brian Sutton new CS Decomposition routines.julie40-195/+11624
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.
2012-07-17added NaN check to prevent NaN's from being skipped in accumulationjames4-13/+29
2012-07-16matrix norms now consistently return nan when input matrix contains a nan;james54-628/+1182
previously, this was (usually) only the case for the 'F' norm
2012-07-13Add make.in for pgf95 compilerjulie1-0/+75
2012-07-04Correct bug0096 reported by Joseph Young from Sandia.julie4-557/+560
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.
2012-07-03Add Brief description for auxiliary routinesjulie750-750/+750
2012-06-29Added fix to prevent dividing by T when T=0 provided by Alexander Kobotov of ↵james2-4/+4
Intel.
2012-05-22Correct a problem reported by Keita Teranishi from CRAY on May 18th 2012julie4-4/+4
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 ) ====================================
2012-05-16added missing comma, thanks to Lee Killough at ANLjames1-1/+1
2012-05-14Correct a minor problem in comments sent by Alexander Kobotovjulie2-4/+4
One more minor notice: - In sgsvj0.f and sgsvk1.f: EPS and SFMIN become INTEGER in description whereas these are actually REAL.
2012-05-12Fix lange routine.julie4-8/+8
/* 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!
2012-04-26Commit patch sent by Sébastien Fabbro to enable LAPACKE built without LAPACK.julie6-28/+76
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.
2012-04-25Update CMAKE version requirement and remove FindBLAS module that is now ↵julie2-452/+1
include inside CMAKE
2012-04-25Minor modification for ctest build templatejulie1-9/+10
2012-04-25Fix small problem detected by user Yao Toa. sent to the LAPACK mailing list ↵julie1-2/+0
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
2012-04-23modified exceptional shift for complex versions - solves problem of nan's ↵james2-2/+4
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)
2012-04-23Fix problems in comments found by Alexander Kobotovjulie40-52/+52
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.
2012-04-20Fix XLF flags that were causing test zgg to hangjulie2-2/+3
2012-04-19put FOUR parameter back since it is used in this routinejames1-2/+2
2012-04-18rearrange the test (Julien prefers it that way)julie2-2/+2
2012-04-18Update date and revision numberjulie9-16/+17
2012-04-18Correct bug sent by NAG peoplejulie2-24/+32
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.
2012-04-17modified exceptional shift strategy so that QZ now works for various pencils ↵james4-6/+4
(see http://netlib.org/lapack/Errata/vrac/lapack_known_issues.html)
2012-04-13Update version numberjulie239-727/+727
2012-04-12Fix small issue with lapacke builtjulie2-2/+2
2012-04-12Add -qnosave option for xlf compiler (Thanks Rodney)julie2-4/+7
2012-04-12Follow up to rev r1130 julie41-84/+314
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....
2012-04-11removed comment regarding A being modified and restored - this is no longer ↵james16-16/+0
the case with the changes made to xLARFT
2012-04-11Remove unused variablesjulie8-12/+4
2012-04-11Remove unused parametersjulie43-106/+67
2012-04-11added code to handle N=1 case to fix divide by zero problem that occursjames4-0/+12
when the single (diagonal) element is negative see: http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg01195.html
2012-04-10Fix call to GEMQRT (no lwork) and lwork declarationsjulie4-29/+29
2012-04-10Fix External Subroutines declarationsjulie8-10/+8
2012-04-05Add the python script for LAPACK Summary output to CTESTjulie2-1/+11
2012-04-05changed SVD test threshold to 50.0 and removed SEP test for matrix type 9 so ↵james2-2/+4
that all tests pass
2012-04-03changed weights so that the badly conditioned tests (which always fail) are ↵james4-16/+16
avoided for SXV, DXV, CXV, ZXV.
2012-04-03Fix provided by Hong Bo Peng for bug0026james2-0/+2
2012-04-02Undoing unvoluntary change commited in 1237julie4-72/+24
2012-04-02(no commit message)julie10-24/+78
2012-03-22Following Mathieu's request, some part of lapacke.h were moved to ↵julie2069-2089/+70
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
2012-03-22Correct problem in Workspace calculationjulie4-0/+8
2012-03-20Correct bug 0090 Need to unscale if necessary when there is an error in ↵julie8-18/+16
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.
2012-03-20Add csyr and zsyr needed by the PLASMA projectjulie7-1/+344
2012-02-23modified so that V is [in] only instead of [in/out]james4-171/+152
2012-02-17Change CMAKE configuration for LAPACKEjulie6-3871/+1065
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
2012-01-26Fix Makefile in LINjulie1-6/+6
2012-01-21Fix Typojulie1-1/+1
2012-01-20Fixed problem with optimizer breaking error checking, now using F90 EPSILON ↵james4-10/+15
intrinsic. Thanks to Harald Anlauf for providing the solution.