Diff for /rpl/lapack/lapack/zgetsls.f between versions 1.2 and 1.3

version 1.2, 2017/06/17 11:06:45 version 1.3, 2018/05/29 06:55:22
Line 53 Line 53
 *> \verbatim  *> \verbatim
 *>          TRANS is CHARACTER*1  *>          TRANS is CHARACTER*1
 *>          = 'N': the linear system involves A;  *>          = 'N': the linear system involves A;
 *>          = 'C': the linear system involves A**C.  *>          = 'C': the linear system involves A**H.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in] M  *> \param[in] M
Line 152 Line 152
 *> \author Univ. of Colorado Denver  *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.  *> \author NAG Ltd.
 *  *
 *> \date December 2016  *> \date June 2017
 *  *
 *> \ingroup complex16GEsolve  *> \ingroup complex16GEsolve
 *  *
Line 160 Line 160
       SUBROUTINE ZGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,        SUBROUTINE ZGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
      $                    WORK, LWORK, INFO )       $                    WORK, LWORK, INFO )
 *  *
 *  -- LAPACK driver routine (version 3.7.0) --  *  -- LAPACK driver routine (version 3.7.1) --
 *  -- 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..--
 *     December 2016  *     June 2017
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          TRANS        CHARACTER          TRANS
Line 187 Line 187
       INTEGER            I, IASCL, IBSCL, J, MINMN, MAXMN, BROW,        INTEGER            I, IASCL, IBSCL, J, MINMN, MAXMN, BROW,
      $                   SCLLEN, MNK, TSZO, TSZM, LWO, LWM, LW1, LW2,       $                   SCLLEN, MNK, TSZO, TSZM, LWO, LWM, LW1, LW2,
      $                   WSIZEO, WSIZEM, INFO2       $                   WSIZEO, WSIZEM, INFO2
       DOUBLE PRECISION   ANRM, BIGNUM, BNRM, SMLNUM        DOUBLE PRECISION   ANRM, BIGNUM, BNRM, SMLNUM, DUM( 1 )
       COMPLEX*16         TQ( 5 ), WORKQ        COMPLEX*16         TQ( 5 ), WORKQ( 1 )
 *     ..  *     ..
 *     .. External Functions ..  *     .. External Functions ..
       LOGICAL            LSAME        LOGICAL            LSAME
Line 236 Line 236
        IF( M.GE.N ) THEN         IF( M.GE.N ) THEN
          CALL ZGEQR( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )           CALL ZGEQR( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
          TSZO = INT( TQ( 1 ) )           TSZO = INT( TQ( 1 ) )
          LWO  = INT( WORKQ )           LWO  = INT( WORKQ( 1 ) )
          CALL ZGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,           CALL ZGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
      $                TSZO, B, LDB, WORKQ, -1, INFO2 )       $                TSZO, B, LDB, WORKQ, -1, INFO2 )
          LWO  = MAX( LWO, INT( WORKQ ) )           LWO  = MAX( LWO, INT( WORKQ( 1 ) ) )
          CALL ZGEQR( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )           CALL ZGEQR( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
          TSZM = INT( TQ( 1 ) )           TSZM = INT( TQ( 1 ) )
          LWM  = INT( WORKQ )           LWM  = INT( WORKQ( 1 ) )
          CALL ZGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,           CALL ZGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
      $                TSZM, B, LDB, WORKQ, -1, INFO2 )       $                TSZM, B, LDB, WORKQ, -1, INFO2 )
          LWM = MAX( LWM, INT( WORKQ ) )           LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
          WSIZEO = TSZO + LWO           WSIZEO = TSZO + LWO
          WSIZEM = TSZM + LWM           WSIZEM = TSZM + LWM
        ELSE         ELSE
          CALL ZGELQ( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )           CALL ZGELQ( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
          TSZO = INT( TQ( 1 ) )           TSZO = INT( TQ( 1 ) )
          LWO  = INT( WORKQ )           LWO  = INT( WORKQ( 1 ) )
          CALL ZGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,           CALL ZGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
      $                TSZO, B, LDB, WORKQ, -1, INFO2 )       $                TSZO, B, LDB, WORKQ, -1, INFO2 )
          LWO  = MAX( LWO, INT( WORKQ ) )           LWO  = MAX( LWO, INT( WORKQ( 1 ) ) )
          CALL ZGELQ( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )           CALL ZGELQ( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
          TSZM = INT( TQ( 1 ) )           TSZM = INT( TQ( 1 ) )
          LWM  = INT( WORKQ )           LWM  = INT( WORKQ( 1 ) )
          CALL ZGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,           CALL ZGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
      $                TSZO, B, LDB, WORKQ, -1, INFO2 )       $                TSZO, B, LDB, WORKQ, -1, INFO2 )
          LWM  = MAX( LWM, INT( WORKQ ) )           LWM  = MAX( LWM, INT( WORKQ( 1 ) ) )
          WSIZEO = TSZO + LWO           WSIZEO = TSZO + LWO
          WSIZEM = TSZM + LWM           WSIZEM = TSZM + LWM
        END IF         END IF
Line 305 Line 305
 *  *
 *     Scale A, B if max element outside range [SMLNUM,BIGNUM]  *     Scale A, B if max element outside range [SMLNUM,BIGNUM]
 *  *
       ANRM = ZLANGE( 'M', M, N, A, LDA, WORK )        ANRM = ZLANGE( 'M', M, N, A, LDA, DUM )
       IASCL = 0        IASCL = 0
       IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN        IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN
 *  *
Line 331 Line 331
       IF ( TRAN ) THEN        IF ( TRAN ) THEN
         BROW = N          BROW = N
       END IF        END IF
       BNRM = ZLANGE( 'M', BROW, NRHS, B, LDB, WORK )        BNRM = ZLANGE( 'M', BROW, NRHS, B, LDB, DUM )
       IBSCL = 0        IBSCL = 0
       IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN        IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN
 *  *

Removed from v.1.2  
changed lines
  Added in v.1.3


CVSweb interface <joel.bertrand@systella.fr>