--- rpl/lapack/lapack/ztzrqf.f 2010/08/07 13:18:09 1.5 +++ rpl/lapack/lapack/ztzrqf.f 2023/08/07 08:39:42 1.19 @@ -1,9 +1,144 @@ +*> \brief \b ZTZRQF +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download ZTZRQF + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE ZTZRQF( M, N, A, LDA, TAU, INFO ) +* +* .. Scalar Arguments .. +* INTEGER INFO, LDA, M, N +* .. +* .. Array Arguments .. +* COMPLEX*16 A( LDA, * ), TAU( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> This routine is deprecated and has been replaced by routine ZTZRZF. +*> +*> ZTZRQF reduces the M-by-N ( M<=N ) complex upper trapezoidal matrix A +*> to upper triangular form by means of unitary transformations. +*> +*> The upper trapezoidal matrix A is factored as +*> +*> A = ( R 0 ) * Z, +*> +*> where Z is an N-by-N unitary matrix and R is an M-by-M upper +*> triangular matrix. +*> \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 >= M. +*> \endverbatim +*> +*> \param[in,out] A +*> \verbatim +*> A is COMPLEX*16 array, dimension (LDA,N) +*> On entry, the leading M-by-N upper trapezoidal part of the +*> array A must contain the matrix to be factorized. +*> On exit, the leading M-by-M upper triangular part of A +*> contains the upper triangular matrix R, and elements M+1 to +*> N of the first M rows of A, with the array TAU, represent the +*> unitary matrix Z as a product of M elementary reflectors. +*> \endverbatim +*> +*> \param[in] LDA +*> \verbatim +*> LDA is INTEGER +*> The leading dimension of the array A. LDA >= max(1,M). +*> \endverbatim +*> +*> \param[out] TAU +*> \verbatim +*> TAU is COMPLEX*16 array, dimension (M) +*> The scalar factors of the elementary reflectors. +*> \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: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup complex16OTHERcomputational +* +*> \par Further Details: +* ===================== +*> +*> \verbatim +*> +*> The factorization is obtained by Householder's method. The kth +*> transformation matrix, Z( k ), whose conjugate transpose is used to +*> introduce zeros into the (m - k + 1)th row of A, is given in the form +*> +*> Z( k ) = ( I 0 ), +*> ( 0 T( k ) ) +*> +*> where +*> +*> T( k ) = I - tau*u( k )*u( k )**H, u( k ) = ( 1 ), +*> ( 0 ) +*> ( z( k ) ) +*> +*> tau is a scalar and z( k ) is an ( n - m ) element vector. +*> tau and z( k ) are chosen to annihilate the elements of the kth row +*> of X. +*> +*> The scalar tau is returned in the kth element of TAU and the vector +*> u( k ) in the kth row of A, such that the elements of z( k ) are +*> in a( k, m + 1 ), ..., a( k, n ). The elements of R are returned in +*> the upper triangular part of A. +*> +*> Z is given by +*> +*> Z = Z( 1 ) * Z( 2 ) * ... * Z( m ). +*> \endverbatim +*> +* ===================================================================== SUBROUTINE ZTZRQF( M, N, A, LDA, TAU, INFO ) * -* -- LAPACK routine (version 3.2.2) -- +* -- LAPACK computational routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* June 2010 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N @@ -12,77 +147,6 @@ COMPLEX*16 A( LDA, * ), TAU( * ) * .. * -* Purpose -* ======= -* -* This routine is deprecated and has been replaced by routine ZTZRZF. -* -* ZTZRQF reduces the M-by-N ( M<=N ) complex upper trapezoidal matrix A -* to upper triangular form by means of unitary transformations. -* -* The upper trapezoidal matrix A is factored as -* -* A = ( R 0 ) * Z, -* -* where Z is an N-by-N unitary matrix and R is an M-by-M upper -* triangular matrix. -* -* 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 >= M. -* -* A (input/output) COMPLEX*16 array, dimension (LDA,N) -* On entry, the leading M-by-N upper trapezoidal part of the -* array A must contain the matrix to be factorized. -* On exit, the leading M-by-M upper triangular part of A -* contains the upper triangular matrix R, and elements M+1 to -* N of the first M rows of A, with the array TAU, represent the -* unitary matrix Z as a product of M elementary reflectors. -* -* LDA (input) INTEGER -* The leading dimension of the array A. LDA >= max(1,M). -* -* TAU (output) COMPLEX*16 array, dimension (M) -* The scalar factors of the elementary reflectors. -* -* INFO (output) INTEGER -* = 0: successful exit -* < 0: if INFO = -i, the i-th argument had an illegal value -* -* Further Details -* =============== -* -* The factorization is obtained by Householder's method. The kth -* transformation matrix, Z( k ), whose conjugate transpose is used to -* introduce zeros into the (m - k + 1)th row of A, is given in the form -* -* Z( k ) = ( I 0 ), -* ( 0 T( k ) ) -* -* where -* -* T( k ) = I - tau*u( k )*u( k )', u( k ) = ( 1 ), -* ( 0 ) -* ( z( k ) ) -* -* tau is a scalar and z( k ) is an ( n - m ) element vector. -* tau and z( k ) are chosen to annihilate the elements of the kth row -* of X. -* -* The scalar tau is returned in the kth element of TAU and the vector -* u( k ) in the kth row of A, such that the elements of z( k ) are -* in a( k, m + 1 ), ..., a( k, n ). The elements of R are returned in -* the upper triangular part of A. -* -* Z is given by -* -* Z = Z( 1 ) * Z( 2 ) * ... * Z( m ). -* * ===================================================================== * * .. Parameters .. @@ -142,7 +206,7 @@ * IF( TAU( K ).NE.CZERO .AND. K.GT.1 ) THEN * -* We now perform the operation A := A*P( k )'. +* We now perform the operation A := A*P( k )**H. * * Use the first ( k - 1 ) elements of TAU to store a( k ), * where a( k ) consists of the first ( k - 1 ) elements of @@ -157,7 +221,7 @@ $ LDA, A( K, M1 ), LDA, CONE, TAU, 1 ) * * Now form a( k ) := a( k ) - conjg(tau)*w -* and B := B - conjg(tau)*w*z( k )'. +* and B := B - conjg(tau)*w*z( k )**H. * CALL ZAXPY( K-1, -DCONJG( TAU( K ) ), TAU, 1, A( 1, K ), $ 1 )