PLASMA source code version 2.5.1

20130705

Source code for PLASMA libraries.
We recommend using the installer, which will automatically download the sources and also install all other required software packages.
This package contains the following updates:

Add LU factorization with tournament pivoting. Each tournament is based on the classical partial pivoting algorithm. PLASMA_[sdcz]getrf_tntpiv[_Tile[_Async]]. The size of each subdomain involved in the tournament can be set through the call to "PLASMA_Set( PLASMA_TNTPIVOTING_SIZE, nt );". The default is 4. See LAWN 226.

Add LU factorization with no pivoting: PLASMA_[sdcz]getrf_nopiv[_Tile[_Async]]. WARNING: your matrix has to be diagonal dominant to use it or the result might be wrong.

Add QR with rank revealing routine: PLASMA_[sdcz]geqp3[_Tile[_Async]].

Fix many comments in the Doxygen documentation

Complete documentation on DAG and execution traces generation

Add the dense hermetian eigenvalue problem routines: Note that these routines requires mulithreaded BLAS. For that, the user is required to tell PLASMA that he is using multithreaded BLAS library and so specify which library is being used by adding DPLASMA_WITH_XXX to the compilation flags. Current supported library are DPLASMA_WITH_MKL or DPLASMA_WITH_ACML but it is easy to add morelibrary, please contact PLASMA team if you require addtional libraries to be supported.

PLASMA_[sdch]_hetrd: compute the tridiagonal reduction of a dense hermetian matrix using the 2stage algorithm A = QTQ^H. It also has the feature to generates the complex matrix Q with orthonormal columns used to reduce the matrix A to tridiagonal. This function is similar to the ZHETRD routine combined with the ZUNGQR routine (when Q is generated) of LAPACK.

PLASMA_[sdch]_heev: computes all eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix A. This function is similar to the ZHEEV routine of LAPACK.

PLASMA_[sdch]_heevd: computes all eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix A. If eigenvectors are desired, it uses a divide and conquer algorithm. This function is similar to the ZHEEVD routine of LAPACK.

PLASMA_[sdch]_heevr: computes selected eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix A. Eigenvalues and eigenvectors can be selected by specifying either a range of values or a range of indices for the desired eigenvalues. Whenever possible, ZHEEVR calls ZSTEMR to compute eigenspectrum using Relatively Robust Representations (MRRR). This function is similar to the ZHEEVR routine of LAPACK.

PLASMA_[sdch]_hegv: computes all the eigenvalues, and optionally, the eigenvectors of a complex generalized Hermitiandefinite eigenproblem, of the form: A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are assumed to be Hermitian and B is also positive definite. This function uses the QR algorithm, and is similar to the ZHEGV routine of LAPACK.

PLASMA_[sdch]_hegvd: computes all the eigenvalues, and optionally, the eigenvectors the eigenvectors of a complex generalized Hermitiandefinite eigenproblem, of the form: A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are assumed to be Hermitian and B is also positive definite. If eigenvectors are desired, it uses a divide and conquer algorithm, and is similar to the ZHEGVD routine of LAPACK.

Add the singular value decomposition (SVD) routines: Note that these routines requires mulithreaded BLAS. For that, the user is required to tell PLASMA that he is using multithreaded BLAS library and so specify which library is being used by adding DPLASMA_WITH_XXX to the compilation flags. Current supported library are DPLASMA_WITH_MKL or DPLASMA_WITH_ACML but it is easy to add morelibrary, please contact PLASMA team if you require addtional libraries to be supported.
 PLASMA_[sdch]_gebrd: compute the bidiagonal reduction of a dense general matrix using the 2stage algorithm A = QBP^H. It also has the feature to generates the complex matrix Q and P^H with orthonormal columns used to reduce the matrix A to bidiagonal. This function is similar to the ZGEBRD routine combined with the ZUNGBR routine (when Q is generated) of LAPACK.
 PLASMA_[sdch]_gesvd: computes the singular value decomposition (SVD) of a complex matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugatetranspose(V). This routine use the implicit zeroshift QR algorithm and is similar to the ZGESVD routine of LAPACK.
 PLASMA_[sdch]_gesdd: computes the singular value decomposition (SVD) of a complex matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugatetranspose(V). This routine use the divide and conquer algorithm and is similar to the ZGESDD routine of LAPACK.Introduce condition estimators for General and Positive Definite cases (xGECON, xPOCON)
For further details, view ReleaseNotes.


License
Copyright © 2014 The University of Tennessee. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
· Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
· Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution.
· Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.