# RELEASE_NOTES webpage for LAPACK

## UNDER CONSTRUCTION!

     History of LAPACK releases

     Version 1.0 : February 29, 1992
     Revised, Version 1.0a:  June 30, 1992
     Revised, Version 1.0b:  October 31, 1992
     Revised, Version 1.1:   March 31, 1993

     Version 2.0:   September 30, 1994
     Version 3.0:   June 30, 1999
     Update, Version 3.0:  October 31, 1999
     Update, Version 3.0:  May 31, 2000

To better address the needs of our LAPACK users, we're in the process of creating this RELEASE_NOTES webpage. Users will be able to download updates/patches to LAPACK in a variety of ways (Unix patch, tar-gzip file), and will no longer need to wait for an update/release, or make the changes by-hand.

This file contains:

- Errata for LAPACK Users' Guide, Third Edition
- Machine-specific Installation Hints
- Errata for LAPACK, Version 3.0

LAPACK has been tested on a variety of architectures. However, keep in mind that we do not have access to every possible type of machine, and the regrettable bug report will appear. We apologize for any inconvenience this may cause to our users, and strongly encourage users to contact us if you suspect an abnormality. Please contribute "machine-specific installation.hints.gz" for architectures that we do not have listed. These "hints" are of great benefit to many users.

LAPACK test suite failure when linking with ATLAS: The LAPACK test suite assumes that diagonal elements are not inverted, and then tests only the 'Left' case of xTRSM, since the 'Right' case of the reference implementation of xTRSM inverts the diagonal elements. In the implementation of xTRSM in ATLAS, inversion is used for both cases. Thus, the LAPACK test suite (./xlintsts < stest.in ) will fail when linking with ATLAS. The LAPACK test suite needs to be modified to allow for the inversion of diagonal elements, as ATLAS's implementation of xTRSM is valid.

## Errata in LAPACK Users' Guide, Third Edition

## Machine-specific Installation Hints

## Errata in LAPACK, version 3.0

UPDATED: October 4, 2002

The following bug fixes have NOT yet been incorporated in a release/update of LAPACK.

