--- rpl/lapack/lapack/dlatrz.f 2010/01/26 15:22:45 1.1
+++ 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.2) --
+* -- 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..--
-* November 2006
+* 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 )', 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 ..
@@ -90,7 +162,7 @@
INTEGER I
* ..
* .. External Subroutines ..
- EXTERNAL DLARFP, DLARZ
+ EXTERNAL DLARFG, DLARZ
* ..
* .. Executable Statements ..
*
@@ -112,7 +184,7 @@
* Generate elementary reflector H(i) to annihilate
* [ A(i,i) A(i,n-l+1:n) ]
*
- CALL DLARFP( L+1, A( I, I ), A( I, N-L+1 ), LDA, TAU( I ) )
+ CALL DLARFG( L+1, A( I, I ), A( I, N-L+1 ), LDA, TAU( I ) )
*
* Apply H(i) to A(1:i-1,i:n) from the right
*