Fix typos in comments (Reference-LAPACK PR 814)

This commit is contained in:
Martin Kroeker 2023-05-17 14:33:46 +02:00 committed by GitHub
parent 617e8bcfe7
commit a82c1443db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 59 additions and 61 deletions

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
*> *>

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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