summaryrefslogtreecommitdiff
path: root/SRC/cuncsd2by1.f
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2015-10-27 14:10:26 +0000
committerjulie <julielangou@users.noreply.github.com>2015-10-27 14:10:26 +0000
commitcae67b75498079f82336d09c45d61c9cd9d40a05 (patch)
treefd86d5e37ffa45a19df0f16b90f1d7d4c7a7541c /SRC/cuncsd2by1.f
parentc8aff6931d5696f80103d8403443ca2a483e0d75 (diff)
downloadlapack-cae67b75498079f82336d09c45d61c9cd9d40a05.tar.gz
lapack-cae67b75498079f82336d09c45d61c9cd9d40a05.tar.bz2
lapack-cae67b75498079f82336d09c45d61c9cd9d40a05.zip
Apply Christoph Conrads Doxygen patch for xyycsd2by1.f - comment modification only
Diffstat (limited to 'SRC/cuncsd2by1.f')
-rw-r--r--SRC/cuncsd2by1.f124
1 files changed, 58 insertions, 66 deletions
diff --git a/SRC/cuncsd2by1.f b/SRC/cuncsd2by1.f
index 82267ee6..cdac0732 100644
--- a/SRC/cuncsd2by1.f
+++ b/SRC/cuncsd2by1.f
@@ -55,12 +55,12 @@
*> [ 0 S 0 ]
*> [ 0 0 I ]
*>
-*> X11 is P-by-Q. The unitary matrices U1, U2, V1, and V2 are P-by-P,
-*> (M-P)-by-(M-P), Q-by-Q, and (M-Q)-by-(M-Q), respectively. C and S are
-*> R-by-R nonnegative diagonal matrices satisfying C^2 + S^2 = I, in
-*> which R = MIN(P,M-P,Q,M-Q).
+*> X11 is P-by-Q. The unitary matrices U1, U2, and V1 are P-by-P,
+*> (M-P)-by-(M-P), and Q-by-Q, respectively. C and S are R-by-R
+*> nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which
+*> R = MIN(P,M-P,Q,M-Q).
*>
-*>\endverbatim
+*> \endverbatim
*
* Arguments:
* ==========
@@ -68,181 +68,173 @@
*> \param[in] JOBU1
*> \verbatim
*> JOBU1 is CHARACTER
-*> = 'Y': U1 is computed;
-*> otherwise: U1 is not computed.
+*> = 'Y': U1 is computed;
+*> otherwise: U1 is not computed.
*> \endverbatim
*>
*> \param[in] JOBU2
*> \verbatim
*> JOBU2 is CHARACTER
-*> = 'Y': U2 is computed;
-*> otherwise: U2 is not computed.
+*> = 'Y': U2 is computed;
+*> otherwise: U2 is not computed.
*> \endverbatim
*>
*> \param[in] JOBV1T
*> \verbatim
*> JOBV1T is CHARACTER
-*> = 'Y': V1T is computed;
-*> otherwise: V1T is not computed.
+*> = 'Y': V1T is computed;
+*> otherwise: V1T is not computed.
*> \endverbatim
*>
*> \param[in] M
*> \verbatim
*> M is INTEGER
-*> The number of rows in X.
+*> The number of rows in X.
*> \endverbatim
*>
*> \param[in] P
*> \verbatim
*> P is INTEGER
-*> The number of rows in X11. 0 <= P <= M.
+*> The number of rows in X11. 0 <= P <= M.
*> \endverbatim
*>
*> \param[in] Q
*> \verbatim
*> Q is INTEGER
-*> The number of columns in X11 and X21. 0 <= Q <= M.
+*> The number of columns in X11 and X21. 0 <= Q <= M.
*> \endverbatim
*>
*> \param[in,out] X11
*> \verbatim
*> X11 is COMPLEX array, dimension (LDX11,Q)
-*> On entry, part of the unitary matrix whose CSD is
-*> desired.
+*> On entry, part of the unitary matrix whose CSD is desired.
*> \endverbatim
*>
*> \param[in] LDX11
*> \verbatim
*> LDX11 is INTEGER
-*> The leading dimension of X11. LDX11 >= MAX(1,P).
+*> The leading dimension of X11. LDX11 >= MAX(1,P).
*> \endverbatim
*>
*> \param[in,out] X21
*> \verbatim
*> X21 is COMPLEX array, dimension (LDX21,Q)
-*> On entry, part of the unitary matrix whose CSD is
-*> desired.
+*> On entry, part of the unitary matrix whose CSD is desired.
*> \endverbatim
*>
*> \param[in] LDX21
*> \verbatim
*> LDX21 is INTEGER
-*> The leading dimension of X21. LDX21 >= MAX(1,M-P).
+*> The leading dimension of X21. LDX21 >= MAX(1,M-P).
*> \endverbatim
*>
*> \param[out] THETA
*> \verbatim
-*> THETA is COMPLEX array, dimension (R), in which R =
-*> MIN(P,M-P,Q,M-Q).
-*> C = DIAG( COS(THETA(1)), ... , COS(THETA(R)) ) and
-*> S = DIAG( SIN(THETA(1)), ... , SIN(THETA(R)) ).
+*> THETA is REAL array, dimension (R), in which R =
+*> MIN(P,M-P,Q,M-Q).
+*> C = DIAG( COS(THETA(1)), ... , COS(THETA(R)) ) and
+*> S = DIAG( SIN(THETA(1)), ... , SIN(THETA(R)) ).
*> \endverbatim
*>
*> \param[out] U1
*> \verbatim
*> U1 is COMPLEX array, dimension (P)
-*> If JOBU1 = 'Y', U1 contains the P-by-P unitary matrix U1.
+*> If JOBU1 = 'Y', U1 contains the P-by-P unitary matrix U1.
*> \endverbatim
*>
*> \param[in] LDU1
*> \verbatim
*> LDU1 is INTEGER
-*> The leading dimension of U1. If JOBU1 = 'Y', LDU1 >=
-*> MAX(1,P).
+*> The leading dimension of U1. If JOBU1 = 'Y', LDU1 >=
+*> MAX(1,P).
*> \endverbatim
*>
*> \param[out] U2
*> \verbatim
*> U2 is COMPLEX array, dimension (M-P)
-*> If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) unitary
-*> matrix U2.
+*> If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) unitary
+*> matrix U2.
*> \endverbatim
*>
*> \param[in] LDU2
*> \verbatim
*> LDU2 is INTEGER
-*> The leading dimension of U2. If JOBU2 = 'Y', LDU2 >=
-*> MAX(1,M-P).
+*> The leading dimension of U2. If JOBU2 = 'Y', LDU2 >=
+*> MAX(1,M-P).
*> \endverbatim
*>
*> \param[out] V1T
*> \verbatim
*> V1T is COMPLEX array, dimension (Q)
-*> If JOBV1T = 'Y', V1T contains the Q-by-Q matrix unitary
-*> matrix V1**T.
+*> If JOBV1T = 'Y', V1T contains the Q-by-Q matrix unitary
+*> matrix V1**T.
*> \endverbatim
*>
*> \param[in] LDV1T
*> \verbatim
*> LDV1T is INTEGER
-*> The leading dimension of V1T. If JOBV1T = 'Y', LDV1T >=
-*> MAX(1,Q).
+*> The leading dimension of V1T. If JOBV1T = 'Y', LDV1T >=
+*> MAX(1,Q).
*> \endverbatim
*>
*> \param[out] WORK
*> \verbatim
*> WORK is COMPLEX array, dimension (MAX(1,LWORK))
-*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
-*> If INFO > 0 on exit, WORK(2:R) contains the values PHI(1),
-*> ..., PHI(R-1) that, together with THETA(1), ..., THETA(R),
-*> define the matrix in intermediate bidiagonal-block form
-*> remaining after nonconvergence. INFO specifies the number
-*> of nonzero PHI's.
+*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
*> \endverbatim
*>
*> \param[in] LWORK
*> \verbatim
*> LWORK is INTEGER
-*> The dimension of the array WORK.
-*> \endverbatim
-*> \verbatim
-*> If LWORK = -1, then a workspace query is assumed; the routine
-*> only calculates the optimal size of the WORK array, returns
-*> this value as the first entry of the work array, and no error
-*> message related to LWORK is issued by XERBLA.
+*> The dimension of the array WORK.
+*>
+*> If LWORK = -1, then a workspace query is assumed; the routine
+*> only calculates the optimal size of the WORK array, returns
+*> this value as the first entry of the work array, and no error
+*> message related to LWORK is issued by XERBLA.
*> \endverbatim
*>
*> \param[out] RWORK
*> \verbatim
*> RWORK is REAL array, dimension (MAX(1,LRWORK))
-*> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK.
-*> If INFO > 0 on exit, RWORK(2:R) contains the values PHI(1),
-*> ..., PHI(R-1) that, together with THETA(1), ..., THETA(R),
-*> define the matrix in intermediate bidiagonal-block form
-*> remaining after nonconvergence. INFO specifies the number
-*> of nonzero PHI's.
+*> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK.
+*> If INFO > 0 on exit, RWORK(2:R) contains the values PHI(1),
+*> ..., PHI(R-1) that, together with THETA(1), ..., THETA(R),
+*> define the matrix in intermediate bidiagonal-block form
+*> remaining after nonconvergence. INFO specifies the number
+*> of nonzero PHI's.
*> \endverbatim
*>
*> \param[in] LRWORK
*> \verbatim
*> LRWORK is INTEGER
-*> The dimension of the array RWORK.
+*> The dimension of the array RWORK.
*>
-*> If LRWORK = -1, then a workspace query is assumed; the routine
-*> only calculates the optimal size of the RWORK array, returns
-*> this value as the first entry of the work array, and no error
-*> message related to LRWORK is issued by XERBLA.
+*> If LRWORK = -1, then a workspace query is assumed; the routine
+*> only calculates the optimal size of the RWORK array, returns
+*> this value as the first entry of the work array, and no error
+*> message related to LRWORK is issued by XERBLA.
+*> \endverbatim
+*
*> \param[out] IWORK
*> \verbatim
*> IWORK is INTEGER array, dimension (M-MIN(P,M-P,Q,M-Q))
*> \endverbatim
-*> \endverbatim
*>
*> \param[out] INFO
*> \verbatim
*> INFO is INTEGER
-*> = 0: successful exit.
-*> < 0: if INFO = -i, the i-th argument had an illegal value.
-*> > 0: CBBCSD did not converge. See the description of WORK
+*> = 0: successful exit.
+*> < 0: if INFO = -i, the i-th argument had an illegal value.
+*> > 0: CBBCSD did not converge. See the description of WORK
*> above for details.
*> \endverbatim
*
-*> \par References:
-*> ================
+*> \par References:
+* ================
*>
*> [1] Brian D. Sutton. Computing the complete CS decomposition. Numer.
*> Algorithms, 50(1):33-65, 2009.
-*>
*
* Authors:
* ========