LAPACK-3.2.2
updated on Mon June 21 2010
file created by J. Langou, U. Tennessee, and J. Langou, U. Colorado Denver

LAPACK-3.2.2 is a bug fix release.
LAPACK-3.2.2 now includes the CMAKE build system.

Bug Correction
==============

(*) bug0014 :: CSYEQUB/ZSYEQUB/SSYEQUB/DSYEQUB/CHEEQUB/CHEEQUB: EXTERNAL and INTRINSIC list are not accurate (or not even present) 
(*) svn :: r660

    o bug report sent by Alexander V. Kobotov (Intel) on Mon, 6 Apr 2009 to "lapack@cs.utk.edu".
      "c(he/sy)equb: no slamch in external lists and lsame, intrinsics not described"
      Same problem for D and S versions and for the WORK array.
    o committed by Julien Langou (SVN revision 660 on Sun May 10 2009)

(*) bug0015 :: referencing WORK(1) and IWORK(1) when IJOB=0 in CTGSEN/DTGSEN/STGSEN/ZTGSEN contradicts header description
(*) svn :: r658,659

    o bug report sent by Alexander V. Kobotov (Intel) on Mon, 6 Apr 2009 to "lapack@cs.utk.edu".
      "(d/s)tgsen.f: iwork(1) always referenced: line 455: iwork( 1 ) = LIWMIN, documentation says that
      if IJOB=0 it shouldn't, so NULL pointer causes a segfault."
      Same problem for C and Z versions and for the WORK array.
    o committed by Julien Langou (SVN revision 658 and 659, on Sun May 10 2009)

(*) bug0016 :: problem in workspace query for CGEESX/DGEESX/SGEESX/ZGEESX
(*) svn :: r657

    o bug report sent by Alexander V. Kobotov (Intel) on Mon, 6 Apr 2009 to "lapack@cs.utk.edu".
      "(c/z)geesx: no lwork=-1 branch at all, info = -15 is returned while doing lquery."
      The S and D versions were not exiting after WORKSPACE query as well.
    o committed by Julien Langou (SVN revision 657, on Sun May 10 2009)

(*) bug0017 :: in CHBGST/ZHBGST, reference to uninitialized elements of RWORK in the DO 240 and DO 470 loops
(*) svn :: r656

    o patch given by Lawrence Mulholland (NAG) on Wed May 06 2009 
    o see forum topic 1408
    o committed by Julien Langou (SVN revision 656, on Sun May 10 2009)

(*) bug0019 :: 'make install' generates a "*** Error: Time for operations was zero" too easily
(*) bug0019 :: negative flop counts can be generated by 'make install'
(*) svn :: r693
    o reported by Sergei Steshenko on Thu Nov 20 2008
    o see: emails
    o committed by Julie Langou (SVN revision 693, on Fri Sep 11 2009)
    
(*) bug0021 :: in DGESDD, workspace query gives a value smaller than the minimal value given in the header to run the routine
(*) svn :: r649
    o reported by Guy Bencteux on Sat Dec 06 2008
    o see forum topic 846
    o committed by Julie Langou (SVN revision 649, on Tue Mar 17 2009)

(*) bug0023 :: SROTMG and DROTMG uses deprecated Fortran ASSIGN statement and assigned GOTO statement
(*) svn :: r691

    o reported by Marco Atzeri on Fri Mar 06 2009
    o see forum topic 1420
    o committed by Julie Langou (SVN revision 691, on Thu Sep 10 2009)
 
(*) bug0031 :: whitespace fix in comments
(*) svn :: r692

    o reported by "Jan" on Tue Jun 02 2009
    o see forum topic 1449
    o committed by Julie Langou (SVN revision 692, on Fri Sep 11 2009)

(*) bug0038 :: out of range element access in DLASET when using DGELSS
(*) svn :: r695

    o bug report sent by Tim Hopkins on Fri 31 Jul 2009
    o see forum topic 1582
    o committed by Julie Langou (SVN revision 695, on Fri Sep 25 2009)

