Fix typos in comments of LAPACK sources (Reference-LAPACK PR 814)tags/v0.3.24
| @@ -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 | ||||
| @@ -56,7 +56,7 @@ | |||||
| *> | *> | ||||
| *> | l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) ) | *> | l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) ) | ||||
| *> | *> | ||||
| *> where l**H is the conjugate tranpose of l. | |||||
| *> where l**H is the conjugate transpose of l. | |||||
| *> | *> | ||||
| *> (2) max over all right eigenvalue/-vector pairs (beta/alpha,r) of | *> (2) max over all right eigenvalue/-vector pairs (beta/alpha,r) of | ||||
| *> | *> | ||||
| @@ -56,7 +56,7 @@ | |||||
| *> | *> | ||||
| *> | l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) ) | *> | l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) ) | ||||
| *> | *> | ||||
| *> where l**H is the conjugate tranpose of l. | |||||
| *> where l**H is the conjugate transpose of l. | |||||
| *> | *> | ||||
| *> (2) max over all right eigenvalue/-vector pairs (beta/alpha,r) of | *> (2) max over all right eigenvalue/-vector pairs (beta/alpha,r) of | ||||
| *> | *> | ||||
| @@ -57,7 +57,7 @@ | |||||
| *> | *> | ||||
| *> | l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) ) | *> | l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) ) | ||||
| *> | *> | ||||
| *> where l**H is the conjugate tranpose of l. | |||||
| *> where l**H is the conjugate transpose of l. | |||||
| *> | *> | ||||
| *> (2) max over all right eigenvalue/-vector pairs (beta/alpha,r) of | *> (2) max over all right eigenvalue/-vector pairs (beta/alpha,r) of | ||||
| *> | *> | ||||
| @@ -55,7 +55,7 @@ | |||||
| *> | *> | ||||
| *> | l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) ) | *> | l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) ) | ||||
| *> | *> | ||||
| *> where l**H is the conjugate tranpose of l. | |||||
| *> where l**H is the conjugate transpose of l. | |||||
| *> | *> | ||||
| *> (2) max over all right eigenvalue/-vector pairs (beta/alpha,r) of | *> (2) max over all right eigenvalue/-vector pairs (beta/alpha,r) of | ||||
| *> | *> | ||||
| @@ -158,7 +158,7 @@ | |||||
| * | * | ||||
| * R = R * P(1) * ... *P(m) | * R = R * P(1) * ... *P(m) | ||||
| * | * | ||||
| CALL CUNMRZ( 'Right', 'No tranpose', M, N, M, N-M, AF, LDA, TAU, | |||||
| CALL CUNMRZ( 'Right', 'No transpose', M, N, M, N-M, AF, LDA, TAU, | |||||
| $ WORK, M, WORK( M*N+1 ), LWORK-M*N, INFO ) | $ WORK, M, WORK( M*N+1 ), LWORK-M*N, INFO ) | ||||
| * | * | ||||
| * R = R - A | * R = R - A | ||||
| @@ -158,7 +158,7 @@ | |||||
| * | * | ||||
| * R = R * P(1) * ... *P(m) | * R = R * P(1) * ... *P(m) | ||||
| * | * | ||||
| CALL DORMRZ( 'Right', 'No tranpose', M, N, M, N-M, AF, LDA, TAU, | |||||
| CALL DORMRZ( 'Right', 'No transpose', M, N, M, N-M, AF, LDA, TAU, | |||||
| $ WORK, M, WORK( M*N+1 ), LWORK-M*N, INFO ) | $ WORK, M, WORK( M*N+1 ), LWORK-M*N, INFO ) | ||||
| * | * | ||||
| * R = R - A | * R = R - A | ||||
| @@ -158,7 +158,7 @@ | |||||
| * | * | ||||
| * R = R * P(1) * ... *P(m) | * R = R * P(1) * ... *P(m) | ||||
| * | * | ||||
| CALL SORMRZ( 'Right', 'No tranpose', M, N, M, N-M, AF, LDA, TAU, | |||||
| CALL SORMRZ( 'Right', 'No transpose', M, N, M, N-M, AF, LDA, TAU, | |||||
| $ WORK, M, WORK( M*N+1 ), LWORK-M*N, INFO ) | $ WORK, M, WORK( M*N+1 ), LWORK-M*N, INFO ) | ||||
| * | * | ||||
| * R = R - A | * R = R - A | ||||
| @@ -159,7 +159,7 @@ | |||||
| * | * | ||||
| * R = R * P(1) * ... *P(m) | * R = R * P(1) * ... *P(m) | ||||
| * | * | ||||
| CALL ZUNMRZ( 'Right', 'No tranpose', M, N, M, N-M, AF, LDA, TAU, | |||||
| CALL ZUNMRZ( 'Right', 'No transpose', M, N, M, N-M, AF, LDA, TAU, | |||||
| $ WORK, M, WORK( M*N+1 ), LWORK-M*N, INFO ) | $ WORK, M, WORK( M*N+1 ), LWORK-M*N, INFO ) | ||||
| * | * | ||||
| * R = R - A | * R = R - A | ||||