Diff for /rpl/lapack/lapack/zgelss.f between versions 1.17 and 1.18

version 1.17, 2018/05/29 07:18:14 version 1.18, 2023/08/07 08:39:17
Line 170 Line 170
 *> \author Univ. of Colorado Denver  *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.  *> \author NAG Ltd.
 *  *
 *> \date June 2016  
 *  
 *> \ingroup complex16GEsolve  *> \ingroup complex16GEsolve
 *  *
 *  =====================================================================  *  =====================================================================
       SUBROUTINE ZGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,        SUBROUTINE ZGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
      $                   WORK, LWORK, RWORK, INFO )       $                   WORK, LWORK, RWORK, INFO )
 *  *
 *  -- LAPACK driver routine (version 3.7.0) --  *  -- 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 ..
       INTEGER            INFO, LDA, LDB, LWORK, M, N, NRHS, RANK        INTEGER            INFO, LDA, LDB, LWORK, M, N, NRHS, RANK
Line 269 Line 266
 *  *
 *              Compute space needed for ZGEQRF  *              Compute space needed for ZGEQRF
                CALL ZGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, INFO )                 CALL ZGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, INFO )
                LWORK_ZGEQRF=DUM(1)                 LWORK_ZGEQRF = INT( DUM(1) )
 *              Compute space needed for ZUNMQR  *              Compute space needed for ZUNMQR
                CALL ZUNMQR( 'L', 'C', M, NRHS, N, A, LDA, DUM(1), B,                 CALL ZUNMQR( 'L', 'C', M, NRHS, N, A, LDA, DUM(1), B,
      $                   LDB, DUM(1), -1, INFO )       $                   LDB, DUM(1), -1, INFO )
                LWORK_ZUNMQR=DUM(1)                 LWORK_ZUNMQR = INT( DUM(1) )
                MM = N                 MM = N
                MAXWRK = MAX( MAXWRK, N + N*ILAENV( 1, 'ZGEQRF', ' ', M,                 MAXWRK = MAX( MAXWRK, N + N*ILAENV( 1, 'ZGEQRF', ' ', M,
      $                       N, -1, -1 ) )       $                       N, -1, -1 ) )
Line 287 Line 284
 *              Compute space needed for ZGEBRD  *              Compute space needed for ZGEBRD
                CALL ZGEBRD( MM, N, A, LDA, S, S, DUM(1), DUM(1), DUM(1),                 CALL ZGEBRD( MM, N, A, LDA, S, S, DUM(1), DUM(1), DUM(1),
      $                      -1, INFO )       $                      -1, INFO )
                LWORK_ZGEBRD=DUM(1)                 LWORK_ZGEBRD = INT( DUM(1) )
 *              Compute space needed for ZUNMBR  *              Compute space needed for ZUNMBR
                CALL ZUNMBR( 'Q', 'L', 'C', MM, NRHS, N, A, LDA, DUM(1),                 CALL ZUNMBR( 'Q', 'L', 'C', MM, NRHS, N, A, LDA, DUM(1),
      $                B, LDB, DUM(1), -1, INFO )       $                B, LDB, DUM(1), -1, INFO )
                LWORK_ZUNMBR=DUM(1)                 LWORK_ZUNMBR = INT( DUM(1) )
 *              Compute space needed for ZUNGBR  *              Compute space needed for ZUNGBR
                CALL ZUNGBR( 'P', N, N, N, A, LDA, DUM(1),                 CALL ZUNGBR( 'P', N, N, N, A, LDA, DUM(1),
      $                   DUM(1), -1, INFO )       $                   DUM(1), -1, INFO )
                LWORK_ZUNGBR=DUM(1)                 LWORK_ZUNGBR = INT( DUM(1) )
 *              Compute total workspace needed  *              Compute total workspace needed
                MAXWRK = MAX( MAXWRK, 2*N + LWORK_ZGEBRD )                 MAXWRK = MAX( MAXWRK, 2*N + LWORK_ZGEBRD )
                MAXWRK = MAX( MAXWRK, 2*N + LWORK_ZUNMBR )                 MAXWRK = MAX( MAXWRK, 2*N + LWORK_ZUNMBR )
