Diff for /rpl/lapack/lapack/dgelsd.f between versions 1.4 and 1.5

version 1.4, 2010/08/06 15:32:23 version 1.5, 2010/08/07 13:18:06
Line 1 Line 1
       SUBROUTINE DGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,        SUBROUTINE DGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
      $                   WORK, LWORK, IWORK, INFO )       $                   WORK, LWORK, IWORK, INFO )
 *  *
 *  -- LAPACK driver routine (version 3.2) --  *  -- LAPACK driver routine (version 3.2.2) --
 *  -- 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..--
 *     November 2006  *     June 2010
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER            INFO, LDA, LDB, LWORK, M, N, NRHS, RANK        INTEGER            INFO, LDA, LDB, LWORK, M, N, NRHS, RANK
Line 114 Line 114
 *          message related to LWORK is issued by XERBLA.  *          message related to LWORK is issued by XERBLA.
 *  *
 *  IWORK   (workspace) INTEGER array, dimension (MAX(1,LIWORK))  *  IWORK   (workspace) INTEGER array, dimension (MAX(1,LIWORK))
 *          LIWORK >= 3 * MINMN * NLVL + 11 * MINMN,  *          LIWORK >= max(1, 3 * MINMN * NLVL + 11 * MINMN),
 *          where MINMN = MIN( M,N ).  *          where MINMN = MIN( M,N ).
   *          On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.
 *  *
 *  INFO    (output) INTEGER  *  INFO    (output) INTEGER
 *          = 0:  successful exit  *          = 0:  successful exit
Line 141 Line 142
 *     .. Local Scalars ..  *     .. Local Scalars ..
       LOGICAL            LQUERY        LOGICAL            LQUERY
       INTEGER            IASCL, IBSCL, IE, IL, ITAU, ITAUP, ITAUQ,        INTEGER            IASCL, IBSCL, IE, IL, ITAU, ITAUP, ITAUQ,
      $                   LDWORK, MAXMN, MAXWRK, MINMN, MINWRK, MM,       $                   LDWORK, LIWORK, MAXMN, MAXWRK, MINMN, MINWRK,
      $                   MNTHR, NLVL, NWORK, SMLSIZ, WLALSD       $                   MM, MNTHR, NLVL, NWORK, SMLSIZ, WLALSD
       DOUBLE PRECISION   ANRM, BIGNUM, BNRM, EPS, SFMIN, SMLNUM        DOUBLE PRECISION   ANRM, BIGNUM, BNRM, EPS, SFMIN, SMLNUM
 *     ..  *     ..
 *     .. External Subroutines ..  *     .. External Subroutines ..
Line 188 Line 189
 *     following subroutine, as returned by ILAENV.)  *     following subroutine, as returned by ILAENV.)
 *  *
       MINWRK = 1        MINWRK = 1
         LIWORK = 1
       MINMN = MAX( 1, MINMN )        MINMN = MAX( 1, MINMN )
       NLVL = MAX( INT( LOG( DBLE( MINMN ) / DBLE( SMLSIZ+1 ) ) /        NLVL = MAX( INT( LOG( DBLE( MINMN ) / DBLE( SMLSIZ+1 ) ) /
      $       LOG( TWO ) ) + 1, 0 )       $       LOG( TWO ) ) + 1, 0 )
 *  *
       IF( INFO.EQ.0 ) THEN        IF( INFO.EQ.0 ) THEN
          MAXWRK = 0           MAXWRK = 0
            LIWORK = 3*MINMN*NLVL + 11*MINMN
          MM = M           MM = M
          IF( M.GE.N .AND. M.GE.MNTHR ) THEN           IF( M.GE.N .AND. M.GE.MNTHR ) THEN
 *  *
Line 261 Line 264
          END IF           END IF
          MINWRK = MIN( MINWRK, MAXWRK )           MINWRK = MIN( MINWRK, MAXWRK )
          WORK( 1 ) = MAXWRK           WORK( 1 ) = MAXWRK
            IWORK( 1 ) = LIWORK
   
          IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN           IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
             INFO = -12              INFO = -12
          END IF           END IF
Line 526 Line 531
 *  *
    10 CONTINUE     10 CONTINUE
       WORK( 1 ) = MAXWRK        WORK( 1 ) = MAXWRK
         IWORK( 1 ) = LIWORK
       RETURN        RETURN
 *  *
 *     End of DGELSD  *     End of DGELSD

Removed from v.1.4  
changed lines
  Added in v.1.5


CVSweb interface <joel.bertrand@systella.fr>