--- rpl/lapack/lapack/dlatrz.f 2011/07/22 07:38:08 1.9 +++ rpl/lapack/lapack/dlatrz.f 2011/11/21 20:43:00 1.10 @@ -1,9 +1,149 @@ +*> \brief \b DLATRZ +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DLATRZ + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE DLATRZ( M, N, L, A, LDA, TAU, WORK ) +* +* .. Scalar Arguments .. +* INTEGER L, LDA, M, N +* .. +* .. Array Arguments .. +* DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> DLATRZ factors the M-by-(M+L) real upper trapezoidal matrix +*> [ A1 A2 ] = [ A(1:M,1:M) A(1:M,N-L+1:N) ] as ( R 0 ) * Z, by means +*> of orthogonal transformations. Z is an (M+L)-by-(M+L) orthogonal +*> matrix and, R and A1 are M-by-M upper triangular matrices. +*> \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] L +*> \verbatim +*> L is INTEGER +*> The number of columns of the matrix A containing the +*> meaningful part of the Householder vectors. N-M >= L >= 0. +*> \endverbatim +*> +*> \param[in,out] A +*> \verbatim +*> A is DOUBLE PRECISION 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 N-L+1 to +*> N of the first M rows of A, with the array TAU, represent the +*> orthogonal 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 DOUBLE PRECISION array, dimension (M) +*> The scalar factors of the elementary reflectors. +*> \endverbatim +*> +*> \param[out] WORK +*> \verbatim +*> WORK is DOUBLE PRECISION array, dimension (M) +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \date November 2011 +* +*> \ingroup doubleOTHERcomputational +* +*> \par Contributors: +* ================== +*> +*> A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA +* +*> \par Further Details: +* ===================== +*> +*> \verbatim +*> +*> The factorization is obtained by Householder's method. The kth +*> transformation matrix, Z( k ), which 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 )**T, u( k ) = ( 1 ), +*> ( 0 ) +*> ( z( k ) ) +*> +*> tau is a scalar and z( k ) is an l element vector. tau and z( k ) +*> are chosen to annihilate the elements of the kth row of A2. +*> +*> The scalar tau is returned in the kth element of TAU and the vector +*> u( k ) in the kth row of A2, such that the elements of z( k ) are +*> in a( k, l + 1 ), ..., a( k, n ). The elements of R are returned in +*> the upper triangular part of A1. +*> +*> Z is given by +*> +*> Z = Z( 1 ) * Z( 2 ) * ... * Z( m ). +*> \endverbatim +*> +* ===================================================================== SUBROUTINE DLATRZ( M, N, L, A, LDA, TAU, WORK ) * -* -- LAPACK routine (version 3.3.1) -- +* -- LAPACK computational 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 L, LDA, M, N @@ -12,74 +152,6 @@ DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * -* Purpose -* ======= -* -* DLATRZ factors the M-by-(M+L) real upper trapezoidal matrix -* [ A1 A2 ] = [ A(1:M,1:M) A(1:M,N-L+1:N) ] as ( R 0 ) * Z, by means -* of orthogonal transformations. Z is an (M+L)-by-(M+L) orthogonal -* matrix and, R and A1 are M-by-M upper triangular matrices. -* -* 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. -* -* L (input) INTEGER -* The number of columns of the matrix A containing the -* meaningful part of the Householder vectors. N-M >= L >= 0. -* -* A (input/output) DOUBLE PRECISION 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 N-L+1 to -* N of the first M rows of A, with the array TAU, represent the -* orthogonal 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) DOUBLE PRECISION array, dimension (M) -* The scalar factors of the elementary reflectors. -* -* WORK (workspace) DOUBLE PRECISION array, dimension (M) -* -* Further Details -* =============== -* -* Based on contributions by -* A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA -* -* The factorization is obtained by Householder's method. The kth -* transformation matrix, Z( k ), which 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 )**T, u( k ) = ( 1 ), -* ( 0 ) -* ( z( k ) ) -* -* tau is a scalar and z( k ) is an l element vector. tau and z( k ) -* are chosen to annihilate the elements of the kth row of A2. -* -* The scalar tau is returned in the kth element of TAU and the vector -* u( k ) in the kth row of A2, such that the elements of z( k ) are -* in a( k, l + 1 ), ..., a( k, n ). The elements of R are returned in -* the upper triangular part of A1. -* -* Z is given by -* -* Z = Z( 1 ) * Z( 2 ) * ... * Z( m ). -* * ===================================================================== * * .. Parameters ..