Diff for /rpl/lapack/lapack/dgesdd.f between versions 1.17 and 1.22

version 1.17, 2016/08/27 15:34:22 version 1.22, 2023/08/07 08:38:49
Line 2 Line 2
 *  *
 *  =========== DOCUMENTATION ===========  *  =========== DOCUMENTATION ===========
 *  *
 * Online html documentation available at   * Online html documentation available at
 *            http://www.netlib.org/lapack/explore-html/   *            http://www.netlib.org/lapack/explore-html/
 *  *
 *> \htmlonly  *> \htmlonly
 *> Download DGESDD + dependencies   *> Download DGESDD + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgesdd.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgesdd.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgesdd.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgesdd.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesdd.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesdd.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  Definition:
 *  ===========  *  ===========
 *  *
 *       SUBROUTINE DGESDD( JOBZ, M, N, A, LDA, S, U, LDU, VT, LDVT,  *       SUBROUTINE DGESDD( JOBZ, M, N, A, LDA, S, U, LDU, VT, LDVT,
 *                          WORK, LWORK, IWORK, INFO )  *                          WORK, LWORK, IWORK, INFO )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       CHARACTER          JOBZ  *       CHARACTER          JOBZ
 *       INTEGER            INFO, LDA, LDU, LDVT, LWORK, M, N  *       INTEGER            INFO, LDA, LDU, LDVT, LWORK, M, N
Line 30 Line 30
 *       DOUBLE PRECISION   A( LDA, * ), S( * ), U( LDU, * ),  *       DOUBLE PRECISION   A( LDA, * ), S( * ), U( LDU, * ),
 *      $                   VT( LDVT, * ), WORK( * )  *      $                   VT( LDVT, * ), WORK( * )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 191 Line 191
 *> \param[out] INFO  *> \param[out] INFO
 *> \verbatim  *> \verbatim
 *>          INFO is INTEGER  *>          INFO is INTEGER
 *>          = 0:  successful exit.  *>          <  0:  if INFO = -i, the i-th argument had an illegal value.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.  *>          = -4:  if A had a NAN entry.
 *>          > 0:  DBDSDC did not converge, updating process failed.  *>          >  0:  DBDSDC did not converge, updating process failed.
   *>          =  0:  successful exit.
 *> \endverbatim  *> \endverbatim
 *  *
 *  Authors:  *  Authors:
 *  ========  *  ========
 *  *
 *> \author Univ. of Tennessee   *> \author Univ. of Tennessee
 *> \author Univ. of California Berkeley   *> \author Univ. of California Berkeley
 *> \author Univ. of Colorado Denver   *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.   *> \author NAG Ltd.
 *  
 *> \date June 2016  
 *  *
 *> \ingroup doubleGEsing  *> \ingroup doubleGEsing
 *  *
Line 214 Line 213
 *>     Ming Gu and Huan Ren, Computer Science Division, University of  *>     Ming Gu and Huan Ren, Computer Science Division, University of
 *>     California at Berkeley, USA  *>     California at Berkeley, USA
 *>  *>
 *> @precisions fortran d -> s  
 *  =====================================================================  *  =====================================================================
       SUBROUTINE DGESDD( JOBZ, M, N, A, LDA, S, U, LDU, VT, LDVT,        SUBROUTINE DGESDD( JOBZ, M, N, A, LDA, S, U, LDU, VT, LDVT,
      $                   WORK, LWORK, IWORK, INFO )       $                   WORK, LWORK, IWORK, INFO )
       implicit none        implicit none
 *  *
 *  -- LAPACK driver routine (version 3.6.1) --  *  -- LAPACK driver routine --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     June 2016  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          JOBZ        CHARACTER          JOBZ
