Diff for /rpl/lapack/lapack/zgesvj.f between versions 1.7 and 1.8

version 1.7, 2018/05/29 07:18:16 version 1.8, 2020/05/21 21:46:04
Line 89 Line 89
 *>          Specifies whether to compute the right singular vectors, that  *>          Specifies whether to compute the right singular vectors, that
 *>          is, the matrix V:  *>          is, the matrix V:
 *>          = 'V' or 'J': the matrix V is computed and returned in the array V  *>          = 'V' or 'J': the matrix V is computed and returned in the array V
 *>          = 'A' : the Jacobi rotations are applied to the MV-by-N  *>          = 'A':  the Jacobi rotations are applied to the MV-by-N
 *>                  array V. In other words, the right singular vector  *>                  array V. In other words, the right singular vector
 *>                  matrix V is not computed explicitly; instead it is  *>                  matrix V is not computed explicitly; instead it is
 *>                  applied to an MV-by-N matrix initially stored in the  *>                  applied to an MV-by-N matrix initially stored in the
 *>                  first MV rows of V.  *>                  first MV rows of V.
 *>          = 'N' : the matrix V is not computed and the array V is not  *>          = 'N':  the matrix V is not computed and the array V is not
 *>                  referenced  *>                  referenced
 *> \endverbatim  *> \endverbatim
 *>  *>
Line 116 Line 116
 *>          A is COMPLEX*16 array, dimension (LDA,N)  *>          A is COMPLEX*16 array, dimension (LDA,N)
 *>          On entry, the M-by-N matrix A.  *>          On entry, the M-by-N matrix A.
 *>          On exit,  *>          On exit,
 *>          If JOBU .EQ. 'U' .OR. JOBU .EQ. 'C':  *>          If JOBU = 'U' .OR. JOBU = 'C':
 *>                 If INFO .EQ. 0 :  *>                 If INFO = 0 :
 *>                 RANKA orthonormal columns of U are returned in the  *>                 RANKA orthonormal columns of U are returned in the
 *>                 leading RANKA columns of the array A. Here RANKA <= N  *>                 leading RANKA columns of the array A. Here RANKA <= N
 *>                 is the number of computed singular values of A that are  *>                 is the number of computed singular values of A that are
Line 127 Line 127
 *>                 in the array RWORK as RANKA=NINT(RWORK(2)). Also see the  *>                 in the array RWORK as RANKA=NINT(RWORK(2)). Also see the
 *>                 descriptions of SVA and RWORK. The computed columns of U  *>                 descriptions of SVA and RWORK. The computed columns of U
 *>                 are mutually numerically orthogonal up to approximately  *>                 are mutually numerically orthogonal up to approximately
 *>                 TOL=SQRT(M)*EPS (default); or TOL=CTOL*EPS (JOBU.EQ.'C'),  *>                 TOL=SQRT(M)*EPS (default); or TOL=CTOL*EPS (JOBU = 'C'),
 *>                 see the description of JOBU.  *>                 see the description of JOBU.
 *>                 If INFO .GT. 0,  *>                 If INFO > 0,
 *>                 the procedure ZGESVJ did not converge in the given number  *>                 the procedure ZGESVJ did not converge in the given number
 *>                 of iterations (sweeps). In that case, the computed  *>                 of iterations (sweeps). In that case, the computed
 *>                 columns of U may not be orthogonal up to TOL. The output  *>                 columns of U may not be orthogonal up to TOL. The output
