ESMF_DGEQP3 Subroutine

subroutine ESMF_DGEQP3(M, N, A, LDA, JPVT, TAU, WORK, LWORK, INFO)

\brief \b ESMF_DGEQP3 \htmlonly Download ESMF_DGEQP3 + dependencies [TGZ] [ZIP] [TXT] \endhtmlonly \par Purpose:

\verbatim

ESMF_DGEQP3 computes a QR factorization with column pivoting of a matrix A: AP = QR using Level 3 BLAS. \endverbatim \param[in] M \verbatim M is INTEGER The number of rows of the matrix A. M >= 0. \endverbatim

\param[in] N \verbatim N is INTEGER The number of columns of the matrix A. N >= 0. \endverbatim

\param[in,out] A \verbatim A is DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. On exit, the upper triangle of the array contains the min(M,N)-by-N upper trapezoidal matrix R; the elements below the diagonal, together with the array TAU, represent the orthogonal matrix Q as a product of min(M,N) elementary reflectors. \endverbatim

\param[in] LDA \verbatim LDA is INTEGER The leading dimension of the array A. LDA >= max(1,M). \endverbatim

\param[in,out] JPVT \verbatim JPVT is INTEGER array, dimension (N) On entry, if JPVT(J).ne.0, the J-th column of A is permuted to the front of AP (a leading column); if JPVT(J)=0, the J-th column of A is a free column. On exit, if JPVT(J)=K, then the J-th column of AP was the the K-th column of A. \endverbatim

\param[out] TAU \verbatim TAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors. \endverbatim

\param[out] WORK \verbatim WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO=0, WORK(1) returns the optimal LWORK. \endverbatim

\param[in] LWORK \verbatim LWORK is INTEGER The dimension of the array WORK. LWORK >= 3N+1. For optimal performance LWORK >= 2N+( N+1 )*NB, where NB is the optimal blocksize.

     If LWORK = -1, then a workspace query is assumed; the routine
     only calculates the optimal size of the WORK array, returns
     this value as the first entry of the WORK array, and no error
     message related to LWORK is issued by ESMF_XERBLA.

\endverbatim

\param[out] INFO \verbatim INFO is INTEGER = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. \endverbatim \author Univ. of Tennessee \author Univ. of California Berkeley \author Univ. of Colorado Denver \author NAG Ltd. \date November 2011 \ingroup doubleGEcomputational \par Further Details:

\verbatim

The matrix Q is represented as a product of elementary reflectors

Q = H(1) H(2) . . . H(k), where k = min(m,n).

Each H(i) has the form

H(i) = I - tau * v * v**T

where tau is a real/complex scalar, and v is a real/complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i). \endverbatim \par Contributors:

G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain X. Sun, Computer Science Dept., Duke University, USA

Arguments

Type IntentOptional Attributes Name
integer :: M
integer :: N
double precision :: A(LDA,*)
integer :: LDA
integer :: JPVT(*)
double precision :: TAU(*)
double precision :: WORK(*)
integer :: LWORK
integer :: INFO