(*) bug0041 :: printing format misuse in ./TESTING/EIG/[s,c,d,z]drvgbx.f
(*) svn :: r696

    o bug report sent by Michael Chuvelev (Intel) on Tue 29 Jul 2009 to "lapack@cs.utk.edu".
      "Bug in lapack-3.2.1/TESTING/EIG/zdrvgbx.f"
    o printing format misuse, this would possibly lead to a segmentation fault in case of errors in zgbsvxx. 
    o committed by Julien Langou (SVN revision 696, on Tue Sep 29 2009)
    
(*) bug0042 :: printing format misuse in ./TESTING/EIG/[s,c,d,z]drvgbx.f
(*) svn :: r697

    o bug report sent by Kevin Wadleigh on Tue 29 Sep 2009 to "lapack@cs.utk.edu".
      "LAPACK routine ieeeck.f and compiler optimizations"
    o The LAPACK function IEEECK should be modified to keep compilers from optimizing away the line
      NAN6 = NAN5*0.0
      and replacing it by NAN6 = 0.0.
      I've seen this happen using two different compilers at their default level of optimization. However, using
      NAN6 = NAN5*ZERO
      as in the attached file keeps this from happening.
    o committed by Julie Langou (SVN revision 697, on Wed Sep 30 2009)
    
(*) bug0043 :: VL, VU are referenced in lapack-3.2.1 dsyevr even if range.ne.'V'
(*) svn :: r699

   o bug report sent by Michael Chuvelev (Intel) on Wed, 14 Oct 2009 to "lapack@cs.utk.edu".
      "VL, VU are referenced in lapack-3.2.1 dsyevr even if range.ne.'V'"
   o committed by Julien Langou (SVN revision 699, on Tue Oct 20 2009)
    
(*) bug0044 :: bug in dsyevr.f when N = 1
(*) svn :: r704

   o bug report and fix sent by Ashutosh Mahajan (Mathematics and Computer Science Division of Argonne National Labs) on Fri, 11 Dec 2009 to "lapack@cs.utk.edu".
   o committed by Julien Langou (SVN revision 704, on Tue Dec 15 2009)
    
(*) bug0045 :: bug in dstemr.f when N = 2
(*) svn :: r705

   o bug report and fix sent by Ashutosh Mahajan (Mathematics and Computer Science Division of Argonne National Labs) on Thu, 10 Dec 2009 to "lapack@cs.utk.edu".
   o committed by Julien Langou (SVN revision 705, on Tue Dec 15 2009)
    
(*) bug0038 :: no LIWORK query in DGELSD
(*) svn :: r698

    o bug report from Mathew Cross on Tue 18 Aug 2009 
    o see forum topic 1601
    o committed by Julie Langou (SVN revision 698, on Thu Oct 20 2009)
    
(*) bug0046 :: Incorrectly documented RWORK workspace in ZGESDD
(*) svn :: r729

    o bug report from Zbigniew on Mon 15 Mar 2010 
    o see forum topic 1779
    o committed by Julie Langou (SVN revision 729, on Thu Mar 18 2010)

(*) bug0047 :: incorrect R/C parameter description in *gerfsx
(*) svn :: r726

    o bug report sent by Michael Chuvelev (Intel) on Wed, 1 Mar 2010 to "lapack@cs.utk.edu".
    o bug fix sent by James Demmel
       "R/C are input only by their usage"
       "there's no FACT parameter in these routines"
    o committed by Julie Langou (SVN revision r726, on Tue Mar 9 2010)
   
(*) bug0048 :: Hanging could occur in *gebal if a NaN is in input matrix.
(*) svn :: r730

    o bug report and fix sent by Alexander Kobotov (Intel) on Wed, 3 Feb 2010 to "lapack@cs.utk.edu".
    o committed by Julie Langou (SVN revision r730, on Tue Mar 9 2010)
      
(*) bug0049 :: output parameter GIVPTR stays uninitialized in case of quick exit (n.eq.0) or if the rank-1 modifier is small enough in *laed8.
(*) svn :: r731

    o bug report and fix sent by Alexander Kobotov (Intel) on Wed, 3 Feb 2010 to "lapack@cs.utk.edu".
    o committed by Julie Langou (SVN revision r731, on Tue Mar 9 2010)
    
