Fix typos in comments (Reference-LAPACK PR 814)
This commit is contained in:
parent
617e8bcfe7
commit
a82c1443db
|
@ -1819,7 +1819,7 @@
|
||||||
IF ( CONDR2 .GE. COND_OK ) THEN
|
IF ( CONDR2 .GE. COND_OK ) THEN
|
||||||
* .. save the Householder vectors used for Q3
|
* .. save the Householder vectors used for Q3
|
||||||
* (this overwrites the copy of R2, as it will not be
|
* (this overwrites the copy of R2, as it will not be
|
||||||
* needed in this branch, but it does not overwritte the
|
* needed in this branch, but it does not overwrite the
|
||||||
* Huseholder vectors of Q2.).
|
* Huseholder vectors of Q2.).
|
||||||
CALL CLACPY( 'U', NR, NR, V, LDV, CWORK(2*N+1), N )
|
CALL CLACPY( 'U', NR, NR, V, LDV, CWORK(2*N+1), N )
|
||||||
* .. and the rest of the information on Q3 is in
|
* .. and the rest of the information on Q3 is in
|
||||||
|
@ -1842,7 +1842,7 @@
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
* Second preconditioning finished; continue with Jacobi SVD
|
* Second preconditioning finished; continue with Jacobi SVD
|
||||||
* The input matrix is lower trinagular.
|
* The input matrix is lower triangular.
|
||||||
*
|
*
|
||||||
* Recover the right singular vectors as solution of a well
|
* Recover the right singular vectors as solution of a well
|
||||||
* conditioned triangular matrix equation.
|
* conditioned triangular matrix equation.
|
||||||
|
@ -1886,7 +1886,7 @@
|
||||||
ELSE IF ( CONDR2 .LT. COND_OK ) THEN
|
ELSE IF ( CONDR2 .LT. COND_OK ) THEN
|
||||||
*
|
*
|
||||||
* The matrix R2 is inverted. The solution of the matrix equation
|
* The matrix R2 is inverted. The solution of the matrix equation
|
||||||
* is Q3^* * V3 = the product of the Jacobi rotations (appplied to
|
* is Q3^* * V3 = the product of the Jacobi rotations (applied to
|
||||||
* the lower triangular L3 from the LQ factorization of
|
* the lower triangular L3 from the LQ factorization of
|
||||||
* R2=L3*Q3), pre-multiplied with the transposed Q3.
|
* R2=L3*Q3), pre-multiplied with the transposed Q3.
|
||||||
CALL CGESVJ( 'L', 'U', 'N', NR, NR, V, LDV, SVA, NR, U,
|
CALL CGESVJ( 'L', 'U', 'N', NR, NR, V, LDV, SVA, NR, U,
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
*> \param[in] MV
|
*> \param[in] MV
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> MV is INTEGER
|
*> MV is INTEGER
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then MV is not referenced.
|
*> If JOBV = 'N', then MV is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
@ -125,9 +125,9 @@
|
||||||
*> \param[in,out] V
|
*> \param[in,out] V
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> V is COMPLEX array, dimension (LDV,N)
|
*> V is COMPLEX array, dimension (LDV,N)
|
||||||
*> If JOBV = 'V' then N rows of V are post-multipled by a
|
*> If JOBV = 'V' then N rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'A' then MV rows of V are post-multipled by a
|
*> If JOBV = 'A' then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then V is not referenced.
|
*> If JOBV = 'N', then V is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
*> \param[in] MV
|
*> \param[in] MV
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> MV is INTEGER
|
*> MV is INTEGER
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then MV is not referenced.
|
*> If JOBV = 'N', then MV is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
@ -155,9 +155,9 @@
|
||||||
*> \param[in,out] V
|
*> \param[in,out] V
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> V is COMPLEX array, dimension (LDV,N)
|
*> V is COMPLEX array, dimension (LDV,N)
|
||||||
*> If JOBV = 'V' then N rows of V are post-multipled by a
|
*> If JOBV = 'V' then N rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'A' then MV rows of V are post-multipled by a
|
*> If JOBV = 'A' then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then V is not referenced.
|
*> If JOBV = 'N', then V is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -42,9 +42,9 @@
|
||||||
*>
|
*>
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*>
|
*>
|
||||||
*> CLALSA is an itermediate step in solving the least squares problem
|
*> CLALSA is an intermediate step in solving the least squares problem
|
||||||
*> by computing the SVD of the coefficient matrix in compact form (The
|
*> by computing the SVD of the coefficient matrix in compact form (The
|
||||||
*> singular vectors are computed as products of simple orthorgonal
|
*> singular vectors are computed as products of simple orthogonal
|
||||||
*> matrices.).
|
*> matrices.).
|
||||||
*>
|
*>
|
||||||
*> If ICOMPQ = 0, CLALSA applies the inverse of the left singular vector
|
*> If ICOMPQ = 0, CLALSA applies the inverse of the left singular vector
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
*>
|
*>
|
||||||
*> Note : CSTEGR and CSTEMR work only on machines which follow
|
*> Note : CSTEGR and CSTEMR work only on machines which follow
|
||||||
*> IEEE-754 floating-point standard in their handling of infinities and
|
*> IEEE-754 floating-point standard in their handling of infinities and
|
||||||
*> NaNs. Normal execution may create these exceptiona values and hence
|
*> NaNs. Normal execution may create these exceptional values and hence
|
||||||
*> may abort due to a floating point exception in environments which
|
*> may abort due to a floating point exception in environments which
|
||||||
*> do not conform to the IEEE-754 standard.
|
*> do not conform to the IEEE-754 standard.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -339,7 +339,7 @@
|
||||||
*> [ kron(In2, B11) -kron(B22**H, In1) ].
|
*> [ kron(In2, B11) -kron(B22**H, In1) ].
|
||||||
*>
|
*>
|
||||||
*> Here, Inx is the identity matrix of size nx and A22**H is the
|
*> Here, Inx is the identity matrix of size nx and A22**H is the
|
||||||
*> conjuguate transpose of A22. kron(X, Y) is the Kronecker product between
|
*> conjugate transpose of A22. kron(X, Y) is the Kronecker product between
|
||||||
*> the matrices X and Y.
|
*> the matrices X and Y.
|
||||||
*>
|
*>
|
||||||
*> When DIF(2) is small, small changes in (A, B) can cause large changes
|
*> When DIF(2) is small, small changes in (A, B) can cause large changes
|
||||||
|
|
|
@ -362,7 +362,7 @@
|
||||||
*>
|
*>
|
||||||
*> \param[out] IWORK
|
*> \param[out] IWORK
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> IWORK is INTEGER array, dimension (M+3*N).
|
*> IWORK is INTEGER array, dimension (MAX(3,M+3*N)).
|
||||||
*> On exit,
|
*> On exit,
|
||||||
*> IWORK(1) = the numerical rank determined after the initial
|
*> IWORK(1) = the numerical rank determined after the initial
|
||||||
*> QR factorization with pivoting. See the descriptions
|
*> QR factorization with pivoting. See the descriptions
|
||||||
|
@ -1386,7 +1386,7 @@
|
||||||
IF ( CONDR2 .GE. COND_OK ) THEN
|
IF ( CONDR2 .GE. COND_OK ) THEN
|
||||||
* .. save the Householder vectors used for Q3
|
* .. save the Householder vectors used for Q3
|
||||||
* (this overwrites the copy of R2, as it will not be
|
* (this overwrites the copy of R2, as it will not be
|
||||||
* needed in this branch, but it does not overwritte the
|
* needed in this branch, but it does not overwrite the
|
||||||
* Huseholder vectors of Q2.).
|
* Huseholder vectors of Q2.).
|
||||||
CALL DLACPY( 'U', NR, NR, V, LDV, WORK(2*N+1), N )
|
CALL DLACPY( 'U', NR, NR, V, LDV, WORK(2*N+1), N )
|
||||||
* .. and the rest of the information on Q3 is in
|
* .. and the rest of the information on Q3 is in
|
||||||
|
@ -1409,7 +1409,7 @@
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
* Second preconditioning finished; continue with Jacobi SVD
|
* Second preconditioning finished; continue with Jacobi SVD
|
||||||
* The input matrix is lower trinagular.
|
* The input matrix is lower triangular.
|
||||||
*
|
*
|
||||||
* Recover the right singular vectors as solution of a well
|
* Recover the right singular vectors as solution of a well
|
||||||
* conditioned triangular matrix equation.
|
* conditioned triangular matrix equation.
|
||||||
|
@ -1454,7 +1454,7 @@
|
||||||
* :) .. the input matrix A is very likely a relative of
|
* :) .. the input matrix A is very likely a relative of
|
||||||
* the Kahan matrix :)
|
* the Kahan matrix :)
|
||||||
* The matrix R2 is inverted. The solution of the matrix equation
|
* The matrix R2 is inverted. The solution of the matrix equation
|
||||||
* is Q3^T*V3 = the product of the Jacobi rotations (appplied to
|
* is Q3^T*V3 = the product of the Jacobi rotations (applied to
|
||||||
* the lower triangular L3 from the LQ factorization of
|
* the lower triangular L3 from the LQ factorization of
|
||||||
* R2=L3*Q3), pre-multiplied with the transposed Q3.
|
* R2=L3*Q3), pre-multiplied with the transposed Q3.
|
||||||
CALL DGESVJ( 'L', 'U', 'N', NR, NR, V, LDV, SVA, NR, U,
|
CALL DGESVJ( 'L', 'U', 'N', NR, NR, V, LDV, SVA, NR, U,
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
*> \param[in] MV
|
*> \param[in] MV
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> MV is INTEGER
|
*> MV is INTEGER
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then MV is not referenced.
|
*> If JOBV = 'N', then MV is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
@ -125,9 +125,9 @@
|
||||||
*> \param[in,out] V
|
*> \param[in,out] V
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> V is DOUBLE PRECISION array, dimension (LDV,N)
|
*> V is DOUBLE PRECISION array, dimension (LDV,N)
|
||||||
*> If JOBV = 'V' then N rows of V are post-multipled by a
|
*> If JOBV = 'V' then N rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'A' then MV rows of V are post-multipled by a
|
*> If JOBV = 'A' then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then V is not referenced.
|
*> If JOBV = 'N', then V is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
*> \param[in] MV
|
*> \param[in] MV
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> MV is INTEGER
|
*> MV is INTEGER
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then MV is not referenced.
|
*> If JOBV = 'N', then MV is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
@ -155,9 +155,9 @@
|
||||||
*> \param[in,out] V
|
*> \param[in,out] V
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> V is DOUBLE PRECISION array, dimension (LDV,N)
|
*> V is DOUBLE PRECISION array, dimension (LDV,N)
|
||||||
*> If JOBV = 'V', then N rows of V are post-multipled by a
|
*> If JOBV = 'V', then N rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then V is not referenced.
|
*> If JOBV = 'N', then V is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -43,9 +43,9 @@
|
||||||
*>
|
*>
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*>
|
*>
|
||||||
*> DLALSA is an itermediate step in solving the least squares problem
|
*> DLALSA is an intermediate step in solving the least squares problem
|
||||||
*> by computing the SVD of the coefficient matrix in compact form (The
|
*> by computing the SVD of the coefficient matrix in compact form (The
|
||||||
*> singular vectors are computed as products of simple orthorgonal
|
*> singular vectors are computed as products of simple orthogonal
|
||||||
*> matrices.).
|
*> matrices.).
|
||||||
*>
|
*>
|
||||||
*> If ICOMPQ = 0, DLALSA applies the inverse of the left singular vector
|
*> If ICOMPQ = 0, DLALSA applies the inverse of the left singular vector
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
*> DSTEMR to compute the eigenvectors of T.
|
*> DSTEMR to compute the eigenvectors of T.
|
||||||
*> The accuracy varies depending on whether bisection is used to
|
*> The accuracy varies depending on whether bisection is used to
|
||||||
*> find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to
|
*> find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to
|
||||||
*> conpute all and then discard any unwanted one.
|
*> compute all and then discard any unwanted one.
|
||||||
*> As an added benefit, DLARRE also outputs the n
|
*> As an added benefit, DLARRE also outputs the n
|
||||||
*> Gerschgorin intervals for the matrices L_i D_i L_i^T.
|
*> Gerschgorin intervals for the matrices L_i D_i L_i^T.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
*>
|
*>
|
||||||
*> Note : DSTEGR and DSTEMR work only on machines which follow
|
*> Note : DSTEGR and DSTEMR work only on machines which follow
|
||||||
*> IEEE-754 floating-point standard in their handling of infinities and
|
*> IEEE-754 floating-point standard in their handling of infinities and
|
||||||
*> NaNs. Normal execution may create these exceptiona values and hence
|
*> NaNs. Normal execution may create these exceptional values and hence
|
||||||
*> may abort due to a floating point exception in environments which
|
*> may abort due to a floating point exception in environments which
|
||||||
*> do not conform to the IEEE-754 standard.
|
*> do not conform to the IEEE-754 standard.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
*>
|
*>
|
||||||
*> S*x = w*P*x, (y**H)*S = w*(y**H)*P,
|
*> S*x = w*P*x, (y**H)*S = w*(y**H)*P,
|
||||||
*>
|
*>
|
||||||
*> where y**H denotes the conjugate tranpose of y.
|
*> where y**H denotes the conjugate transpose of y.
|
||||||
*> The eigenvalues are not input to this routine, but are computed
|
*> The eigenvalues are not input to this routine, but are computed
|
||||||
*> directly from the diagonal blocks of S and P.
|
*> directly from the diagonal blocks of S and P.
|
||||||
*>
|
*>
|
||||||
|
@ -337,7 +337,7 @@
|
||||||
EXTERNAL LSAME, DLAMCH
|
EXTERNAL LSAME, DLAMCH
|
||||||
* ..
|
* ..
|
||||||
* .. External Subroutines ..
|
* .. External Subroutines ..
|
||||||
EXTERNAL DGEMV, DLABAD, DLACPY, DLAG2, DLALN2, XERBLA
|
EXTERNAL DGEMV, DLACPY, DLAG2, DLALN2, XERBLA
|
||||||
* ..
|
* ..
|
||||||
* .. Intrinsic Functions ..
|
* .. Intrinsic Functions ..
|
||||||
INTRINSIC ABS, MAX, MIN
|
INTRINSIC ABS, MAX, MIN
|
||||||
|
@ -463,7 +463,6 @@
|
||||||
*
|
*
|
||||||
SAFMIN = DLAMCH( 'Safe minimum' )
|
SAFMIN = DLAMCH( 'Safe minimum' )
|
||||||
BIG = ONE / SAFMIN
|
BIG = ONE / SAFMIN
|
||||||
CALL DLABAD( SAFMIN, BIG )
|
|
||||||
ULP = DLAMCH( 'Epsilon' )*DLAMCH( 'Base' )
|
ULP = DLAMCH( 'Epsilon' )*DLAMCH( 'Base' )
|
||||||
SMALL = SAFMIN*N / ULP
|
SMALL = SAFMIN*N / ULP
|
||||||
BIG = ONE / SMALL
|
BIG = ONE / SMALL
|
||||||
|
|
|
@ -89,14 +89,14 @@
|
||||||
*>
|
*>
|
||||||
*> \param[in] NBI
|
*> \param[in] NBI
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> NBI is INTEGER which is the used in the reduciton,
|
*> NBI is INTEGER which is the used in the reduction,
|
||||||
*> (e.g., the size of the band), needed to compute workspace
|
*> (e.g., the size of the band), needed to compute workspace
|
||||||
*> and LHOUS2.
|
*> and LHOUS2.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
*>
|
*>
|
||||||
*> \param[in] IBI
|
*> \param[in] IBI
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> IBI is INTEGER which represent the IB of the reduciton,
|
*> IBI is INTEGER which represent the IB of the reduction,
|
||||||
*> needed to compute workspace and LHOUS2.
|
*> needed to compute workspace and LHOUS2.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
*>
|
*>
|
||||||
|
|
|
@ -1386,7 +1386,7 @@
|
||||||
IF ( CONDR2 .GE. COND_OK ) THEN
|
IF ( CONDR2 .GE. COND_OK ) THEN
|
||||||
* .. save the Householder vectors used for Q3
|
* .. save the Householder vectors used for Q3
|
||||||
* (this overwrites the copy of R2, as it will not be
|
* (this overwrites the copy of R2, as it will not be
|
||||||
* needed in this branch, but it does not overwritte the
|
* needed in this branch, but it does not overwrite the
|
||||||
* Huseholder vectors of Q2.).
|
* Huseholder vectors of Q2.).
|
||||||
CALL SLACPY( 'U', NR, NR, V, LDV, WORK(2*N+1), N )
|
CALL SLACPY( 'U', NR, NR, V, LDV, WORK(2*N+1), N )
|
||||||
* .. and the rest of the information on Q3 is in
|
* .. and the rest of the information on Q3 is in
|
||||||
|
@ -1409,7 +1409,7 @@
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
* Second preconditioning finished; continue with Jacobi SVD
|
* Second preconditioning finished; continue with Jacobi SVD
|
||||||
* The input matrix is lower trinagular.
|
* The input matrix is lower triangular.
|
||||||
*
|
*
|
||||||
* Recover the right singular vectors as solution of a well
|
* Recover the right singular vectors as solution of a well
|
||||||
* conditioned triangular matrix equation.
|
* conditioned triangular matrix equation.
|
||||||
|
@ -1454,7 +1454,7 @@
|
||||||
* :) .. the input matrix A is very likely a relative of
|
* :) .. the input matrix A is very likely a relative of
|
||||||
* the Kahan matrix :)
|
* the Kahan matrix :)
|
||||||
* The matrix R2 is inverted. The solution of the matrix equation
|
* The matrix R2 is inverted. The solution of the matrix equation
|
||||||
* is Q3^T*V3 = the product of the Jacobi rotations (appplied to
|
* is Q3^T*V3 = the product of the Jacobi rotations (applied to
|
||||||
* the lower triangular L3 from the LQ factorization of
|
* the lower triangular L3 from the LQ factorization of
|
||||||
* R2=L3*Q3), pre-multiplied with the transposed Q3.
|
* R2=L3*Q3), pre-multiplied with the transposed Q3.
|
||||||
CALL SGESVJ( 'L', 'U', 'N', NR, NR, V, LDV, SVA, NR, U,
|
CALL SGESVJ( 'L', 'U', 'N', NR, NR, V, LDV, SVA, NR, U,
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
*> \param[in] MV
|
*> \param[in] MV
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> MV is INTEGER
|
*> MV is INTEGER
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then MV is not referenced.
|
*> If JOBV = 'N', then MV is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
@ -125,9 +125,9 @@
|
||||||
*> \param[in,out] V
|
*> \param[in,out] V
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> V is REAL array, dimension (LDV,N)
|
*> V is REAL array, dimension (LDV,N)
|
||||||
*> If JOBV = 'V' then N rows of V are post-multipled by a
|
*> If JOBV = 'V' then N rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'A' then MV rows of V are post-multipled by a
|
*> If JOBV = 'A' then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then V is not referenced.
|
*> If JOBV = 'N', then V is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
*> \param[in] MV
|
*> \param[in] MV
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> MV is INTEGER
|
*> MV is INTEGER
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then MV is not referenced.
|
*> If JOBV = 'N', then MV is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
@ -155,9 +155,9 @@
|
||||||
*> \param[in,out] V
|
*> \param[in,out] V
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> V is REAL array, dimension (LDV,N)
|
*> V is REAL array, dimension (LDV,N)
|
||||||
*> If JOBV = 'V' then N rows of V are post-multipled by a
|
*> If JOBV = 'V' then N rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'A' then MV rows of V are post-multipled by a
|
*> If JOBV = 'A' then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then V is not referenced.
|
*> If JOBV = 'N', then V is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -43,9 +43,9 @@
|
||||||
*>
|
*>
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*>
|
*>
|
||||||
*> SLALSA is an itermediate step in solving the least squares problem
|
*> SLALSA is an intermediate step in solving the least squares problem
|
||||||
*> by computing the SVD of the coefficient matrix in compact form (The
|
*> by computing the SVD of the coefficient matrix in compact form (The
|
||||||
*> singular vectors are computed as products of simple orthorgonal
|
*> singular vectors are computed as products of simple orthogonal
|
||||||
*> matrices.).
|
*> matrices.).
|
||||||
*>
|
*>
|
||||||
*> If ICOMPQ = 0, SLALSA applies the inverse of the left singular vector
|
*> If ICOMPQ = 0, SLALSA applies the inverse of the left singular vector
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
*> SSTEMR to compute the eigenvectors of T.
|
*> SSTEMR to compute the eigenvectors of T.
|
||||||
*> The accuracy varies depending on whether bisection is used to
|
*> The accuracy varies depending on whether bisection is used to
|
||||||
*> find a few eigenvalues or the dqds algorithm (subroutine SLASQ2) to
|
*> find a few eigenvalues or the dqds algorithm (subroutine SLASQ2) to
|
||||||
*> conpute all and then discard any unwanted one.
|
*> compute all and then discard any unwanted one.
|
||||||
*> As an added benefit, SLARRE also outputs the n
|
*> As an added benefit, SLARRE also outputs the n
|
||||||
*> Gerschgorin intervals for the matrices L_i D_i L_i^T.
|
*> Gerschgorin intervals for the matrices L_i D_i L_i^T.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
*>
|
*>
|
||||||
*> Note : SSTEGR and SSTEMR work only on machines which follow
|
*> Note : SSTEGR and SSTEMR work only on machines which follow
|
||||||
*> IEEE-754 floating-point standard in their handling of infinities and
|
*> IEEE-754 floating-point standard in their handling of infinities and
|
||||||
*> NaNs. Normal execution may create these exceptiona values and hence
|
*> NaNs. Normal execution may create these exceptional values and hence
|
||||||
*> may abort due to a floating point exception in environments which
|
*> may abort due to a floating point exception in environments which
|
||||||
*> do not conform to the IEEE-754 standard.
|
*> do not conform to the IEEE-754 standard.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
*>
|
*>
|
||||||
*> S*x = w*P*x, (y**H)*S = w*(y**H)*P,
|
*> S*x = w*P*x, (y**H)*S = w*(y**H)*P,
|
||||||
*>
|
*>
|
||||||
*> where y**H denotes the conjugate tranpose of y.
|
*> where y**H denotes the conjugate transpose of y.
|
||||||
*> The eigenvalues are not input to this routine, but are computed
|
*> The eigenvalues are not input to this routine, but are computed
|
||||||
*> directly from the diagonal blocks of S and P.
|
*> directly from the diagonal blocks of S and P.
|
||||||
*>
|
*>
|
||||||
|
@ -337,7 +337,7 @@
|
||||||
EXTERNAL LSAME, SLAMCH
|
EXTERNAL LSAME, SLAMCH
|
||||||
* ..
|
* ..
|
||||||
* .. External Subroutines ..
|
* .. External Subroutines ..
|
||||||
EXTERNAL SGEMV, SLABAD, SLACPY, SLAG2, SLALN2, XERBLA
|
EXTERNAL SGEMV, SLACPY, SLAG2, SLALN2, XERBLA
|
||||||
* ..
|
* ..
|
||||||
* .. Intrinsic Functions ..
|
* .. Intrinsic Functions ..
|
||||||
INTRINSIC ABS, MAX, MIN
|
INTRINSIC ABS, MAX, MIN
|
||||||
|
@ -463,7 +463,6 @@
|
||||||
*
|
*
|
||||||
SAFMIN = SLAMCH( 'Safe minimum' )
|
SAFMIN = SLAMCH( 'Safe minimum' )
|
||||||
BIG = ONE / SAFMIN
|
BIG = ONE / SAFMIN
|
||||||
CALL SLABAD( SAFMIN, BIG )
|
|
||||||
ULP = SLAMCH( 'Epsilon' )*SLAMCH( 'Base' )
|
ULP = SLAMCH( 'Epsilon' )*SLAMCH( 'Base' )
|
||||||
SMALL = SAFMIN*N / ULP
|
SMALL = SAFMIN*N / ULP
|
||||||
BIG = ONE / SMALL
|
BIG = ONE / SMALL
|
||||||
|
|
|
@ -1821,7 +1821,7 @@
|
||||||
IF ( CONDR2 .GE. COND_OK ) THEN
|
IF ( CONDR2 .GE. COND_OK ) THEN
|
||||||
* .. save the Householder vectors used for Q3
|
* .. save the Householder vectors used for Q3
|
||||||
* (this overwrites the copy of R2, as it will not be
|
* (this overwrites the copy of R2, as it will not be
|
||||||
* needed in this branch, but it does not overwritte the
|
* needed in this branch, but it does not overwrite the
|
||||||
* Huseholder vectors of Q2.).
|
* Huseholder vectors of Q2.).
|
||||||
CALL ZLACPY( 'U', NR, NR, V, LDV, CWORK(2*N+1), N )
|
CALL ZLACPY( 'U', NR, NR, V, LDV, CWORK(2*N+1), N )
|
||||||
* .. and the rest of the information on Q3 is in
|
* .. and the rest of the information on Q3 is in
|
||||||
|
@ -1844,7 +1844,7 @@
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
* Second preconditioning finished; continue with Jacobi SVD
|
* Second preconditioning finished; continue with Jacobi SVD
|
||||||
* The input matrix is lower trinagular.
|
* The input matrix is lower triangular.
|
||||||
*
|
*
|
||||||
* Recover the right singular vectors as solution of a well
|
* Recover the right singular vectors as solution of a well
|
||||||
* conditioned triangular matrix equation.
|
* conditioned triangular matrix equation.
|
||||||
|
@ -1888,7 +1888,7 @@
|
||||||
ELSE IF ( CONDR2 .LT. COND_OK ) THEN
|
ELSE IF ( CONDR2 .LT. COND_OK ) THEN
|
||||||
*
|
*
|
||||||
* The matrix R2 is inverted. The solution of the matrix equation
|
* The matrix R2 is inverted. The solution of the matrix equation
|
||||||
* is Q3^* * V3 = the product of the Jacobi rotations (appplied to
|
* is Q3^* * V3 = the product of the Jacobi rotations (applied to
|
||||||
* the lower triangular L3 from the LQ factorization of
|
* the lower triangular L3 from the LQ factorization of
|
||||||
* R2=L3*Q3), pre-multiplied with the transposed Q3.
|
* R2=L3*Q3), pre-multiplied with the transposed Q3.
|
||||||
CALL ZGESVJ( 'L', 'U', 'N', NR, NR, V, LDV, SVA, NR, U,
|
CALL ZGESVJ( 'L', 'U', 'N', NR, NR, V, LDV, SVA, NR, U,
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
*> \param[in] MV
|
*> \param[in] MV
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> MV is INTEGER
|
*> MV is INTEGER
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then MV is not referenced.
|
*> If JOBV = 'N', then MV is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
@ -125,9 +125,9 @@
|
||||||
*> \param[in,out] V
|
*> \param[in,out] V
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> V is COMPLEX*16 array, dimension (LDV,N)
|
*> V is COMPLEX*16 array, dimension (LDV,N)
|
||||||
*> If JOBV = 'V' then N rows of V are post-multipled by a
|
*> If JOBV = 'V' then N rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'A' then MV rows of V are post-multipled by a
|
*> If JOBV = 'A' then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then V is not referenced.
|
*> If JOBV = 'N', then V is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
*> \param[in] MV
|
*> \param[in] MV
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> MV is INTEGER
|
*> MV is INTEGER
|
||||||
*> If JOBV = 'A', then MV rows of V are post-multipled by a
|
*> If JOBV = 'A', then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then MV is not referenced.
|
*> If JOBV = 'N', then MV is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
@ -155,9 +155,9 @@
|
||||||
*> \param[in,out] V
|
*> \param[in,out] V
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*> V is COMPLEX*16 array, dimension (LDV,N)
|
*> V is COMPLEX*16 array, dimension (LDV,N)
|
||||||
*> If JOBV = 'V' then N rows of V are post-multipled by a
|
*> If JOBV = 'V' then N rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'A' then MV rows of V are post-multipled by a
|
*> If JOBV = 'A' then MV rows of V are post-multiplied by a
|
||||||
*> sequence of Jacobi rotations.
|
*> sequence of Jacobi rotations.
|
||||||
*> If JOBV = 'N', then V is not referenced.
|
*> If JOBV = 'N', then V is not referenced.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -42,9 +42,9 @@
|
||||||
*>
|
*>
|
||||||
*> \verbatim
|
*> \verbatim
|
||||||
*>
|
*>
|
||||||
*> ZLALSA is an itermediate step in solving the least squares problem
|
*> ZLALSA is an intermediate step in solving the least squares problem
|
||||||
*> by computing the SVD of the coefficient matrix in compact form (The
|
*> by computing the SVD of the coefficient matrix in compact form (The
|
||||||
*> singular vectors are computed as products of simple orthorgonal
|
*> singular vectors are computed as products of simple orthogonal
|
||||||
*> matrices.).
|
*> matrices.).
|
||||||
*>
|
*>
|
||||||
*> If ICOMPQ = 0, ZLALSA applies the inverse of the left singular vector
|
*> If ICOMPQ = 0, ZLALSA applies the inverse of the left singular vector
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
*>
|
*>
|
||||||
*> Note : ZSTEGR and ZSTEMR work only on machines which follow
|
*> Note : ZSTEGR and ZSTEMR work only on machines which follow
|
||||||
*> IEEE-754 floating-point standard in their handling of infinities and
|
*> IEEE-754 floating-point standard in their handling of infinities and
|
||||||
*> NaNs. Normal execution may create these exceptiona values and hence
|
*> NaNs. Normal execution may create these exceptional values and hence
|
||||||
*> may abort due to a floating point exception in environments which
|
*> may abort due to a floating point exception in environments which
|
||||||
*> do not conform to the IEEE-754 standard.
|
*> do not conform to the IEEE-754 standard.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
*> Z = [ kron(In, A) -kron(B**H, Im) ] (2)
|
*> Z = [ kron(In, A) -kron(B**H, Im) ] (2)
|
||||||
*> [ kron(In, D) -kron(E**H, Im) ],
|
*> [ kron(In, D) -kron(E**H, Im) ],
|
||||||
*>
|
*>
|
||||||
*> Ik is the identity matrix of size k and X**H is the conjuguate transpose of X.
|
*> Ik is the identity matrix of size k and X**H is the conjugate transpose of X.
|
||||||
*> kron(X, Y) is the Kronecker product between the matrices X and Y.
|
*> kron(X, Y) is the Kronecker product between the matrices X and Y.
|
||||||
*>
|
*>
|
||||||
*> If TRANS = 'C', y in the conjugate transposed system Z**H*y = scale*b
|
*> If TRANS = 'C', y in the conjugate transposed system Z**H*y = scale*b
|
||||||
|
|
Loading…
Reference in New Issue