Line 137 Line 137
 *>                 values in SVA(1:N)) and V is still a decomposition of the  *>                 values in SVA(1:N)) and V is still a decomposition of the
 *>                 input matrix A in the sense that the residual  *>                 input matrix A in the sense that the residual
 *>                 || A - SCALE * U * SIGMA * V^* ||_2 / ||A||_2 is small.  *>                 || A - SCALE * U * SIGMA * V^* ||_2 / ||A||_2 is small.
 *>          If JOBU .EQ. 'N':  *>          If JOBU = 'N':
 *>                 If INFO .EQ. 0 :  *>                 If INFO = 0 :
 *>                 Note that the left singular vectors are 'for free' in the  *>                 Note that the left singular vectors are 'for free' in the
 *>                 one-sided Jacobi SVD algorithm. However, if only the  *>                 one-sided Jacobi SVD algorithm. However, if only the
 *>                 singular values are needed, the level of numerical  *>                 singular values are needed, the level of numerical
Line 147 Line 147
 *>                 numerically orthogonal up to approximately M*EPS. Thus,  *>                 numerically orthogonal up to approximately M*EPS. Thus,
 *>                 on exit, A contains the columns of U scaled with the  *>                 on exit, A contains the columns of U scaled with the
 *>                 corresponding singular values.  *>                 corresponding singular values.
 *>                 If INFO .GT. 0 :  *>                 If INFO > 0:
 *>                 the procedure ZGESVJ did not converge in the given number  *>                 the procedure ZGESVJ did not converge in the given number
 *>                 of iterations (sweeps).  *>                 of iterations (sweeps).
 *> \endverbatim  *> \endverbatim
Line 162 Line 162
 *> \verbatim  *> \verbatim
 *>          SVA is DOUBLE PRECISION array, dimension (N)  *>          SVA is DOUBLE PRECISION array, dimension (N)
 *>          On exit,  *>          On exit,
 *>          If INFO .EQ. 0 :  *>          If INFO = 0 :
 *>          depending on the value SCALE = RWORK(1), we have:  *>          depending on the value SCALE = RWORK(1), we have:
 *>                 If SCALE .EQ. ONE:  *>                 If SCALE = ONE:
 *>                 SVA(1:N) contains the computed singular values of A.  *>                 SVA(1:N) contains the computed singular values of A.
 *>                 During the computation SVA contains the Euclidean column  *>                 During the computation SVA contains the Euclidean column
 *>                 norms of the iterated matrices in the array A.  *>                 norms of the iterated matrices in the array A.
Line 173 Line 173
 *>                 factored representation is due to the fact that some of the  *>                 factored representation is due to the fact that some of the
 *>                 singular values of A might underflow or overflow.  *>                 singular values of A might underflow or overflow.
 *>  *>
 *>          If INFO .GT. 0 :  *>          If INFO > 0:
 *>          the procedure ZGESVJ did not converge in the given number of  *>          the procedure ZGESVJ did not converge in the given number of
 *>          iterations (sweeps) and SCALE*SVA(1:N) may not be accurate.  *>          iterations (sweeps) and SCALE*SVA(1:N) may not be accurate.
 *> \endverbatim  *> \endverbatim
Line 181 Line 181
 *> \param[in] MV  *> \param[in] MV
 *> \verbatim  *> \verbatim
 *>          MV is INTEGER  *>          MV is INTEGER
 *>          If JOBV .EQ. 'A', then the product of Jacobi rotations in ZGESVJ  *>          If JOBV = 'A', then the product of Jacobi rotations in ZGESVJ
 *>          is applied to the first MV rows of V. See the description of JOBV.  *>          is applied to the first MV rows of V. See the description of JOBV.
 *> \endverbatim  *> \endverbatim
 *>  *>