(*) bug0050 :: An extra argument after matrix A lines 348-249 in STFSM.f causes a crash of SGEMM call.
(*) svn :: r732

    o bug report and fix sent by Alexander Kobotov (Intel) on Wed, 3 Feb 2010 to "lapack@cs.utk.edu".
    o committed by Julie Langou (SVN revision r732, on Tue Mar 9 2010)
    
(*) bug0051 :: INFO=N+2 in xDGGES due to too stringent threshold in xTGEX2.
(*) svn :: r735

    o bug report sent by Ondra Kamenik on Tue Mar 16, 2010
    o see forum topic 1783
    o We have changed xLARFG to xLARFP in xGEQR2. xGEQR2 is used by xDGGES. The
      matrices are therefore different (although all of them are correct.) However
      for the matrix generated by xLARFP, xTGEX2 exceeds the THRES value by 10%,
      causing an error flag. We decided to increase THRES by a factor of 2.
      Although the bug was triggered by the change from xLARFG to xLARFP, XLARFP 
      is not really at guilt.
    o confirmed by Julie Langou on Thu Mar 18 2010
    o fix provided by Guillaume Revy and Jim Demmel
    o committed by Julien Langou (SVN revision r735, on Thu Apr 2 2010)

(*) bug0052 :: Incorrect NRHS parameter in call to ?SYTRS from ?la_{po,sy,he}rfsx_extended.f.
(*) svn :: r736

    o bug report and fix sent by Michael Chuvelev (Intel) on Fri, 2 Apr 2010 to "lapack@cs.utk.edu".
    o committed by Julie Langou (SVN revision r736, on Fri, Apr 2 2010) 
    
(*) bug0053 :: Fix external declaration issue in testing suite file: cebchvxx.f
(*) svn :: r738

    o bug report and fix sent by Michael Chuvelev (Intel) on Fri, 5 Apr 2010 to "lapack@cs.utk.edu".
    o committed by Julie Langou (SVN revision r738, on Fri, Apr 5 2010)
    
(*) bug0054 :: Fix comment some of the argument descriptions have the wrong type.
(*) svn :: r739

    o bug report sent by Paul Roberts (NAG) on Fri, 12 Apr 2010 to "lapack@cs.utk.edu".
    o committed by Julie Langou (SVN revision r739, on Fri, Apr 12 2010)
        
(*) bug0055 :: Missing arguments descriptions of work and uplo in [csz]syequb
(*) svn :: r740

    o bug report sent by Paul Roberts (NAG) on Fri, 13 Apr 2010 to "lapack@cs.utk.edu".
    o committed by Julie Langou (SVN revision r740, on Fri, Apr 13 2010)
    
(*) bug0058 :: variable N0 in xLASQ3 is INPUT/OUTPUT. (The comments said INPUT.)
(*) svn :: r750

    o  bug report and bug fix are from William Gandler (NIH/CIT) on October 16, 2009; April 23,
2010; May 01, 2010, May 03, 2010. to "lapack@cs.utk.edu".
    o committed by Julie Langou (SVN revision r750, on Fri, May 27 2010)

    
(*) bug0059 ::    ZGELSD crashes on large matrices (eq M=N=NHRS>=88), if real workspace allocated exactly as reported on workspace query.
(*) svn :: r765

    o bug report and fix sent by Alexander Kobotov (Intel) on Wed, 23 June 2010 to "lapack@cs.utk.edu".
    o Root cause is wrong estimation of real workspace size in ZLALSA (on path zgelsd->zlalsd->zlalsa).
      It assumes that RWORK array length should be max( N, (SMLSZ+1)*NRHS*3 ), where SMLSIZ=25.
      But in fact the function calls zlals0 which requires RWORK to be ( K*(1+NRHS) + 2*NRHS ), 
      where K could be as large as number of columns in matrix A.
      The same is actual for CGELSD.
    o committed by Julie Langou (SVN revision r765, on Thu, June 24 2010)
    
(*) bug0060 ::    Bug in dtgsy2, missing IWORK call
(*) svn :: r767

    o bug report and fix sent by Vasile Sima on 24 Feb 2009 to "lapack@cs.utk.edu".
    o The error is that "IWORK" must appear in the line 640.  (It was included in the 1999 version.)
      Note that the statement IE = ( I+1 ) - 1 is strange;  also, in other similar place, IWORK is used like below.
    o committed by Julie Langou (SVN revision r767, on Thu, June 24 2010)


