diff options
author | julie <julielangou@users.noreply.github.com> | 2011-10-06 06:53:11 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2011-10-06 06:53:11 +0000 |
commit | e1d39294aee16fa6db9ba079b14442358217db71 (patch) | |
tree | 30e5aa04c1f6596991fda5334f63dfb9b8027849 /SRC/sgeqp3.f | |
parent | 5fe0466a14e395641f4f8a300ecc9dcb8058081b (diff) | |
download | lapack-e1d39294aee16fa6db9ba079b14442358217db71.tar.gz lapack-e1d39294aee16fa6db9ba079b14442358217db71.tar.bz2 lapack-e1d39294aee16fa6db9ba079b14442358217db71.zip |
Integrating Doxygen in comments
Diffstat (limited to 'SRC/sgeqp3.f')
-rw-r--r-- | SRC/sgeqp3.f | 212 |
1 files changed, 142 insertions, 70 deletions
diff --git a/SRC/sgeqp3.f b/SRC/sgeqp3.f index c07a2c38..aec474b1 100644 --- a/SRC/sgeqp3.f +++ b/SRC/sgeqp3.f @@ -1,89 +1,161 @@ - SUBROUTINE SGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, INFO ) -* -* -- LAPACK routine (version 3.3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* -- April 2011 -- -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - REAL A( LDA, * ), TAU( * ), WORK( * ) -* .. -* +*> \brief \b SGEQP3 +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +* Definition +* ========== +* +* SUBROUTINE SGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, INFO ) +* +* .. Scalar Arguments .. +* INTEGER INFO, LDA, LWORK, M, N +* .. +* .. Array Arguments .. +* INTEGER JPVT( * ) +* REAL A( LDA, * ), TAU( * ), WORK( * ) +* .. +* * Purpose * ======= * -* SGEQP3 computes a QR factorization with column pivoting of a -* matrix A: A*P = Q*R using Level 3 BLAS. +*>\details \b Purpose: +*>\verbatim +*> +*> SGEQP3 computes a QR factorization with column pivoting of a +*> matrix A: A*P = Q*R using Level 3 BLAS. +*> +*>\endverbatim * * Arguments * ========= * -* M (input) INTEGER -* The number of rows of the matrix A. M >= 0. -* -* N (input) INTEGER -* The number of columns of the matrix A. N >= 0. -* -* A (input/output) REAL 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. -* -* LDA (input) INTEGER -* The leading dimension of the array A. LDA >= max(1,M). -* -* JPVT (input/output) INTEGER array, dimension (N) -* On entry, if JPVT(J).ne.0, the J-th column of A is permuted -* to the front of A*P (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 A*P was the -* the K-th column of A. -* -* TAU (output) REAL array, dimension (min(M,N)) -* The scalar factors of the elementary reflectors. +*> \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 REAL 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 A*P (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 A*P was the +*> the K-th column of A. +*> \endverbatim +*> +*> \param[out] TAU +*> \verbatim +*> TAU is REAL array, dimension (min(M,N)) +*> The scalar factors of the elementary reflectors. +*> \endverbatim +*> +*> \param[out] WORK +*> \verbatim +*> WORK is REAL 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 >= 3*N+1. +*> For optimal performance LWORK >= 2*N+( N+1 )*NB, where NB +*> is the optimal blocksize. +*> \endverbatim +*> \verbatim +*> 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 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 +*> +* +* Authors +* ======= * -* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK)) -* On exit, if INFO=0, WORK(1) returns the optimal LWORK. +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. * -* LWORK (input) INTEGER -* The dimension of the array WORK. LWORK >= 3*N+1. -* For optimal performance LWORK >= 2*N+( N+1 )*NB, where NB -* is the optimal blocksize. +*> \date November 2011 * -* 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 XERBLA. +*> \ingroup realGEcomputational * -* INFO (output) INTEGER -* = 0: successful exit. -* < 0: if INFO = -i, the i-th argument had an illegal value. * * Further Details * =============== +*>\details \b Further \b 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). +*> +*> Based on contributions by +*> G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain +*> X. Sun, Computer Science Dept., Duke University, USA +*> +*> \endverbatim +*> +* ===================================================================== + SUBROUTINE SGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, INFO ) * -* 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). +* -- LAPACK computational routine (version 3.3.1) -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* November 2011 * -* Based on contributions by -* G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain -* X. Sun, Computer Science Dept., Duke University, USA +* .. Scalar Arguments .. + INTEGER INFO, LDA, LWORK, M, N +* .. +* .. Array Arguments .. + INTEGER JPVT( * ) + REAL A( LDA, * ), TAU( * ), WORK( * ) +* .. * * ===================================================================== * |