Line 313 Line 310
 *                 Compute space needed for ZGELQF  *                 Compute space needed for ZGELQF
                   CALL ZGELQF( M, N, A, LDA, DUM(1), DUM(1),                    CALL ZGELQF( M, N, A, LDA, DUM(1), DUM(1),
      $                -1, INFO )       $                -1, INFO )
                   LWORK_ZGELQF=DUM(1)                    LWORK_ZGELQF = INT( DUM(1) )
 *                 Compute space needed for ZGEBRD  *                 Compute space needed for ZGEBRD
                   CALL ZGEBRD( M, M, A, LDA, S, S, DUM(1), DUM(1),                    CALL ZGEBRD( M, M, A, LDA, S, S, DUM(1), DUM(1),
      $                         DUM(1), -1, INFO )       $                         DUM(1), -1, INFO )
                   LWORK_ZGEBRD=DUM(1)                    LWORK_ZGEBRD = INT( DUM(1) )
 *                 Compute space needed for ZUNMBR  *                 Compute space needed for ZUNMBR
                   CALL ZUNMBR( 'Q', 'L', 'C', M, NRHS, N, A, LDA,                    CALL ZUNMBR( 'Q', 'L', 'C', M, NRHS, N, A, LDA,
      $                DUM(1), B, LDB, DUM(1), -1, INFO )       $                DUM(1), B, LDB, DUM(1), -1, INFO )
                   LWORK_ZUNMBR=DUM(1)                    LWORK_ZUNMBR = INT( DUM(1) )
 *                 Compute space needed for ZUNGBR  *                 Compute space needed for ZUNGBR
                   CALL ZUNGBR( 'P', M, M, M, A, LDA, DUM(1),                    CALL ZUNGBR( 'P', M, M, M, A, LDA, DUM(1),
      $                   DUM(1), -1, INFO )       $                   DUM(1), -1, INFO )
                   LWORK_ZUNGBR=DUM(1)                    LWORK_ZUNGBR = INT( DUM(1) )
 *                 Compute space needed for ZUNMLQ  *                 Compute space needed for ZUNMLQ
                   CALL ZUNMLQ( 'L', 'C', N, NRHS, M, A, LDA, DUM(1),                    CALL ZUNMLQ( 'L', 'C', N, NRHS, M, A, LDA, DUM(1),
      $                 B, LDB, DUM(1), -1, INFO )       $                 B, LDB, DUM(1), -1, INFO )
                   LWORK_ZUNMLQ=DUM(1)                    LWORK_ZUNMLQ = INT( DUM(1) )
 *                 Compute total workspace needed  *                 Compute total workspace needed
                   MAXWRK = M + LWORK_ZGELQF                    MAXWRK = M + LWORK_ZGELQF
                   MAXWRK = MAX( MAXWRK, 3*M + M*M + LWORK_ZGEBRD )                    MAXWRK = MAX( MAXWRK, 3*M + M*M + LWORK_ZGEBRD )
Line 348 Line 345
 *                 Compute space needed for ZGEBRD  *                 Compute space needed for ZGEBRD
                   CALL ZGEBRD( M, N, A, LDA, S, S, DUM(1), DUM(1),                    CALL ZGEBRD( M, N, A, LDA, S, S, DUM(1), DUM(1),
      $                         DUM(1), -1, INFO )       $                         DUM(1), -1, INFO )
                   LWORK_ZGEBRD=DUM(1)                    LWORK_ZGEBRD = INT( DUM(1) )
 *                 Compute space needed for ZUNMBR  *                 Compute space needed for ZUNMBR
                   CALL ZUNMBR( 'Q', 'L', 'C', M, NRHS, M, A, LDA,                    CALL ZUNMBR( 'Q', 'L', 'C', M, NRHS, M, A, LDA,
      $                DUM(1), B, LDB, DUM(1), -1, INFO )       $                DUM(1), B, LDB, DUM(1), -1, INFO )
                   LWORK_ZUNMBR=DUM(1)                    LWORK_ZUNMBR = INT( DUM(1) )
 *                 Compute space needed for ZUNGBR  *                 Compute space needed for ZUNGBR
                   CALL ZUNGBR( 'P', M, N, M, A, LDA, DUM(1),                    CALL ZUNGBR( 'P', M, N, M, A, LDA, DUM(1),
      $                   DUM(1), -1, INFO )       $                   DUM(1), -1, INFO )
                   LWORK_ZUNGBR=DUM(1)                    LWORK_ZUNGBR = INT( DUM(1) )
                   MAXWRK = 2*M + LWORK_ZGEBRD                    MAXWRK = 2*M + LWORK_ZGEBRD
                   MAXWRK = MAX( MAXWRK, 2*M + LWORK_ZUNMBR )                    MAXWRK = MAX( MAXWRK, 2*M + LWORK_ZUNMBR )
                   MAXWRK = MAX( MAXWRK, 2*M + LWORK_ZUNGBR )                    MAXWRK = MAX( MAXWRK, 2*M + LWORK_ZUNGBR )

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


CVSweb interface <joel.bertrand@systella.fr>