(*) Wrong type for workspace in cpot01 and zpot01
(*) svn :: r655

    o Bug reported by Julie Langou on Th. 04/30/09
    o Workspace types needed by CPOT01 and ZPOT01, they need to be REAL (or DOUBLE PRECISION) 
      and not COMPLEX (or DOUBLE COMPLEX).
    o committed by Julie Langou (SVN revision r655, on Sun, May 3 2009)

(*) Revert DLARFG to 3.1.0, move DLARFG to DLARFP and improved DLARFP
(*) svn :: (r706, r707, r708, r710, r712, r713) + (r755) 

    o Bug reported by Pat Quillen (MathWorks)

    o The Householder reflector generation routine dlarfg (for double precision)
      has been changed in LAPACK-3.2 by dlarfp to generate nonnegative
      diagonal elements (on the diagonal of the R factor of a QR
      factorization).  There is an issue in the dlarfp subroutine in
      LAPACK-3.2. The bug report is from Pat Quillen from MathWorks, have
      participated in the bug fix: Pat Quillen, Jim Demmel, Sven Hammarling,
      Mark Hoemmen, Guillaume Revy, William Kahan, Julie Langou and Julien
      Langou.

    o Extensive work by Jim Demmel, Guillaume Revy, and William Kahan have
      revealed that the new Householder reflector that guarantees a positive
      diagonal of R in QR has two apparently unfixable drawbacks compared to
      the old reflector:
      1) the computed reflector can be less orthogonal by a factor of about 4,
         (Jim, Guillaume and William are not sure why.)
      2) this new routine is intrinsically more sensitive to over/underflow,
         this is now well understood, details are skipped here.
      None of these issues arise with the conventional Householder reflector.

    o So the decision is to

      1) Fix as much as possible the xLARFP routines. This was corrected by
         Julien (see (r706, r707, r708, r710, r712, r713)) based on Jim's idea.

      2) Back out the changes in LAPACK to go back to using the old reflector
	 (xlarfg) everywhere (e.g. in xGEQRF, xGEQR2, etc.).

      3) Keep the change that saves flops when u has lots of trailing zeros,
         since this is independently a good idea.

      4) Change the name from xLARFP to xLARFGP and introduce new QR routines
	 (xGEQRFP and xGEQR2P) that uses xlarfp to guarantee a new positive
         diagonal of R, for who needs it.

      5) This requires to adapt the test suites

      6) Note: only the QR routines have an xGEQRFP. While it seems that quite
         a few users care for QR factorization with nonnegative diagonal R. Noone
	 seemed to care for this feature on LQ, QL or RQ. So we have left out
         these routines.

       7) Steps 2 to 6 were done during r755 by Julie.