Line 199 Line 199
 *> \param[in] LDV  *> \param[in] LDV
 *> \verbatim  *> \verbatim
 *>          LDV is INTEGER  *>          LDV is INTEGER
 *>          The leading dimension of the array V, LDV .GE. 1.  *>          The leading dimension of the array V, LDV >= 1.
 *>          If JOBV .EQ. 'V', then LDV .GE. max(1,N).  *>          If JOBV = 'V', then LDV >= max(1,N).
 *>          If JOBV .EQ. 'A', then LDV .GE. max(1,MV) .  *>          If JOBV = 'A', then LDV >= max(1,MV) .
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in,out] CWORK  *> \param[in,out] CWORK
 *> \verbatim  *> \verbatim
 *>          CWORK is COMPLEX*16 array, dimension (max(1,LWORK))  *>          CWORK is COMPLEX*16 array, dimension (max(1,LWORK))
 *>          Used as workspace.  *>          Used as workspace.
 *>          If on entry LWORK .EQ. -1, then a workspace query is assumed and  *>          If on entry LWORK = -1, then a workspace query is assumed and
 *>          no computation is done; CWORK(1) is set to the minial (and optimal)  *>          no computation is done; CWORK(1) is set to the minial (and optimal)
 *>          length of CWORK.  *>          length of CWORK.
 *> \endverbatim  *> \endverbatim
Line 223 Line 223
 *> \verbatim  *> \verbatim
 *>          RWORK is DOUBLE PRECISION array, dimension (max(6,LRWORK))  *>          RWORK is DOUBLE PRECISION array, dimension (max(6,LRWORK))
 *>          On entry,  *>          On entry,
 *>          If JOBU .EQ. 'C' :  *>          If JOBU = 'C' :
 *>          RWORK(1) = CTOL, where CTOL defines the threshold for convergence.  *>          RWORK(1) = CTOL, where CTOL defines the threshold for convergence.
 *>                    The process stops if all columns of A are mutually  *>                    The process stops if all columns of A are mutually
 *>                    orthogonal up to CTOL*EPS, EPS=DLAMCH('E').  *>                    orthogonal up to CTOL*EPS, EPS=DLAMCH('E').
Line 243 Line 243
 *>          RWORK(5) = max_{i.NE.j} |COS(A(:,i),A(:,j))| in the last sweep.  *>          RWORK(5) = max_{i.NE.j} |COS(A(:,i),A(:,j))| in the last sweep.
 *>                    This is useful information in cases when ZGESVJ did  *>                    This is useful information in cases when ZGESVJ did
 *>                    not converge, as it can be used to estimate whether  *>                    not converge, as it can be used to estimate whether
 *>                    the output is stil useful and for post festum analysis.  *>                    the output is still useful and for post festum analysis.
 *>          RWORK(6) = the largest absolute value over all sines of the  *>          RWORK(6) = the largest absolute value over all sines of the
 *>                    Jacobi rotation angles in the last sweep. It can be  *>                    Jacobi rotation angles in the last sweep. It can be
 *>                    useful for a post festum analysis.  *>                    useful for a post festum analysis.
 *>         If on entry LRWORK .EQ. -1, then a workspace query is assumed and  *>         If on entry LRWORK = -1, then a workspace query is assumed and
 *>         no computation is done; RWORK(1) is set to the minial (and optimal)  *>         no computation is done; RWORK(1) is set to the minial (and optimal)
 *>         length of RWORK.  *>         length of RWORK.
 *> \endverbatim  *> \endverbatim
Line 261 Line 261
 *> \param[out] INFO  *> \param[out] INFO
 *> \verbatim  *> \verbatim
 *>          INFO is INTEGER  *>          INFO is INTEGER
 *>          = 0 : successful exit.  *>          = 0:  successful exit.
 *>          < 0 : if INFO = -i, then the i-th argument had an illegal value  *>          < 0:  if INFO = -i, then the i-th argument had an illegal value
 *>          > 0 : ZGESVJ did not converge in the maximal allowed number  *>          > 0:  ZGESVJ did not converge in the maximal allowed number
 *>                (NSWEEP=30) of sweeps. The output may still be useful.  *>                (NSWEEP=30) of sweeps. The output may still be useful.
 *>                See the description of RWORK.  *>                See the description of RWORK.
 *> \endverbatim  *> \endverbatim

Removed from v.1.7  
changed lines
  Added in v.1.8


CVSweb interface <joel.bertrand@systella.fr>