summaryrefslogtreecommitdiff
path: root/SRC/ztpmqrt.f
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2011-10-06 06:53:11 +0000
committerjulie <julielangou@users.noreply.github.com>2011-10-06 06:53:11 +0000
commite1d39294aee16fa6db9ba079b14442358217db71 (patch)
tree30e5aa04c1f6596991fda5334f63dfb9b8027849 /SRC/ztpmqrt.f
parent5fe0466a14e395641f4f8a300ecc9dcb8058081b (diff)
downloadlapack-e1d39294aee16fa6db9ba079b14442358217db71.tar.gz
lapack-e1d39294aee16fa6db9ba079b14442358217db71.tar.bz2
lapack-e1d39294aee16fa6db9ba079b14442358217db71.zip
Integrating Doxygen in comments
Diffstat (limited to 'SRC/ztpmqrt.f')
-rw-r--r--SRC/ztpmqrt.f278
1 files changed, 168 insertions, 110 deletions
diff --git a/SRC/ztpmqrt.f b/SRC/ztpmqrt.f
index ffb0ce25..8b2a55bd 100644
--- a/SRC/ztpmqrt.f
+++ b/SRC/ztpmqrt.f
@@ -1,132 +1,190 @@
- SUBROUTINE ZTPMQRT( SIDE, TRANS, M, N, K, L, NB, V, LDV, T, LDT,
- $ A, LDA, B, LDB, WORK, INFO )
- IMPLICIT NONE
+*> \brief \b ZTPMQRT
*
-* -- LAPACK routine (version 3.?) --
-* -- LAPACK is a software package provided by Univ. of Tennessee, --
-* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd. --
-* -- July 2011 --
+* =========== DOCUMENTATION ===========
*
-* .. Scalar Arguments ..
- CHARACTER SIDE, TRANS
- INTEGER INFO, K, LDV, LDA, LDB, M, N, L, NB, LDT
-* ..
-* .. Array Arguments ..
- COMPLEX*16 V( LDV, * ), A( LDA, * ), B( LDB, * ), T( LDT, * ),
- $ WORK( * )
-* ..
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
+*
+* Definition
+* ==========
*
+* SUBROUTINE ZTPMQRT( SIDE, TRANS, M, N, K, L, NB, V, LDV, T, LDT,
+* A, LDA, B, LDB, WORK, INFO )
+*
+* .. Scalar Arguments ..
+* CHARACTER SIDE, TRANS
+* INTEGER INFO, K, LDV, LDA, LDB, M, N, L, NB, LDT
+* ..
+* .. Array Arguments ..
+* COMPLEX*16 V( LDV, * ), A( LDA, * ), B( LDB, * ), T( LDT, * ),
+* $ WORK( * )
+* ..
+*
* Purpose
* =======
*
-* ZTPMQRT applies a complex orthogonal matrix Q obtained from a
-* "triangular-pentagonal" complex block reflector H to a general
-* complex matrix C, which consists of two blocks A and B.
+*>\details \b Purpose:
+*>\verbatim
+*>
+*> ZTPMQRT applies a complex orthogonal matrix Q obtained from a
+*> "triangular-pentagonal" complex block reflector H to a general
+*> complex matrix C, which consists of two blocks A and B.
+*>
+*>\endverbatim
*
* Arguments
* =========
*
-* SIDE (input) CHARACTER*1
-* = 'L': apply Q or Q**H from the Left;
-* = 'R': apply Q or Q**H from the Right.
-*
-* TRANS (input) CHARACTER*1
-* = 'N': No transpose, apply Q;
-* = 'C': Transpose, apply Q**H.
-*
-* M (input) INTEGER
-* The number of rows of the matrix B. M >= 0.
-*
-* N (input) INTEGER
-* The number of columns of the matrix B. N >= 0.
-*
-* K (input) INTEGER
-* The number of elementary reflectors whose product defines
-* the matrix Q.
-*
-* L (input) INTEGER
-* The order of the trapezoidal part of V.
-* K >= L >= 0. See Further Details.
-*
-* NB (input) INTEGER
-* The block size used for the storage of T. K >= NB >= 1.
-* This must be the same value of NB used to generate T
-* in CTPQRT.
-*
-* V (input) COMPLEX*16 array, dimension (LDA,K)
-* The i-th column must contain the vector which defines the
-* elementary reflector H(i), for i = 1,2,...,k, as returned by
-* CTPQRT in B. See Further Details.
-*
-* LDA (input) INTEGER
-* The leading dimension of the array A.
-* If SIDE = 'L', LDA >= max(1,M);
-* if SIDE = 'R', LDA >= max(1,N).
-*
-* T (input) COMPLEX*16 array, dimension (LDT,K)
-* The upper triangular factors of the block reflectors
-* as returned by CTPQRT, stored as a NB-by-K matrix.
-*
-* LDT (input) INTEGER
-* The leading dimension of the array T. LDT >= NB.
-*
-* A (input/output) COMPLEX*16 array, dimension
-* (LDA,N) if SIDE = 'L' or
-* (LDA,K) if SIDE = 'R'
-* On entry, the K-by-N or M-by-K matrix A.
-* On exit, A is overwritten by the corresponding block of
-* Q*C or Q**H*C or C*Q or C*Q**H. See Further Details.
-*
-* LDA (input) INTEGER
-* The leading dimension of the array A.
-* If SIDE = 'L', LDC >= max(1,K);
-* If SIDE = 'R', LDC >= max(1,M).
+*> \param[in] SIDE
+*> \verbatim
+*> SIDE is CHARACTER*1
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
+*> \endverbatim
+*>
+*> \param[in] TRANS
+*> \verbatim
+*> TRANS is CHARACTER*1
+*> = 'N': No transpose, apply Q;
+*> = 'C': Transpose, apply Q**H.
+*> \endverbatim
+*>
+*> \param[in] M
+*> \verbatim
+*> M is INTEGER
+*> The number of rows of the matrix B. M >= 0.
+*> \endverbatim
+*>
+*> \param[in] N
+*> \verbatim
+*> N is INTEGER
+*> The number of columns of the matrix B. N >= 0.
+*>
+*> \param[in] K
+*> \verbatim
+*> K is INTEGER
+*> The number of elementary reflectors whose product defines
+*> the matrix Q.
+*> \endverbatim
+*> \endverbatim
+*>
+*
+* Authors
+* =======
*
-* B (input/output) COMPLEX*16 array, dimension (LDB,N)
-* On entry, the M-by-N matrix B.
-* On exit, B is overwritten by the corresponding block of
-* Q*C or Q**H*C or C*Q or C*Q**H. See Further Details.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
-* LDB (input) INTEGER
-* The leading dimension of the array B.
-* LDB >= max(1,M).
+*> \date November 2011
*
-* WORK (workspace/output) COMPLEX*16 array. The dimension of WORK is
-* N*NB if SIDE = 'L', or M*NB if SIDE = 'R'.
+*> \ingroup complex16OTHERcomputational
*
-* 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
+* K >= L >= 0. See Further Details.
+*>
+*> NB (input) INTEGER
+*> The block size used for the storage of T. K >= NB >= 1.
+*> This must be the same value of NB used to generate T
+*> in CTPQRT.
+*>
+*> V (input) COMPLEX*16 array, dimension (LDA,K)
+*> The i-th column must contain the vector which defines the
+*> elementary reflector H(i), for i = 1,2,...,k, as returned by
+*> CTPQRT in B. See Further Details.
+*>
+*> LDA (input) INTEGER
+*> The leading dimension of the array A.
+*> If SIDE = 'L', LDA >= max(1,M);
+*> if SIDE = 'R', LDA >= max(1,N).
+*>
+*> T (input) COMPLEX*16 array, dimension (LDT,K)
+*> The upper triangular factors of the block reflectors
+*> as returned by CTPQRT, stored as a NB-by-K matrix.
+*>
+*> LDT (input) INTEGER
+*> The leading dimension of the array T. LDT >= NB.
+*>
+*> A (input/output) COMPLEX*16 array, dimension
+*> (LDA,N) if SIDE = 'L' or
+*> (LDA,K) if SIDE = 'R'
+*> On entry, the K-by-N or M-by-K matrix A.
+*> On exit, A is overwritten by the corresponding block of
+*> Q*C or Q**H*C or C*Q or C*Q**H. See Further Details.
+*>
+*> LDA (input) INTEGER
+*> The leading dimension of the array A.
+*> If SIDE = 'L', LDC >= max(1,K);
+*> If SIDE = 'R', LDC >= max(1,M).
+*>
+*> B (input/output) COMPLEX*16 array, dimension (LDB,N)
+*> On entry, the M-by-N matrix B.
+*> On exit, B is overwritten by the corresponding block of
+*> Q*C or Q**H*C or C*Q or C*Q**H. See Further Details.
+*>
+*> LDB (input) INTEGER
+*> The leading dimension of the array B.
+*> LDB >= max(1,M).
+*>
+*> WORK (workspace/output) COMPLEX*16 array. The dimension of WORK is
+*> N*NB if SIDE = 'L', or M*NB if SIDE = 'R'.
+*>
+*> INFO (output) INTEGER
+*> = 0: successful exit
+*> < 0: if INFO = -i, the i-th argument had an illegal value
+*>
+*>
+*> The columns of the pentagonal matrix V contain the elementary reflectors
+*> H(1), H(2), ..., H(K); V is composed of a rectangular block V1 and a
+*> trapezoidal block V2:
+*>
+*> V = [V1]
+*> [V2].
+*>
+*> The size of the trapezoidal block V2 is determined by the parameter L,
+*> where 0 <= L <= K; V2 is upper trapezoidal, consisting of the first L
+*> rows of a K-by-K upper triangular matrix. If L=K, V2 is upper triangular;
+*> if L=0, there is no trapezoidal block, hence V = V1 is rectangular.
+*>
+*> If SIDE = 'L': C = [A] where A is K-by-N, B is M-by-N and V is M-by-K.
+*> [B]
+*>
+*> If SIDE = 'R': C = [A B] where A is M-by-K, B is M-by-N and V is N-by-K.
+*>
+*> The complex orthogonal matrix Q is formed from V and T.
+*>
+*> If TRANS='N' and SIDE='L', C is on exit replaced with Q * C.
+*>
+*> If TRANS='C' and SIDE='L', C is on exit replaced with Q**H * C.
+*>
+*> If TRANS='N' and SIDE='R', C is on exit replaced with C * Q.
+*>
+*> If TRANS='C' and SIDE='R', C is on exit replaced with C * Q**H.
+*>
+*> \endverbatim
+*>
+* =====================================================================
+ SUBROUTINE ZTPMQRT( SIDE, TRANS, M, N, K, L, NB, V, LDV, T, LDT,
+ $ A, LDA, B, LDB, WORK, INFO )
*
-* The columns of the pentagonal matrix V contain the elementary reflectors
-* H(1), H(2), ..., H(K); V is composed of a rectangular block V1 and a
-* trapezoidal block V2:
-*
-* V = [V1]
-* [V2].
-*
-* The size of the trapezoidal block V2 is determined by the parameter L,
-* where 0 <= L <= K; V2 is upper trapezoidal, consisting of the first L
-* rows of a K-by-K upper triangular matrix. If L=K, V2 is upper triangular;
-* if L=0, there is no trapezoidal block, hence V = V1 is rectangular.
-*
-* If SIDE = 'L': C = [A] where A is K-by-N, B is M-by-N and V is M-by-K.
-* [B]
-*
-* If SIDE = 'R': C = [A B] where A is M-by-K, B is M-by-N and V is N-by-K.
-*
-* The complex orthogonal matrix Q is formed from V and T.
-*
-* If TRANS='N' and SIDE='L', C is on exit replaced with Q * C.
-*
-* If TRANS='C' and SIDE='L', C is on exit replaced with Q**H * C.
-*
-* If TRANS='N' and SIDE='R', C is on exit replaced with C * Q.
+* -- LAPACK computational routine (version 3.?) --
+* -- LAPACK is a software package provided by Univ. of Tennessee, --
+* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
+* November 2011
*
-* If TRANS='C' and SIDE='R', C is on exit replaced with C * Q**H.
+* .. Scalar Arguments ..
+ CHARACTER SIDE, TRANS
+ INTEGER INFO, K, LDV, LDA, LDB, M, N, L, NB, LDT
+* ..
+* .. Array Arguments ..
+ COMPLEX*16 V( LDV, * ), A( LDA, * ), B( LDB, * ), T( LDT, * ),
+ $ WORK( * )
+* ..
*
* =====================================================================
*