================
== LAPACK 3.1 ==
================
Release date: Su 11/12/2006.
This material is based upon work supported by the National Science Foundation
under Grant No. NSF-0444486.
* LAPACK 3.1: What's new
* Contributor list
* Developer list
* Thanks
* LAPACK subroutine interface policy
* More details
=============================
== LAPACK 3.1: What's new ==
=============================
1) Hessenberg QR algorithm with the small bulge multi-shift QR algorithm
together with aggressive early deflation. This is an implementation of the
2003 SIAM SIAG LA Prize winning algorithm of Braman, Byers and Mathias,
that significantly speeds up the nonsymmetric eigenproblem.
2) Improvements of the Hessenberg reduction subroutines. These accelerate the
first phase of the nonsymmetric eigenvalue problem. See the reference by
G. Quintana-Orti and van de Geijn below.
3) New MRRR eigenvalue algorithms that also support subset computations.
These implementations of the 2006 SIAM SIAG LA Prize winning algorithm of
Dhillon and Parlett are also significantly more accurate than the version
in LAPACK 3.0.
4) Mixed precision iterative refinement subroutines for exploiting fast single
precision hardware. On platforms like the Cell processor that do single
precision much faster than double, linear systems can be solved many times
faster. Even on commodity processors there is a factor of 2 in speed
between single and double precision. These are prototype routines in the
sense that their interfaces might changed based on user feedback.
5) New partial column norm updating strategy for QR factorization with column
pivoting. This fixes a subtle numerical bug dating back to LINPACK that can
give completely wrong results. See the reference by Drmac and Bujanovic
below.
6) Thread safety: Removed all the SAVE and DATA statements (or provided
alternate routines without those statements), increasing reliability
on SMPs.
7) Additional support for matrices with NaN/subnormal elements, optimization
of the balancing subroutines, improving reliability.
8) Several bug fixes.
9) Timing have been removed from the LAPACK package. The TIMING need to be
updated with respect to the new algorithms in LAPACK. We are also
renovating the way FLOPS are counted.
==================
== Contributors ==
==================
1) Hessenberg QR algorithm with the small bulge multi-shift QR algorithm
together with aggressive early deflation.
Karen Braman and Ralph Byers, Dept. of Mathematics,
University of Kansas, USA
2) Improvements of the Hessenberg reduction subroutines.
Daniel Kressner, Dept. of Mathematics,
University of Zagreb, Croatia
3) New MRRR eigenvalue algorithms that also support subset computations
Inderjit Dhillon, University of Texas at Austin, USA
Beresford Parlett, Universtiy of California at Berkeley, USA
Christof Voemel, Lawrence Berkeley National Laboratory, USA
4) Mixed precision iterative refinement subroutines for exploiting fast
single precision hardware.
Julie Langou, UTK, Julien Langou, CU Denver, Jack Dongarra, UTK.
5) New partial column norm updating strategy for QR factorization with
pivoting.
Zlatko Drmac and Zvonomir Bujanovic, Dept. of Mathematics,
University of Zagreb, Croatia
6) Thread safety: Removed all the SAVE and DATA statements (or provided
alternate routines without those statements)
Sven Hammarling, NAG Ltd., UK
7) Additional support for matrices with NaN/subnormal elements, optimization
of the balancing subroutines
Bobby Cheng, MathWorks, USA
======================================
== Thanks for bug-report/patches to ==
======================================
* Eduardo Anglada (Universidad Autonoma de Madrid, Spain)
* David Barnes (University of Kent, England)
* Alberto Garcia (Universidad del Pais Vasco, Spain)
* Tim Hopkins (University of Kent, England)
* Javier Junquera (CITIMAC, Universidad de Cantabria, Spain)
* Mathworks: Penny Anderson, Bobby Cheng, Pat Quillen, Cleve Moler, Duncan
Po, Bin Shi, Greg Wolodkin (MathWorks, USA)
* George McBane (Grand Valley State University, USA)
* Matyas Sustik (University of Texas at Austin, USA)
* Michael Wimmer (Universität Regensburg, Germany)
* Simon Wood (University of Bath, UK) and in more generally all the R
developers
===========================
= Principal Investigators =
===========================
Jim Demmel (University or California at Berkeley, USA)
Jack Dongarra (University of Tennessee and ORNL, USA)
================================================
== LAPACK developers involved in this release ==
================================================
Ralph Byers (University of Kansas, USA)
Zlatko Drmac (University of Zagreb, Croatia)
Remi Delmas (University of Tennessee, USA)
Sven Hammarling (NAG Ltd., UK)
Yozo Hida (University of California at Berkeley, USA)
Daniel Kressner (University of Zagreb, Croatia)
Julie Langou (University of Tennessee, USA)
Julien Langou (CU Denver, USA)
Ren-Cang Li ( University of Texas at Arlington, USA)
Xiaoye Li (Lawrence Berkeley Laboratory, USA)
Osni Marques (Lawrence Berkeley Laboratory, USA)
E. Jason Riedy (University of California at Berkeley, USA)
Edward Smyth (NAG Ltd., UK)
Christof Voemel (Lawrence Berkeley Laboratory, USA)
========================================
== LAPACK subroutine interface policy ==
========================================
The interfaces to primary computational routines are fixed and
will not be changed by minor LAPACK versions (e.g. 3.x).
Primary routines are those prefixed by a precision and matrix
type like SGERFS, CUNMQR, ZHEGV, etc., and these interfaces
will remain the same for all LAPACK version 3 versions.
Most routines labelled as auxiliary are implementation
details for specific algorithms and may have their interfaces
changed by minor versions. Auxiliary routines are those prefixed
by a precision and LA like SLAQR3. Some auxiliary routines
are of general use and are subject to the same fixed-interface
policy as the primary computational routines. The current list
of fixed-interface auxiliary routines is as follows, with x
standing for a precision and yy standing for a matrix type:
* ILAENV : Environmental parameters
* SLAMCH, DLAMCH : Machine parameters
* xLACON : Norm estimation, not thread-safe
* xLACN2 : Norm estimation, thread-safe
* xLANyy : Simple norm calculations (note: xLANEG is not related
to these and may change)
* xLASWP : Row interchanges
* xLARF, xLARZ : Applying single elementary reflection
This list may grow by user request.
The interface change for this LAPACK 3.1 version are:
SLAR1V SLARRB SLARRE SLARRF SLARRV
DLAR1V DLARRB DLARRE DLARRF DLARRV
=================
== More details =
=================
----------------------------------------------------------------------------
1) Hessenberg QR algorithm with the small bulge multi-shift QR algorithm
together with aggressive early deflation.
----------------------------------------------------------------------------
Contributors:
=============
Karen Braman and Ralph Byers, Dept. of Mathematics, University of
Kansas, USA,
July 2006.
Comments:
=========
This is an implementation of the 2003 SIAM SIAG LA Prize winning algorithm
of Braman, Byers and Mathias, that significantly speeds up the nonsymmetric
eigenproblem.
Changes:
========
M SRC/{c,d,s,z}gees.f
M SRC/{c,d,s,z}geev.f
M SRC/{c,d,s,z}geesx.f
M SRC/{c,d,s,z}geevx.f
A SRC/{c,d,s,z}laqr0.f
A SRC/{c,d,s,z}laqr1.f
A SRC/{c,d,s,z}laqr2.f
A SRC/{c,d,s,z}laqr3.f
A SRC/{c,d,s,z}laqr4.f
A SRC/{c,d,s,z}laqr5.f
M SRC/{c,d,s,z}hseqr.f
M SRC/{c,d,s,z}lahqr.f
M SRC/ilaenv.f
A SRC/iparmq.f
A SRC/{c,d,s,z}laqr0.f
A SRC/{c,d,s,z}laqr1.f
A SRC/{c,d,s,z}laqr2.f
A SRC/{c,d,s,z}laqr3.f
A SRC/{c,d,s,z}laqr4.f
A SRC/{c,d,s,z}laqr5.f
References:
===========
[1] K. Braman, R. Byers and R. Mathias, The Multi-Shift QR Algorithm Part
I: Maintaining Well Focused Shifts, and Level 3 Performance, SIAM
Journal of Matrix Analysis, 23:929-947, 2002.
[2] K. Braman, R. Byers and R. Mathias, The Multi-Shift QR Algorithm Part
II: Aggressive Early Deflation, SIAM Journal of Matrix Analysis,
23:948-973, 2002.
----------------------------------------------------------------------------
2) Improvements of the Hessenberg reduction subroutines.
----------------------------------------------------------------------------
Contributor:
============
Daniel Kressner, Dept. of Mathematics, University of Zagreb, Croatia.
June 2006.
Comments:
=========
These accelerate the first phase of the nonsymmetric eigenvalue problem.
Changes:
========
M SRC/{c,d,s,z}gehrd.f
A SRC/{c,d,s,z}lahr2.f
D SRC/{c,d,s,z}lahrd.f
Reference:
==========
[1] Gregorio Quintana-Orti and Robert van de Geijn, Improving the
Performance of Reduction to Hessenberg Form. ACM Transactions on
Mathematical Software, 32(2):180-194, June 2006.
----------------------------------------------------------------------------
3) New MRRR eigenvalue algorithms that also support subset computations
----------------------------------------------------------------------------
Contributors:
=============
Inderjit Dhillon, University of Texas at Austin, USA
Beresford Parlett, Universtiy of California at Berkeley, USA
Christof Voemel, Lawrence Berkeley Laboratory, USA
July 2006.
Changes:
========
New MRRR eigenvalue algorithms that also support subset computations.
These implementations of the 2006 SIAM SIAG LA Prize winning algorithm of
Dhillon and Parlett are also significantly more accurate than the version
in LAPACK 3.0.
References:
===========
[1] Inderjit S. Dhillon and Beresford N. Parlett. Orthogonal Eigenvectors and
Relative Gaps. SIAM J. Matrix Anal. Appl., 25(3):858-899, 2004.
[1] Inderjit S. Dhillon, Beresford N. Parlett, and Christof Vomel. LAPACK
Working Note 162. The Design and Implementation of the MRRR Algorithm.
December, 2004.
[3] Osni A. Marques, Beresford N. Parlett, and Christof Voemel. LAPACK
Working Note 167. Subset Computations with the MRRR algorithm. August
2005.
----------------------------------------------------------------------------
4) Mixed precision iterative refinement subroutines for exploiting fast
single precision hardware.
----------------------------------------------------------------------------
Contributors:
=============
Julie Langou, UTK, Julien Langou, CU Denver, Jack Dongarra, UTK,
June 2006.
Comments:
=========
This is a prototype routines in the sense that its interface might changed
based on user feedback.
Mixed precision iterative refinement subroutines for exploiting fast single
precision hardware. On platforms like the Cell processor that do single
precision much faster than double, linear systems can be solved many times
faster. Even on commodity processors there is a factor of 2 in speed
between single and double precision.
Changes:
========
A SRC/dsgesv.f
A SRC/dlag2s.f
A SRC/slag2d.f
A SRC/zcgesv.f
A SRC/zlag2c.f
A SRC/clag2z.f
References:
===========
[1] Julie Langou, Julien Langou, Piotr Luszczek, Jakub Kurzak, Alfredo
Buttari, and Jack Dongarra. LAPACK Working Note 176. Exploiting the
Performance of 32 bit Floating Point Arithmetic in Obtaining 64 bit
Accuracy (Revisiting Iterative Refinement for Linear Systems). June
2006.
[2] Jakub Kurzak and Jack Dongarra. LAPACK Working Note 177. Implementation
of the Mixed-Precision High Performance LINPACK Benchmark on the CELL
Processor. Sept 2006.
----------------------------------------------------------------------------
5) New partial column norm updating strategy for QR factorization with
pivoting.
----------------------------------------------------------------------------
Contributors:
=============
Z. Drmac and Z. Bujanovic, Dept. of Mathematics, University of Zagreb,
Croatia,
June 2006.
Comments:
=========
This fixes a subtle numerical bug dating back to LINPACK that can
give completely wrong results.
Changes:
========
M SRC/{c,d,s,z}geqpf.f
M SRC/{c,d,s,z}laqp2.f
M SRC/{c,d,s,z}laqps.f
Reference:
==========
[1] Z. Drmac and Z. Bujanovic, LAPACK Working Note 176, On the failure of
rank revealing QR factorization software - a case study, June 2006.
----------------------------------------------------------------------------
6) Thread safe version of the LAPACK routines.
----------------------------------------------------------------------------
Contributor:
=============
Sven Hammarling, NAG Ltd., UK,
July 2005.
Comments:
=========
All the LAPACK routines are now thread safe except {s,d}LAMCH and the
triplet {c,d,s,z}lacon.f, {d,s}lasq3.f and {d,s}lasq4.f. By thread safe,
we mean that your LAPACK library wil be thread safe provided that your
compiler is. Regarding the 10 routines still containing DATA or SAVE
statement:
{s,d}LAMCH can be manually replace by thread-safe routines (e.g. using
F90).
{c,d,s,z}lacon.f, {d,s}lasq3.f and {d,s}lasq4.f are left in LAPACK for
backward compatibility, they are flagged as deprecated, and represent
dead codes in this current release (v3.1).
Changes:
========
D SRC/{c,d,s,z}lacon.f (D means deprecated)
D SRC/{d,z}lasq3.f (D means deprecated)
D SRC/{d,z}lasq4.f (D means deprecated)
M SRC/{c,z}largv.f
M SRC/{c,d,s,z}lartg.f
M SRC/{d,s}laed6.f
A SRC/{c,d,s,z}lacn2.f
A SRC/{d,s}lazq3.f
A SRC/{d,s}lazq4.f
----------------------------------------------------------------------------
7) Additional support for matrices with NaN/subnormal elements, optimization
of the balancing subroutines
----------------------------------------------------------------------------
Contributors:
=============
Bobby Cheng, MathWorks, USA.
July 2006.
Changes:
========
M SRC/{c,d,s,z}gebal.f
M SRC/{c,d,s,z}getf2.f
M SRC/{d,s}lapy3.f
M SRC/{d,s}sytf2.f
M SRC/{c,z}hetf2.f
References:
===========
[1] see svn log: r146, r296.
----------------------------------------------------------------------------
8) Several bug fixes and details.
----------------------------------------------------------------------------
Changes:
========
too long to list
Comments:
=========
add a subroutine to get the version number of a user's LAPACK
add a licence and a copyright to LAPACK.
Contributors:
=============
Remi Delmas (UTK, USA)
Sven Hammarling (NAG, UK)
Daniel Kressner (University of Zagreb, Croatia)
Julie Langou (UTK, USA)
Julien Langou (CU Denver, USA)
E. Jason Riedy (UCB, UK)
Ren-Cang Li ( Department of Mathematics, University of Texas at
Arlington, USA)
Osni Marques (Lawrence Berkeley Laboratory, USA)
References:
===========
[1] too long to list, see svn logs for references.
----------------------------------------------------------------------------