Line 247 Line 244
      $                   IR, ISCL, ITAU, ITAUP, ITAUQ, IU, IVT, LDWKVT,       $                   IR, ISCL, ITAU, ITAUP, ITAUQ, IU, IVT, LDWKVT,
      $                   LDWRKL, LDWRKR, LDWRKU, MAXWRK, MINMN, MINWRK,       $                   LDWRKL, LDWRKR, LDWRKU, MAXWRK, MINMN, MINWRK,
      $                   MNTHR, NWORK, WRKBL       $                   MNTHR, NWORK, WRKBL
       INTEGER            LWORK_DGEBRD_MN, LWORK_DGEBRD_MM,          INTEGER            LWORK_DGEBRD_MN, LWORK_DGEBRD_MM,
      $                   LWORK_DGEBRD_NN, LWORK_DGELQF_MN,       $                   LWORK_DGEBRD_NN, LWORK_DGELQF_MN,
      $                   LWORK_DGEQRF_MN,       $                   LWORK_DGEQRF_MN,
      $                   LWORK_DORGBR_P_MM, LWORK_DORGBR_Q_NN,       $                   LWORK_DORGBR_P_MM, LWORK_DORGBR_Q_NN,
Line 268 Line 265
      $                   XERBLA       $                   XERBLA
 *     ..  *     ..
 *     .. External Functions ..  *     .. External Functions ..
       LOGICAL            LSAME        LOGICAL            LSAME, DISNAN
       DOUBLE PRECISION   DLAMCH, DLANGE        DOUBLE PRECISION   DLAMCH, DLANGE, DROUNDUP_LWORK
       EXTERNAL           DLAMCH, DLANGE, LSAME        EXTERNAL           DLAMCH, DLANGE, LSAME, DISNAN, 
        $                   DROUNDUP_LWORK
 *     ..  *     ..
 *     .. Intrinsic Functions ..  *     .. Intrinsic Functions ..
       INTRINSIC          INT, MAX, MIN, SQRT        INTRINSIC          INT, MAX, MIN, SQRT
Line 323 Line 321
 *  *
             IF( WNTQN ) THEN              IF( WNTQN ) THEN
 *              dbdsdc needs only 4*N (or 6*N for uplo=L for LAPACK <= 3.6)  *              dbdsdc needs only 4*N (or 6*N for uplo=L for LAPACK <= 3.6)
 *              keep 7*N for backwards compatability.  *              keep 7*N for backwards compatibility.
                BDSPAC = 7*N                 BDSPAC = 7*N
             ELSE              ELSE
                BDSPAC = 3*N*N + 4*N                 BDSPAC = 3*N*N + 4*N
Line 449 Line 447
 *  *
             IF( WNTQN ) THEN              IF( WNTQN ) THEN
 *              dbdsdc needs only 4*N (or 6*N for uplo=L for LAPACK <= 3.6)  *              dbdsdc needs only 4*N (or 6*N for uplo=L for LAPACK <= 3.6)
 *              keep 7*N for backwards compatability.  *              keep 7*N for backwards compatibility.
                BDSPAC = 7*M                 BDSPAC = 7*M
             ELSE              ELSE
                BDSPAC = 3*M*M + 4*M                 BDSPAC = 3*M*M + 4*M
Line 569 Line 567
                END IF                 END IF
             END IF              END IF
          END IF           END IF
            
          MAXWRK = MAX( MAXWRK, MINWRK )           MAXWRK = MAX( MAXWRK, MINWRK )
          WORK( 1 ) = MAXWRK           WORK( 1 ) = DROUNDUP_LWORK( MAXWRK )
 *  *
          IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN           IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
             INFO = -12              INFO = -12
Line 600 Line 598
 *     Scale A if max element outside range [SMLNUM,BIGNUM]  *     Scale A if max element outside range [SMLNUM,BIGNUM]
 *  *
       ANRM = DLANGE( 'M', M, N, A, LDA, DUM )        ANRM = DLANGE( 'M', M, N, A, LDA, DUM )
         IF( DISNAN( ANRM ) ) THEN
             INFO = -4
             RETURN
         END IF
       ISCL = 0        ISCL = 0
       IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN        IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN
          ISCL = 1           ISCL = 1
Line 1540 Line 1542
 *  *
 *     Return optimal workspace in WORK(1)  *     Return optimal workspace in WORK(1)
 *  *
       WORK( 1 ) = MAXWRK        WORK( 1 ) = DROUNDUP_LWORK( MAXWRK )
 *  *
       RETURN        RETURN
 *  *

Removed from v.1.17  
changed lines
  Added in v.1.22


CVSweb interface <joel.bertrand@systella.fr>