DIRECTORY/ROUTINE | DATE POSTED (M/D/Y) | DESCRIPTION OF CHANGE
LAPACK/BLAS/TESTING/sblat2.f | 10/9/2000 | Changed STATUS='NEW' to 'UNKNOWN'
LAPACK/BLAS/TESTING/dblat2.f
| LAPACK/BLAS/TESTING/cblat2.f | LAPACK/BLAS/TESTING/zblat2.f
LAPACK/BLAS/TESTING/sblat3.f | 10/9/2000 | Changed STATUS='NEW' to 'UNKNOWN'
LAPACK/BLAS/TESTING/dblat3.f
| LAPACK/BLAS/TESTING/cblat3.f | LAPACK/BLAS/TESTING/zblat3.f
LAPACK/INSTALL/make.inc.LINUX | 3/29/2001 | Removal of -fno-f2c from compiler flags!
LAPACK/SRC/sbdsqr.f | 4/25/2001 | Documentation improvement
LAPACK/SRC/dbdsqr.f
| LAPACK/SRC/cbdsqr.f | LAPACK/SRC/zbdsqr.f
LAPACK/SRC/sgebd2.f | 5/7/2001 | Fix to avoid zero-size array reference in call to xLARF on lines 174 and 212
LAPACK/SRC/dgebd2.f
| LAPACK/SRC/cgebd2.f | LAPACK/SRC/zgebd2.f
LAPACK/SRC/sgees.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dgees.f
| LAPACK/SRC/cgees.f | LAPACK/SRC/zgees.f
LAPACK/SRC/sgeesx.f | 10/5/2000 | Added workspace calculation (upper bound)
LAPACK/SRC/dgeesx.f
| LAPACK/SRC/cgeesx.f | LAPACK/SRC/zgeesx.f
LAPACK/SRC/sgeev.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dgeev.f
| LAPACK/SRC/cgeev.f | LAPACK/SRC/zgeev.f
LAPACK/SRC/sgeevx.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dgeevx.f
| LAPACK/SRC/cgeevx.f | LAPACK/SRC/zgeevx.f
LAPACK/SRC/sgegs.f | 4/26/2001 | Documentation improvement
LAPACK/SRC/dgegs.f
| LAPACK/SRC/cgegs.f | LAPACK/SRC/zgegs.f
LAPACK/SRC/sgegv.f | 4/26/2001 | Documentation improvement
LAPACK/SRC/dgegv.f
| LAPACK/SRC/cgegv.f | LAPACK/SRC/zgegv.f
LAPACK/SRC/sgelsd.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dgelsd.f
| LAPACK/SRC/cgelsd.f | LAPACK/SRC/zgelsd.f
LAPACK/SRC/sgelss.f | 4/25/2001 | Corrected error with LQUERY and setting of WORK(1), and bug in DO 40 loop
LAPACK/SRC/dgelss.f
| LAPACK/SRC/cgelss.f | LAPACK/SRC/zgelss.f
LAPACK/SRC/sgesdd.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dgesdd.f
| LAPACK/SRC/cgesdd.f | LAPACK/SRC/zgesdd.f
LAPACK/SRC/sgesvd.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dgesvd.f
| LAPACK/SRC/cgesvd.f | LAPACK/SRC/zgesvd.f
LAPACK/SRC/sggbak.f | 2/1/2001 | Corrected incorrect error exit when N=0, ILO=1, IHI=0
LAPACK/SRC/dggbak.f
| LAPACK/SRC/cggbak.f | LAPACK/SRC/zggbak.f
LAPACK/SRC/sggbal.f | 4/12/2001 | Corrected incorrect error exit for LDB and LDA->LDB in call to IxAMAX on line 427(474)
LAPACK/SRC/dggbal.f
| LAPACK/SRC/cggbal.f | LAPACK/SRC/zggbal.f
LAPACK/SRC/sgges.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dgges.f
| LAPACK/SRC/cgges.f | LAPACK/SRC/zgges.f
LAPACK/SRC/sggesx.f | 10/5/2000 | Added workspace calculation (upper bound)
LAPACK/SRC/dggesx.f
| LAPACK/SRC/cggesx.f | LAPACK/SRC/zggesx.f
LAPACK/SRC/sggev.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dggev.f
| LAPACK/SRC/cggev.f | LAPACK/SRC/zggev.f
LAPACK/SRC/sggevx.f | 10/5/2000 | Corrected error with LQUERY and setting of WORK(1)
LAPACK/SRC/dggevx.f
| LAPACK/SRC/cggevx.f | LAPACK/SRC/zggevx.f
LAPACK/SRC/sgghrd.f | 4/26/2001 | Documentation improvement
LAPACK/SRC/dgghrd.f
| LAPACK/SRC/cgghrd.f | LAPACK/SRC/zgghrd.f
LAPACK/SRC/shgeqz.f | 5/3/2001 | Documentation improvement
LAPACK/SRC/dhgeqz.f
| LAPACK/SRC/chgeqz.f | LAPACK/SRC/zhgeqz.f
LAPACK/SRC/slasr.f | 5/3/2001 | Documentation improvement
LAPACK/SRC/dlasr.f
| LAPACK/SRC/clasr.f | LAPACK/SRC/zlasr.f
LAPACK/SRC/ssbgst.f | 1/9/2001 | Corrected error in input error-checking
LAPACK/SRC/dsbgst.f
| LAPACK/SRC/chbgst.f | LAPACK/SRC/zhbgst.f
LAPACK/SRC/sstebz.f | 10/5/2000 | Changed FUDGE factor from 2.0 to 2.1 (for the T3E)
LAPACK/SRC/dstebz.f
LAPACK/SRC/stgevc.f | 5/3/2001 | Removed erroneous HOWMNY='T' in input error-checking and documentation improvement
LAPACK/SRC/dtgevc.f
| LAPACK/SRC/ctgevc.f | LAPACK/SRC/ztgevc.f
LAPACK/SRC/strevc.f | 5/7/2001 | Documentation improvement
LAPACK/SRC/dtrevc.f
| LAPACK/SRC/ctrevc.f | LAPACK/SRC/ztrevc.f
LAPACK/SRC/strsen.f | 1/3/2001 | Corrected error in documentation with LQUERY
LAPACK/SRC/dtrsen.f
| LAPACK/SRC/ctrsen.f | LAPACK/SRC/ztrsen.f
LAPACK/SRC/strsna.f | 10/26/2001 | Corrected documentation error in size of WORK and IWORK
LAPACK/SRC/dtrsna.f
| LAPACK/SRC/ctrsna.f | LAPACK/SRC/ztrsna.f
LAPACK/SRC/ctrsyl.f | 1/9/2001 | Corrected error in input error-checking
LAPACK/SRC/ztrsyl.f
LAPACK/TESTING/LIN/serrqp.f | 10/6/2000 | Avoid LDA=0 to test input error checking
LAPACK/TESTING/LIN/derrqp.f
LAPACK/TESTING/LIN/cerrqp.f
LAPACK/TESTING/LIN/zerrqp.f
LAPACK/TESTING/LIN/cchkhe.f | 7/6/2001 | Removal of line 386 (XTYPE='C')
LAPACK/TESTING/LIN/zchkhe.f
LAPACK/TESTING/EIG/serrgg.f | 10/9/2000 | Avoid LDA=LDB=LDU=LDV=LDQ=0 to test input error checking
LAPACK/TESTING/EIG/derrgg.f
LAPACK/TESTING/EIG/cerrgg.f
LAPACK/TESTING/EIG/zerrgg.f
LAPACK/TIMING/Makefile | 10/9/2000 | Added ./ for running executables
LAPACK/TIMING/EIG/EIGSRC/sbdsqr.f | 4/25/2001 | Documentation improvement
LAPACK/TIMING/EIG/EIGSRC/dbdsqr.f
| LAPACK/TIMING/EIG/EIGSRC/cbdsqr.f | LAPACK/TIMING/EIG/EIGSRC/zbdsqr.f
LAPACK/TIMING/EIG/EIGSRC/sgghrd.f | 4/26/2001 | Documentation improvement
LAPACK/TIMING/EIG/EIGSRC/dgghrd.f
| LAPACK/TIMING/EIG/EIGSRC/cgghrd.f | LAPACK/TIMING/EIG/EIGSRC/zgghrd.f
LAPACK/TIMING/EIG/EIGSRC/shgeqz.f | 5/3/2001 | Documentation improvement
LAPACK/TIMING/EIG/EIGSRC/dhgeqz.f
| LAPACK/TIMING/EIG/EIGSRC/chgeqz.f | LAPACK/TIMING/EIG/EIGSRC/zhgeqz.f
LAPACK/TIMING/EIG/EIGSRC/stgevc.f | 5/3/2001 | Removed erroneous HOWMNY='T' in input error-checking and documentation improvement
LAPACK/TIMING/EIG/EIGSRC/dtgevc.f
| LAPACK/TIMING/EIG/EIGSRC/ctgevc.f | LAPACK/TIMING/EIG/EIGSRC/ztgevc.f
LAPACK/TIMING/EIG/EIGSRC/strevc.f | 5/7/2001 | Documentation improvement
LAPACK/TIMING/EIG/EIGSRC/dtrevc.f
| LAPACK/TIMING/EIG/EIGSRC/ctrevc.f | LAPACK/TIMING/EIG/EIGSRC/ztrevc.f
LAPACK/TIMING/LIN/LINSRC/sgelsd.f | 10/4/2002 | Inserted missing instrumentation code, and corrected declaration of WLALSD
LAPACK/TIMING/LIN/LINSRC/dgelsd.f
| LAPACK/TIMING/LIN/LINSRC/cgelsd.f | LAPACK/TIMING/LIN/LINSRC/zgelsd.f
LAPACK/TIMING/LIN/LINSRC/sgelss.f | 4/25/2001 | Corrected error with LQUERY and setting of WORK(1), and bug in DO 40 loop
LAPACK/TIMING/LIN/LINSRC/dgelss.f
| LAPACK/TIMING/LIN/LINSRC/cgelss.f | LAPACK/TIMING/LIN/LINSRC/zgelss.f