(*) bug0025 :: serious problem in DGESDD: DGESDD returns negative singular values with INFO = 0
(*) svn :: r760

    o reported by Guy Bencteux on Sat Dec 06 2008
    o see forum topic 847
    o At the time, Julie was not able to reproduce the bug. The bug is highly BLAS dependent.
    o on Sat Jun 19 2010, Bruno Pinçon from ESIAL, reported another matrix with the same problems
    o see forum topic 1868
    o we were able to reproduce the problem with MacOS with gfortran reference LAPACK
      and vecLib BLAS, we can not reproduce the problem with reference LAPACK and reference BLAS.
    o A patch has been proposed and committed by Julien Langou. (See forum topic 1868.)
    o Note: there is strong evidence that the bug of Guy Bencteux and this one
      are the same, although we were never able to reproduce Guy's problem. 
    
 (*) Comments fix
    o Rev 662: SRC/clarrv.f, SRC/dlaeda.f, SRC/dlarrv.f, SRC/slaeda.f, SRC/slarrv.f, SRC/zlarrv.f
    o Rev 664: SRC/chesvxx.f, SRC/cposvxx.f, SRC/csysvxx.f, SRC/dposvxx.f, SRC/dsysvxx.f, SRC/sposvxx.f,
               SRC/ssysvxx.f, SRC/zhesvxx.f, SRC/zposvxx.f, SRC/zsysvxx.f
    o Rev 692: SRC/dgbrfsx.f, SRC/dgbsvxx.f, SRC/dgejsv.f, SRC/dgerfsx.f, SRC/dgesc2.f, SRC/dgesvj.f, 
               SRC/dgesvxx.f, SRC/dggbal.f, SRC/dgsvj0.f, SRC/dgsvj1.f, SRC/disnan.f, SRC/dla_lin_berr.f, 
               SRC/dla_porcond.f, SRC/dlaein.f, SRC/dlaexc.f, SRC/dlaisnan.f, SRC/dlaneg.f, SRC/dlaqr2.f, 
               SRC/dlaqr3.f, SRC/dlarra.f, SRC/dlarre.f, SRC/dlarrf.f, SRC/dlarrj.f, SRC/dlarrv.f, 
               SRC/dlarscl2.f, SRC/dlatdf.f, SRC/dpbequ.f, SRC/dpftri.f, SRC/dpftrs.f, SRC/dporfsx.f, 
               SRC/dpstf2.f, SRC/dpstrf.f, SRC/dsgesv.f, SRC/dspcon.f, SRC/dsposv.f, SRC/dsycon.f, SRC/dsyequb.f, 
               SRC/dsygvx.f, SRC/dsyrfsx.f, SRC/dsysvxx.f, SRC/dtftri.f, SRC/dtfttp.f, SRC/dtfttr.f, SRC/dtgex2.f, 
               SRC/dtgexc.f, SRC/dtpttf.f, SRC/dtrttf.f, SRC/ilaprec.f, SRC/ilaslr.f, SRC/sisnan.f

    o Rev 714: SRC/chfrk.f, SRC/chla_transtype.f, SRC/cla_gbamv.f, SRC/cla_gbrpvgrw.f, SRC/cla_geamv.f,
               SRC/cla_heamv.f, SRC/cla_herpvgrw.f, SRC/cla_lin_berr.f, SRC/cla_porpvgrw.f, SRC/cla_rpvgrw.f,
               SRC/cla_syamv.f, SRC/cla_syrpvgrw.f, SRC/cla_wwaddw.f, SRC/ctfsm.f, SRC/disnan.f, SRC/dla_gbamv.f,
               SRC/dla_gbrpvgrw.f, SRC/dla_geamv.f, SRC/dla_lin_berr.f, SRC/dla_porpvgrw.f, SRC/dla_rpvgrw.f, 
               SRC/dla_syamv.f, SRC/dla_syrpvgrw.f, SRC/dla_wwaddw.f, SRC/dlaisnan.f, SRC/dlarrf.f, SRC/dlasdt.f, 
               SRC/dlasq3.f, SRC/dsfrk.f, SRC/dtfsm.f, SRC/ilaclc.f, SRC/ilaclr.f, SRC/iladlc.f, SRC/iladlr.f, 
               SRC/ilaslc.f, SRC/ilaslr.f, SRC/ilazlc.f, SRC/ilazlr.f, SRC/sisnan.f, SRC/sla_gbamv.f, 
               SRC/sla_gbrpvgrw.f, SRC/sla_geamv.f, SRC/sla_lin_berr.f, SRC/sla_porpvgrw.f, SRC/sla_rpvgrw.f, 
               SRC/sla_syamv.f, SRC/sla_syrpvgrw.f, SRC/sla_wwaddw.f, SRC/slaisnan.f, SRC/slaneg.f, SRC/slarrf.f, 
               SRC/slasdt.f, SRC/slasq3.f, SRC/ssfrk.f, SRC/stfsm.f, SRC/xerbla_array.f, SRC/zhfrk.f, SRC/zla_gbamv.f, 
               SRC/zla_gbrpvgrw.f, SRC/zla_geamv.f, SRC/zla_heamv.f, SRC/zla_herpvgrw.f, SRC/zla_lin_berr.f, 
               SRC/zla_porpvgrw.f, SRC/zla_rpvgrw.f, SRC/zla_syamv.f, SRC/zla_syrpvgrw.f, SRC/zla_wwaddw.f, SRC/ztfsm.f
    0 Rev 718: SRC/disnan.f, SRC/dlaisnan.f, SRC/dlarrf.f, SRC/sisnan.f, SRC/slaisnan.f, SRC/slarrb.f, 
               SRC/slarrc.f, SRC/slarre.f, SRC/slarrf.f, SRC/slarrj.f, SRC/slarrr.f, SRC/slarrv.f
    o Rev 719: SRC/cgeqpf.f, SRC/chseqr.f, SRC/dgeqpf.f, SRC/dhseqr.f, SRC/dlanv2.f, SRC/sgeqpf.f, SRC/shseqr.f,
               SRC/slanv2.f, SRC/zgeqpf.f, SRC/zhseqr.f
    o Rev 726: SRC/cgerfsx.f, SRC/dgerfsx.f, SRC/sgerfsx.f, SRC/zgerfsx.f
    o Rev 733: SRC/cpstf2.f, SRC/cpstrf.f, SRC/ctfsm.f, SRC/dsgesv.f, SRC/dsposv.f, SRC/spstf2.f,
               SRC/spstrf.f, SRC/stfsm.f, SRC/zcgesv.f, SRC/zcposv.f, SRC/zpstf2.f, SRC/zpstrf.f
    o Rev 737: SRC/ilaprec.f
    o Rev 741: TESTING/MATGEN/clahilb.f, TESTING/MATGEN/claror.f, TESTING/MATGEN/clatm1.f, TESTING/MATGEN/clatm2.f,
               TESTING/MATGEN/clatm3.f, TESTING/MATGEN/clatm6.f, TESTING/MATGEN/clatme.f, TESTING/MATGEN/clatmr.f, 
               TESTING/MATGEN/clatms.f, TESTING/MATGEN/clatmt.f, TESTING/MATGEN/dlahilb.f, TESTING/MATGEN/dlatm1.f, 
               TESTING/MATGEN/dlatm2.f, TESTING/MATGEN/dlatm3.f, TESTING/MATGEN/dlatme.f, TESTING/MATGEN/dlatmr.f, 
               TESTING/MATGEN/dlatms.f, TESTING/MATGEN/dlatmt.f, TESTING/MATGEN/slahilb.f, TESTING/MATGEN/slatm1.f, 
               TESTING/MATGEN/slatm2.f, TESTING/MATGEN/slatm3.f, TESTING/MATGEN/slatme.f, TESTING/MATGEN/slatmr.f, 
               TESTING/MATGEN/slatms.f, TESTING/MATGEN/slatmt.f, TESTING/MATGEN/zlahilb.f, TESTING/MATGEN/zlaror.f, 
               TESTING/MATGEN/zlatm1.f, TESTING/MATGEN/zlatm2.f, TESTING/MATGEN/zlatm3.f, TESTING/MATGEN/zlatme.f, 
               TESTING/MATGEN/zlatmr.f, TESTING/MATGEN/zlatms.f, TESTING/MATGEN/zlatmt.f
    o Rev 748: SRC/dlansf.f, SRC/dpftrf.f, SRC/dpftri.f, SRC/dpftrs.f, SRC/dtfsm.f, SRC/dtftri.f,
               SRC/dtfttp.f, SRC/dtfttr.f, SRC/dtpttf.f, SRC/dtrttf.f, SRC/slansf.f, SRC/spftrf.f,
               SRC/spftri.f, SRC/spftrs.f, SRC/stfsm.f, SRC/stftri.f, SRC/stfttp.f, SRC/stfttr.f,
               SRC/stpttf.f, SRC/strttf.f
    o Rev 749: SRC/dla_gbrcond.f, SRC/sla_gbrcond.f  
    o Rev 756: SRC/dlasd0.f, SRC/slasd0.f
    o Rev 757: SRC/dbdsdc.f, SRC/sbdsdc.f
    o Rev 758: SRC/clalsd.f, SRC/dlalsd.f, SRC/dlasd1.f, SRC/dlasd3.f, SRC/dlasd6.f, SRC/dlasd8.f, SRC/dlasda.f,
               SRC/slalsd.f, SRC/slasd1.f, SRC/slasd3.f, SRC/slasd6.f, SRC/slasd8.f, SRC/slasda.f, SRC/zlalsd.f

Previous Release Notes
======================

   o LAPACK-3.2.1
   o LAPACK-3.2