Diff for /rpl/lapack/lapack/dsysv_aa_2stage.f between versions 1.1 and 1.2

version 1.1, 2018/05/29 14:48:39 version 1.2, 2020/05/21 21:46:02
Line 45 Line 45
 *> matrices.  *> matrices.
 *>  *>
 *> Aasen's 2-stage algorithm is used to factor A as  *> Aasen's 2-stage algorithm is used to factor A as
 *>    A = U * T * U**T,  if UPLO = 'U', or  *>    A = U**T * T * U,  if UPLO = 'U', or
 *>    A = L * T * L**T,  if UPLO = 'L',  *>    A = L * T * L**T,  if UPLO = 'L',
 *> where U (or L) is a product of permutation and unit upper (lower)  *> where U (or L) is a product of permutation and unit upper (lower)
 *> triangular matrices, and T is symmetric and band. The matrix T is  *> triangular matrices, and T is symmetric and band. The matrix T is
Line 107 Line 107
 *>  *>
 *> \param[in] LTB  *> \param[in] LTB
 *> \verbatim  *> \verbatim
   *>          LTB is INTEGER
 *>          The size of the array TB. LTB >= 4*N, internally  *>          The size of the array TB. LTB >= 4*N, internally
 *>          used to select NB such that LTB >= (3*NB+1)*N.  *>          used to select NB such that LTB >= (3*NB+1)*N.
 *>  *>
Line 126 Line 127
 *>  *>
 *> \param[out] IPIV2  *> \param[out] IPIV2
 *> \verbatim  *> \verbatim
 *>          IPIV is INTEGER array, dimension (N)  *>          IPIV2 is INTEGER array, dimension (N)
 *>          On exit, it contains the details of the interchanges, i.e.,  *>          On exit, it contains the details of the interchanges, i.e.,
 *>          the row and column k of T were interchanged with the  *>          the row and column k of T were interchanged with the
 *>          row and column IPIV(k).  *>          row and column IPIV(k).
Line 152 Line 153
 *>  *>
 *> \param[in] LWORK  *> \param[in] LWORK
 *> \verbatim  *> \verbatim
   *>          LWORK is INTEGER
 *>          The size of WORK. LWORK >= N, internally used to select NB  *>          The size of WORK. LWORK >= N, internally used to select NB
 *>          such that LWORK >= N*NB.  *>          such that LWORK >= N*NB.
 *>  *>
Line 235 Line 237
          INFO = -3           INFO = -3
       ELSE IF( LDA.LT.MAX( 1, N ) ) THEN        ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
          INFO = -5           INFO = -5
         ELSE IF( LTB.LT.( 4*N ) .AND. .NOT.TQUERY ) THEN
            INFO = -7
       ELSE IF( LDB.LT.MAX( 1, N ) ) THEN        ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
          INFO = -11           INFO = -11
         ELSE IF( LWORK.LT.N .AND. .NOT.WQUERY ) THEN
            INFO = -13
       END IF        END IF
 *  *
       IF( INFO.EQ.0 ) THEN        IF( INFO.EQ.0 ) THEN
          CALL DSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, -1, IPIV,           CALL DSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, -1, IPIV,
      $                          IPIV2, WORK, -1, INFO )       $                          IPIV2, WORK, -1, INFO )
          LWKOPT = INT( WORK(1) )           LWKOPT = INT( WORK(1) )
          IF( LTB.LT.INT( TB(1) ) .AND. .NOT.TQUERY ) THEN  
             INFO = -7  
          ELSE IF( LWORK.LT.LWKOPT .AND. .NOT.WQUERY ) THEN  
             INFO = -13  
          END IF  
       END IF        END IF
 *  *
       IF( INFO.NE.0 ) THEN        IF( INFO.NE.0 ) THEN
Line 258 Line 259
       END IF        END IF
 *  *
 *  *
 *     Compute the factorization A = U*T*U**T or A = L*T*L**T.  *     Compute the factorization A = U**T*T*U or A = L*T*L**T.
 *  *
       CALL DSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, LTB, IPIV, IPIV2,        CALL DSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, LTB, IPIV, IPIV2,
      $                       WORK, LWORK, INFO )       $                       WORK, LWORK, INFO )

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


CVSweb interface <joel.bertrand@systella.fr>