## Details of existing software updates

UPDATES (Version 3.0) October 31, 1999 and May 31, 2000

The modifications listed below are included in the file: http://www.netlib.org/lapack/update.tgz as well as the http://www.netlib.org/lapack/lapack.tgz.

Note: Unless otherwise stated, changes to single precision routines (names beginning with S or C) apply also to the corresponding double precision routines (names beginning with D and Z).

To view/download individual updated files from this list, please consult the individual files on netlib.
http://www.netlib.org/lapack/single
http://www.netlib.org/lapack/double
http://www.netlib.org/lapack/complex
http://www.netlib.org/lapack/complex16

     -------------  -------    --------------------------
     DIRECTORY      ROUTINE    DESCRIPTION OF CHANGE
     -------------  -------    --------------------------
     LAPACK/        Makefile   Added ./ for executables

     LAPACK/
     BLAS/TESTING/  cblat3.f   Missing CMPLX intrinsic in assignment statement
                               Lines 1995-1996
                               ALPHA = ( ONE, -ONE )
                               BETA = ( TWO, -TWO )
                               should be
                               ALPHA = CMPLX( ONE, -ONE )
                               BETA = CMPLX( TWO, -TWO )
     SRC/
                   Makefile    Move slarrb.o, slarre.o, and slarrf.o to SCLAUX
                               Move dlarrb.o, dlarre.o, and dlarrf.o to DZLAUX

                   cheevr.f    Line 310 should instead be
                               RWORK(1) = LRWMIN

                   chetd2.f    Error in zero'ing of imaginary parts of diagonal
                               elements

                   chbgvd.f    Incorrect workspace calculation for LLWK2 and
                               LLRWK when N=1.

                   chpgvd.f    Missing LQUERY return

                   cstegr.f    Replace SSTEGR->CSTEGR in call to XERBLA

                   sbdsdc.f    Workspace correction
                               Line 113, 2*N --> 4*N
                               Documentation correction IWORK dimension

                   sbdsqr.f/   Workspace correction
                   cbdsqr.f    Line 99, 2*N --> 4*N

                   sgeev.f     Corrected error with LQUERY and WORK(1)

                   sgelsd.f/   Leading comment correction for A and LWORK and
                   cgelsd.f    workspace correction

                   sgelss.f/   Workspace correction
                              Line 178, 5*N-4 --> 5*N
                              Line 194, 5*M-4 --> 5*M
                   cgelss.f    Workspace correction
                              Line 95, 5*MIN(M,N)-1 --> 5*MIN(M,N)
                              Line 174, 5*N-1 --> 5*N
                              Line 204, 5*M-1 --> 5*M
                              Line 224, 5*M-1 --> 5*M

                   sgesdd.f/  Possible MAXWRK uninitialized and
                   cgesdd.f   and LWORK=-1 query insertion

                   sgesvd.f/  Workspace correction in comments
                              Line 118, 5*MIN(M,N)-4 --> 5*MIN(M,N)
                              Line 217, MAX(3*N,5*N-4) --> 5*N
                              Line 390, MAX(3*M,5*M-4) --> 5*M
                   cgesvd.f   Workspace correction in comments
                              Line 123, MAX(3*MIN(M,N),5*MIN(M,N)-4) --> 5*MIN(M,N)
                              Line 224, MAX(3*N,5*N-4) --> 5*N
                              Line 386, MAX(3*M,5*M-4) --> 5*M

                   sgtsv.f    Leading comment correction for B

                   slaed2.f   Error in routine name passed to XERBLA

                   slaed4.f   Corrected error in rootfinding

                   slals0.f/  Out-of-range array reference
                   clals0.f

                   slalsd.f/  Leading comment correction for LWORK and a
                   clalsd.f   call to SLASRT was added

                   slarzb.f/  Out-of-range array reference
                   clarzb.f

                   slasd2.f   Fix out-of-range memory reference when N=0

                   slasd3.f   Fix out-of-range memory reference when N=0

                   slasd4.f   Cray compiler workaround on lines 596-597 and 607-608

                   slasda.f   Leading comment correction for size of WORK

                   slasdq.f   Workspace correction
                              Line 115, max(1,4*N-4) --> 4*N
                              and incorrect routine name passed to XERBLA

                   slasq1.f   Workspace correction
                              Line 53, 2*N --> 4*N
                              and modifications for IEEE

                   slasq2.f   Fix out-of-range error for N=1 and modifications
                              for IEEE

                   slasq3.f   Modifications for IEEE and index correction
                              I0-->N0 on line 193

                   slasq4.f   Modifications for IEEE
                   slasq5.f   Modifications for IEEE
                   slasq6.f   Modifications for IEEE

                   sormrz.f   Missing LQUERY return

                   spteqr.f/  Workspace correction
                   cpteqr.f   Line 78, 2*N --> 4*N

                   sstevr.f   Documentation correction and call to SSTEGR

                   ssyevr.f/  Documentation correction and call to SSTEGR
                   cheevr.f

     TESTING/
                   Makefile   Added ./ for executables

                   sgd.in/    Fixed NSIZE line for xGX
                   cgd.in     Replace line 18 with
                       5              Largest matrix dimension (0 <= NSIZE <= 5)

     TESTING/MATGEN/
                   slatm6.f   Modification for SGESVD workspace change

     TESTING/LIN/
                   schkgb.f/  Missing integer item in 9996 FORMAT statement
                   cchkgb.f

                   schkge.f/  Correction to FORMAT statements
                   cchkge.f

                   schkpb.f/  Removal of XTYPE='C' line
                   cchkpb.f

                   schkpo.f/  Removal of XTYPE='C' line
                   cchkpo.f

                   schkpp.f/  Removal of XTYPE='C' line
                   cchkpp.f

                   schksp.f/  Removal of XTYPE='C' line
                   cchksp.f

                   schksy.f/  Removal of XTYPE='C' line
                   cchksy.f

                   schktb.f/  Correction to FORMAT statements
                   cchktb.f

                   schktp.f/  Correction to FORMAT statements
                   cchktp.f

                   schktr.f/  Correction to FORMAT 9999 and 9998 statements
                   cchktr.f

                   sdrvls.f/  Correction to argument passed to INTRINSIC and
                   cdrvls.f   remove a call to SLASRT in TEST 15;
                              Correction to leading comments (IWORK)

     TESTING/EIG/
                   schkhs.f   Fixed out-of-range error for N=0

                   sdrgsx.f/  BDSPAC correction for xGESVD workspace and
                   cdrgsx.f   initialize IFUNC = 0

                   sdrvbd.f/  IWTMP correction for xGESVD workspace
                   cdrvbd.f

                   sdrvst.f/  Out-of-range array reference.
                   cdrvst.f

                   cerrbd.f   Correction to summary line

                   serred.f/  Correction to summary line
                   cerred.f

     TIMING/
                   Makefile    Erroneous sgeptim.in instead of SGEPTIM.in on
                               line 253

     TIMING/LIN/
                   stimls.f/   Correction to size of LWORK for xGELSD
                   ctimls.f

                   stimq3.f/   Correction Q3->QP before ATIMIN call
                   ctimq3.f

     TIMING/LIN/LINSRC/
                   sgelsd.f/   Same correction as in SRC
                   cgelsd.f

                   sgelss.f/   Same correction as in SRC
                   cgelss.f

                   slals0.f/   Same correction as in SRC
                   clals0.f

                   slalsd.f/   Same correction as in SRC
                   clalsd.f

     TIMING/EIG/
                   stim22.f/   Disable timing of SSTEGR if non-IEEE-754 compliant
                   ctim22.f

     TIMING/EIG/EIGSRC/
                   sbdsdc.f    Same correction as in SRC

                   sbdsqr.f/   Same correction as in SRC
                   cbdsqr.f

                   sgesdd.f/   Same correction as in SRC
                   cgesdd.f

                   slaed2.f    Same correction as in SRC

                   slasd2.f    Same correction as in SRC
                   slasd3.f    Same correction as in SRC
                   slasd4.f    Same correction as in SRC

                   slasdq.f    Same correction as in SRC

                   slasq1.f    Same correction as in SRC
                   slasq2.f    Same correction as in SRC
                   slasq3.f    Same correction as in SRC
                   slasq4.f    Same correction as in SRC
                   slasq5.f    Same correction as in SRC
                   slasq6.f    Same correction as in SRC

                   spteqr.f/   Same correction as in SRC
                   cpteqr.f