--- rpl/lapack/lapack/zlaqps.f 2011/07/22 07:38:17 1.9 +++ rpl/lapack/lapack/zlaqps.f 2011/11/21 20:43:16 1.10 @@ -1,10 +1,186 @@ +*> \brief \b ZLAQPS +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download ZLAQPS + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE ZLAQPS( M, N, OFFSET, NB, KB, A, LDA, JPVT, TAU, VN1, +* VN2, AUXV, F, LDF ) +* +* .. Scalar Arguments .. +* INTEGER KB, LDA, LDF, M, N, NB, OFFSET +* .. +* .. Array Arguments .. +* INTEGER JPVT( * ) +* DOUBLE PRECISION VN1( * ), VN2( * ) +* COMPLEX*16 A( LDA, * ), AUXV( * ), F( LDF, * ), TAU( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> ZLAQPS computes a step of QR factorization with column pivoting +*> of a complex M-by-N matrix A by using Blas-3. It tries to factorize +*> NB columns from A starting from the row OFFSET+1, and updates all +*> of the matrix with Blas-3 xGEMM. +*> +*> In some cases, due to catastrophic cancellations, it cannot +*> factorize NB columns. Hence, the actual number of factorized +*> columns is returned in KB. +*> +*> Block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \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] OFFSET +*> \verbatim +*> OFFSET is INTEGER +*> The number of rows of A that have been factorized in +*> previous steps. +*> \endverbatim +*> +*> \param[in] NB +*> \verbatim +*> NB is INTEGER +*> The number of columns to factorize. +*> \endverbatim +*> +*> \param[out] KB +*> \verbatim +*> KB is INTEGER +*> The number of columns actually factorized. +*> \endverbatim +*> +*> \param[in,out] A +*> \verbatim +*> A is COMPLEX*16 array, dimension (LDA,N) +*> On entry, the M-by-N matrix A. +*> On exit, block A(OFFSET+1:M,1:KB) is the triangular +*> factor obtained and block A(1:OFFSET,1:N) has been +*> accordingly pivoted, but no factorized. +*> The rest of the matrix, block A(OFFSET+1:M,KB+1:N) has +*> been updated. +*> \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) +*> JPVT(I) = K <==> Column K of the full matrix A has been +*> permuted into position I in AP. +*> \endverbatim +*> +*> \param[out] TAU +*> \verbatim +*> TAU is COMPLEX*16 array, dimension (KB) +*> The scalar factors of the elementary reflectors. +*> \endverbatim +*> +*> \param[in,out] VN1 +*> \verbatim +*> VN1 is DOUBLE PRECISION array, dimension (N) +*> The vector with the partial column norms. +*> \endverbatim +*> +*> \param[in,out] VN2 +*> \verbatim +*> VN2 is DOUBLE PRECISION array, dimension (N) +*> The vector with the exact column norms. +*> \endverbatim +*> +*> \param[in,out] AUXV +*> \verbatim +*> AUXV is COMPLEX*16 array, dimension (NB) +*> Auxiliar vector. +*> \endverbatim +*> +*> \param[in,out] F +*> \verbatim +*> F is COMPLEX*16 array, dimension (LDF,NB) +*> Matrix F**H = L * Y**H * A. +*> \endverbatim +*> +*> \param[in] LDF +*> \verbatim +*> LDF is INTEGER +*> The leading dimension of the array F. LDF >= max(1,N). +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \date November 2011 +* +*> \ingroup complex16OTHERauxiliary +* +*> \par Contributors: +* ================== +*> +*> G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain +*> X. Sun, Computer Science Dept., Duke University, USA +*> \n +*> Partial column norm updating strategy modified on April 2011 +*> Z. Drmac and Z. Bujanovic, Dept. of Mathematics, +*> University of Zagreb, Croatia. +* +*> \par References: +* ================ +*> +*> LAPACK Working Note 176 +* +*> \htmlonly +*> [PDF] +*> \endhtmlonly +* +* ===================================================================== SUBROUTINE ZLAQPS( M, N, OFFSET, NB, KB, A, LDA, JPVT, TAU, VN1, $ VN2, AUXV, F, LDF ) * -* -- LAPACK auxiliary routine (version 3.3.1) -- +* -- LAPACK auxiliary routine (version 3.4.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* -- April 2011 -- +* November 2011 * * .. Scalar Arguments .. INTEGER KB, LDA, LDF, M, N, NB, OFFSET @@ -15,84 +191,6 @@ COMPLEX*16 A( LDA, * ), AUXV( * ), F( LDF, * ), TAU( * ) * .. * -* Purpose -* ======= -* -* ZLAQPS computes a step of QR factorization with column pivoting -* of a complex M-by-N matrix A by using Blas-3. It tries to factorize -* NB columns from A starting from the row OFFSET+1, and updates all -* of the matrix with Blas-3 xGEMM. -* -* In some cases, due to catastrophic cancellations, it cannot -* factorize NB columns. Hence, the actual number of factorized -* columns is returned in KB. -* -* Block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized. -* -* 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 -* -* OFFSET (input) INTEGER -* The number of rows of A that have been factorized in -* previous steps. -* -* NB (input) INTEGER -* The number of columns to factorize. -* -* KB (output) INTEGER -* The number of columns actually factorized. -* -* A (input/output) COMPLEX*16 array, dimension (LDA,N) -* On entry, the M-by-N matrix A. -* On exit, block A(OFFSET+1:M,1:KB) is the triangular -* factor obtained and block A(1:OFFSET,1:N) has been -* accordingly pivoted, but no factorized. -* The rest of the matrix, block A(OFFSET+1:M,KB+1:N) has -* been updated. -* -* LDA (input) INTEGER -* The leading dimension of the array A. LDA >= max(1,M). -* -* JPVT (input/output) INTEGER array, dimension (N) -* JPVT(I) = K <==> Column K of the full matrix A has been -* permuted into position I in AP. -* -* TAU (output) COMPLEX*16 array, dimension (KB) -* The scalar factors of the elementary reflectors. -* -* VN1 (input/output) DOUBLE PRECISION array, dimension (N) -* The vector with the partial column norms. -* -* VN2 (input/output) DOUBLE PRECISION array, dimension (N) -* The vector with the exact column norms. -* -* AUXV (input/output) COMPLEX*16 array, dimension (NB) -* Auxiliar vector. -* -* F (input/output) COMPLEX*16 array, dimension (LDF,NB) -* Matrix F**H = L * Y**H * A. -* -* LDF (input) INTEGER -* The leading dimension of the array F. LDF >= max(1,N). -* -* Further Details -* =============== -* -* Based on contributions by -* G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain -* X. Sun, Computer Science Dept., Duke University, USA -* -* Partial column norm updating strategy modified by -* Z. Drmac and Z. Bujanovic, Dept. of Mathematics, -* University of Zagreb, Croatia. -* -- April 2011 -- -* For more details see LAPACK Working Note 176. * ===================================================================== * * .. Parameters ..