remove "singularity" check in sytrf_aa
authorIchitaro Yamazaki <iyamazak@bunsen.icl.utk.edu>
Sun, 11 Jun 2017 03:09:52 +0000 (23:09 -0400)
committerIchitaro Yamazaki <iyamazak@bunsen.icl.utk.edu>
Sun, 11 Jun 2017 03:09:52 +0000 (23:09 -0400)
12 files changed:
SRC/chetrf_aa.f
SRC/clahef_aa.f
SRC/clasyf_aa.f
SRC/csytrf_aa.f
SRC/dlasyf_aa.f
SRC/dsytrf_aa.f
SRC/slasyf_aa.f
SRC/ssytrf_aa.f
SRC/zhetrf_aa.f
SRC/zlahef_aa.f
SRC/zlasyf_aa.f
SRC/zsytrf_aa.f

index 153a089..d1357e1 100644 (file)
 *> \verbatim
 *>          INFO is INTEGER
 *>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
 *> \endverbatim
 *
 *  Authors:
 *
 *     .. Local Scalars ..
       LOGICAL      LQUERY, UPPER
-      INTEGER      J, LWKOPT, IINFO
+      INTEGER      J, LWKOPT
       INTEGER      NB, MJ, NJ, K1, K2, J1, J2, J3, JB
       COMPLEX      ALPHA
 *     ..
       IPIV( 1 ) = 1
       IF ( N.EQ.1 ) THEN
          A( 1, 1 ) = REAL( A( 1, 1 ) )
-         IF ( A( 1, 1 ).EQ.ZERO ) THEN
-            INFO = 1
-         END IF
          RETURN
       END IF
 *
 *
          CALL CLAHEF_AA( UPLO, 2-K1, N-J, JB,
      $                      A( MAX(1, J), J+1 ), LDA,
-     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ),
-     $                      IINFO )
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-             INFO = IINFO+J
-         ENDIF
+     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
 *
          CALL CLAHEF_AA( UPLO, 2-K1, N-J, JB,
      $                      A( J+1, MAX(1, J) ), LDA,
-     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ), IINFO)
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-            INFO = IINFO+J
-         ENDIF
+     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
index 1fbe9a4..bd53136 100644 (file)
 *  ===========
 *
 *       SUBROUTINE CLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-*                             H, LDH, WORK, INFO )
+*                             H, LDH, WORK )
 *
 *       .. Scalar Arguments ..
 *       CHARACTER    UPLO
-*       INTEGER      J1, M, NB, LDA, LDH, INFO
+*       INTEGER      J1, M, NB, LDA, LDH
 *       ..
 *       .. Array Arguments ..
 *       INTEGER      IPIV( * )
 *>          WORK is COMPLEX workspace, dimension (M).
 *> \endverbatim
 *>
-*> \param[out] INFO
-*> \verbatim
-*>          INFO is INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
-*> \endverbatim
 *
 *  Authors:
 *  ========
 *
 *  =====================================================================
       SUBROUTINE CLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-     $                      H, LDH, WORK, INFO )
+     $                      H, LDH, WORK )
 *
 *  -- LAPACK computational routine (version 3.7.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *
 *     .. Scalar Arguments ..
       CHARACTER    UPLO
-      INTEGER      M, NB, J1, LDA, LDH, INFO
+      INTEGER      M, NB, J1, LDA, LDH
 *     ..
 *     .. Array Arguments ..
       INTEGER      IPIV( * )
 *     ..
 *     .. Executable Statements ..
 *
-      INFO = 0
       J = 1
 *
 *     K1 is the first column of the panel to be factorized
 *           Set A(J, J+1) = T(J, J+1)
 *
             A( K, J+1 ) = WORK( 2 )
-            IF( (A( K, J ).EQ.ZERO ) .AND. (A( K, J+1 ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( K-1, J ).EQ.ZERO)) ) THEN
-                IF(INFO .EQ. 0) THEN
-                    INFO = J
-                END IF
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL CLASET( 'Full', 1, M-J-1, ZERO, ZERO,
      $                      A( K, J+2 ), LDA)
             END IF
-         ELSE
-            IF( (A( K, J ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J-1, J ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 10
 *           Set A(J+1, J) = T(J+1, J)
 *
             A( J+1, K ) = WORK( 2 )
-            IF( (A( J, K ).EQ.ZERO) .AND. (A( J+1, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-                IF (INFO .EQ. 0)
-     $              INFO = J
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL CLASET( 'Full', M-J-1, 1, ZERO, ZERO,
      $                      A( J+2, K ), LDA )
             END IF
-         ELSE
-            IF( (A( J, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 30
index c58cd85..8d0d40a 100644 (file)
 *  ===========
 *
 *       SUBROUTINE CLASYF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-*                             H, LDH, WORK, INFO )
+*                             H, LDH, WORK )
 *
 *       .. Scalar Arguments ..
 *       CHARACTER          UPLO
-*       INTEGER            J1, M, NB, LDA, LDH, INFO
+*       INTEGER            J1, M, NB, LDA, LDH
 *       ..
 *       .. Array Arguments ..
 *       INTEGER            IPIV( * )
 *>          WORK is REAL workspace, dimension (M).
 *> \endverbatim
 *>
-*> \param[out] INFO
-*> \verbatim
-*>          INFO is INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
-*> \endverbatim
 *
 *  Authors:
 *  ========
 *
 *  =====================================================================
       SUBROUTINE CLASYF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-     $                      H, LDH, WORK, INFO )
+     $                      H, LDH, WORK )
 *
 *  -- LAPACK computational routine (version 3.7.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *
 *     .. Scalar Arguments ..
       CHARACTER          UPLO
-      INTEGER            M, NB, J1, LDA, LDH, INFO
+      INTEGER            M, NB, J1, LDA, LDH
 *     ..
 *     .. Array Arguments ..
       INTEGER            IPIV( * )
 *     ..
 *     .. Executable Statements ..
 *
-      INFO = 0
       J = 1
 *
 *     K1 is the first column of the panel to be factorized
 *           Set A(J, J+1) = T(J, J+1)
 *
             A( K, J+1 ) = WORK( 2 )
-            IF( (A( K, J ).EQ.ZERO ) .AND. (A( K, J+1 ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( K-1, J ).EQ.ZERO)) ) THEN
-                IF(INFO .EQ. 0) THEN
-                    INFO = J
-                ENDIF
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL CLASET( 'Full', 1, M-J-1, ZERO, ZERO,
      $                      A( K, J+2 ), LDA)
             END IF
-         ELSE
-            IF( (A( K, J ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J-1, J ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 10
 *           Set A(J+1, J) = T(J+1, J)
 *
             A( J+1, K ) = WORK( 2 )
-            IF( (A( J, K ).EQ.ZERO) .AND. (A( J+1, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-                IF (INFO .EQ. 0)
-     $              INFO = J
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL CLASET( 'Full', M-J-1, 1, ZERO, ZERO,
      $                      A( J+2, K ), LDA )
             END IF
-         ELSE
-            IF( (A( J, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 30
index 7fcbb37..2eb2e82 100644 (file)
 *> \verbatim
 *>          INFO is INTEGER
 *>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
 *> \endverbatim
 *
 *  Authors:
 *
 *     .. Local Scalars ..
       LOGICAL            LQUERY, UPPER
-      INTEGER            J, LWKOPT, IINFO
+      INTEGER            J, LWKOPT
       INTEGER            NB, MJ, NJ, K1, K2, J1, J2, J3, JB
       COMPLEX            ALPHA
 *     ..
       ENDIF
       IPIV( 1 ) = 1
       IF ( N.EQ.1 ) THEN
-         IF ( A( 1, 1 ).EQ.ZERO ) THEN
-            INFO = 1
-         END IF
          RETURN
       END IF
 *
 *
          CALL CLASYF_AA( UPLO, 2-K1, N-J, JB,
      $                   A( MAX(1, J), J+1 ), LDA,
-     $                   IPIV( J+1 ), WORK, N, WORK( N*NB+1 ),
-     $                   IINFO )
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-             INFO = IINFO+J
-         ENDIF
+     $                   IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
 *
          CALL CLASYF_AA( UPLO, 2-K1, N-J, JB,
      $                   A( J+1, MAX(1, J) ), LDA,
-     $                   IPIV( J+1 ), WORK, N, WORK( N*NB+1 ), IINFO)
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-            INFO = IINFO+J
-         ENDIF
+     $                   IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
index 08d7520..fa6cccb 100644 (file)
 *  ===========
 *
 *       SUBROUTINE DLASYF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-*                             H, LDH, WORK, INFO )
+*                             H, LDH, WORK )
 *
 *       .. Scalar Arguments ..
 *       CHARACTER          UPLO
-*       INTEGER            J1, M, NB, LDA, LDH, INFO
+*       INTEGER            J1, M, NB, LDA, LDH
 *       ..
 *       .. Array Arguments ..
 *       INTEGER            IPIV( * )
 *>          WORK is DOUBLE PRECISION workspace, dimension (M).
 *> \endverbatim
 *>
-*> \param[out] INFO
-*> \verbatim
-*>          INFO is INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
-*> \endverbatim
 *
 *  Authors:
 *  ========
 *
 *  =====================================================================
       SUBROUTINE DLASYF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-     $                      H, LDH, WORK, INFO )
+     $                      H, LDH, WORK )
 *
 *  -- LAPACK computational routine (version 3.7.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *
 *     .. Scalar Arguments ..
       CHARACTER          UPLO
-      INTEGER            M, NB, J1, LDA, LDH, INFO
+      INTEGER            M, NB, J1, LDA, LDH
 *     ..
 *     .. Array Arguments ..
       INTEGER            IPIV( * )
 *     ..
 *     .. Executable Statements ..
 *
-      INFO = 0
       J = 1
 *
 *     K1 is the first column of the panel to be factorized
 *           Set A(J, J+1) = T(J, J+1)
 *
             A( K, J+1 ) = WORK( 2 )
-            IF( (A( K, J ).EQ.ZERO ) .AND. (A( K, J+1 ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( K-1, J ).EQ.ZERO)) ) THEN
-                IF(INFO .EQ. 0) THEN
-                    INFO = J
-                ENDIF
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL DLASET( 'Full', 1, M-J-1, ZERO, ZERO,
      $                      A( K, J+2 ), LDA)
             END IF
-         ELSE
-            IF( (A( K, J ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J-1, J ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 10
 *           Set A(J+1, J) = T(J+1, J)
 *
             A( J+1, K ) = WORK( 2 )
-            IF( (A( J, K ).EQ.ZERO) .AND. (A( J+1, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-                IF (INFO .EQ. 0)
-     $              INFO = J
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL DLASET( 'Full', M-J-1, 1, ZERO, ZERO,
      $                      A( J+2, K ), LDA )
             END IF
-         ELSE
-            IF( (A( J, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 30
index c3d598b..1fabc23 100644 (file)
 *> \verbatim
 *>          INFO is INTEGER
 *>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
 *> \endverbatim
 *
 *  Authors:
 *
 *     .. Local Scalars ..
       LOGICAL            LQUERY, UPPER
-      INTEGER            J, LWKOPT, IINFO
+      INTEGER            J, LWKOPT
       INTEGER            NB, MJ, NJ, K1, K2, J1, J2, J3, JB
       DOUBLE PRECISION   ALPHA
 *     ..
       ENDIF
       IPIV( 1 ) = 1
       IF ( N.EQ.1 ) THEN
-         IF ( A( 1, 1 ).EQ.ZERO ) THEN
-            INFO = 1
-         END IF
          RETURN
       END IF
 *
 *
          CALL DLASYF_AA( UPLO, 2-K1, N-J, JB,
      $                      A( MAX(1, J), J+1 ), LDA,
-     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ),
-     $                      IINFO )
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-             INFO = IINFO+J
-         ENDIF
+     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
 *
          CALL DLASYF_AA( UPLO, 2-K1, N-J, JB,
      $                      A( J+1, MAX(1, J) ), LDA,
-     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ), IINFO)
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-            INFO = IINFO+J
-         ENDIF
+     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
index 5391cef..c990386 100644 (file)
 *  ===========
 *
 *       SUBROUTINE SLASYF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-*                             H, LDH, WORK, INFO )
+*                             H, LDH, WORK )
 *
 *       .. Scalar Arguments ..
 *       CHARACTER          UPLO
-*       INTEGER            J1, M, NB, LDA, LDH, INFO
+*       INTEGER            J1, M, NB, LDA, LDH
 *       ..
 *       .. Array Arguments ..
 *       INTEGER            IPIV( * )
 *>          WORK is REAL workspace, dimension (M).
 *> \endverbatim
 *>
-*> \param[out] INFO
-*> \verbatim
-*>          INFO is INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
-*> \endverbatim
 *
 *  Authors:
 *  ========
 *
 *  =====================================================================
       SUBROUTINE SLASYF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-     $                      H, LDH, WORK, INFO )
+     $                      H, LDH, WORK )
 *
 *  -- LAPACK computational routine (version 3.7.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *
 *     .. Scalar Arguments ..
       CHARACTER          UPLO
-      INTEGER            M, NB, J1, LDA, LDH, INFO
+      INTEGER            M, NB, J1, LDA, LDH
 *     ..
 *     .. Array Arguments ..
       INTEGER            IPIV( * )
 *     ..
 *     .. Executable Statements ..
 *
-      INFO = 0
       J = 1
 *
 *     K1 is the first column of the panel to be factorized
 *           Set A(J, J+1) = T(J, J+1)
 *
             A( K, J+1 ) = WORK( 2 )
-            IF( (A( K, J ).EQ.ZERO ) .AND. (A( K, J+1 ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( K-1, J ).EQ.ZERO)) ) THEN
-                IF(INFO .EQ. 0) THEN
-                    INFO = J
-                ENDIF
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL SLASET( 'Full', 1, M-J-1, ZERO, ZERO,
      $                      A( K, J+2 ), LDA)
             END IF
-         ELSE
-            IF( (A( K, J ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J-1, J ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 10
 *           Set A(J+1, J) = T(J+1, J)
 *
             A( J+1, K ) = WORK( 2 )
-            IF( (A( J, K ).EQ.ZERO) .AND. (A( J+1, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-                IF (INFO .EQ. 0)
-     $              INFO = J
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL SLASET( 'Full', M-J-1, 1, ZERO, ZERO,
      $                      A( J+2, K ), LDA )
             END IF
-         ELSE
-            IF( (A( J, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 30
index 98f433a..d9684b0 100644 (file)
 *> \verbatim
 *>          INFO is INTEGER
 *>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
 *> \endverbatim
 *
 *  Authors:
 *
 *     .. Local Scalars ..
       LOGICAL            LQUERY, UPPER
-      INTEGER            J, LWKOPT, IINFO
+      INTEGER            J, LWKOPT
       INTEGER            NB, MJ, NJ, K1, K2, J1, J2, J3, JB
       REAL   ALPHA
 *     ..
       ENDIF
       IPIV( 1 ) = 1
       IF ( N.EQ.1 ) THEN
-         IF ( A( 1, 1 ).EQ.ZERO ) THEN
-            INFO = 1
-         END IF
          RETURN
       END IF
 *
 *
          CALL SLASYF_AA( UPLO, 2-K1, N-J, JB,
      $                      A( MAX(1, J), J+1 ), LDA,
-     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ),
-     $                      IINFO )
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-             INFO = IINFO+J
-         ENDIF
+     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
 *
          CALL SLASYF_AA( UPLO, 2-K1, N-J, JB,
      $                      A( J+1, MAX(1, J) ), LDA,
-     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ), IINFO)
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-            INFO = IINFO+J
-         ENDIF
+     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
index 05844bb..7e1c7a5 100644 (file)
 *
 *     .. Local Scalars ..
       LOGICAL      LQUERY, UPPER
-      INTEGER      J, LWKOPT, IINFO
+      INTEGER      J, LWKOPT
       INTEGER      NB, MJ, NJ, K1, K2, J1, J2, J3, JB
       COMPLEX*16   ALPHA
 *     ..
       IPIV( 1 ) = 1
       IF ( N.EQ.1 ) THEN
          A( 1, 1 ) = DBLE( A( 1, 1 ) )
-         IF ( A( 1, 1 ).EQ.ZERO ) THEN
-            INFO = 1
-         END IF
          RETURN
       END IF
 *
 *
          CALL ZLAHEF_AA( UPLO, 2-K1, N-J, JB,
      $                      A( MAX(1, J), J+1 ), LDA,
-     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ),
-     $                      IINFO )
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-             INFO = IINFO+J
-         ENDIF
+     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
 *
          CALL ZLAHEF_AA( UPLO, 2-K1, N-J, JB,
      $                      A( J+1, MAX(1, J) ), LDA,
-     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ), IINFO)
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-            INFO = IINFO+J
-         ENDIF
+     $                      IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
index 4646233..5264518 100644 (file)
 *  ===========
 *
 *       SUBROUTINE ZLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-*                             H, LDH, WORK, INFO )
+*                             H, LDH, WORK )
 *
 *       .. Scalar Arguments ..
 *       CHARACTER    UPLO
-*       INTEGER      J1, M, NB, LDA, LDH, INFO
+*       INTEGER      J1, M, NB, LDA, LDH
 *       ..
 *       .. Array Arguments ..
 *       INTEGER      IPIV( * )
 *>          WORK is COMPLEX*16 workspace, dimension (M).
 *> \endverbatim
 *>
-*> \param[out] INFO
-*> \verbatim
-*>          INFO is INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
-*> \endverbatim
 *
 *  Authors:
 *  ========
 *
 *  =====================================================================
       SUBROUTINE ZLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-     $                      H, LDH, WORK, INFO )
+     $                      H, LDH, WORK )
 *
 *  -- LAPACK computational routine (version 3.7.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *
 *     .. Scalar Arguments ..
       CHARACTER    UPLO
-      INTEGER      M, NB, J1, LDA, LDH, INFO
+      INTEGER      M, NB, J1, LDA, LDH
 *     ..
 *     .. Array Arguments ..
       INTEGER      IPIV( * )
 *     ..
 *     .. Executable Statements ..
 *
-      INFO = 0
       J = 1
 *
 *     K1 is the first column of the panel to be factorized
 *           Set A(J, J+1) = T(J, J+1)
 *
             A( K, J+1 ) = WORK( 2 )
-            IF( (A( K, J ).EQ.ZERO ) .AND. (A( K, J+1 ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( K-1, J ).EQ.ZERO)) ) THEN
-                IF(INFO .EQ. 0) THEN
-                    INFO = J
-                END IF
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL ZLASET( 'Full', 1, M-J-1, ZERO, ZERO,
      $                      A( K, J+2 ), LDA)
             END IF
-         ELSE
-            IF( (A( K, J ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J-1, J ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 10
 *           Set A(J+1, J) = T(J+1, J)
 *
             A( J+1, K ) = WORK( 2 )
-            IF( (A( J, K ).EQ.ZERO) .AND. (A( J+1, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-                IF (INFO .EQ. 0)
-     $              INFO = J
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL ZLASET( 'Full', M-J-1, 1, ZERO, ZERO,
      $                      A( J+2, K ), LDA )
             END IF
-         ELSE
-            IF( (A( J, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 30
index 8e28d4f..c2ed36c 100644 (file)
 *  ===========
 *
 *       SUBROUTINE ZLASYF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-*                             H, LDH, WORK, INFO )
+*                             H, LDH, WORK )
 *
 *       .. Scalar Arguments ..
 *       CHARACTER          UPLO
-*       INTEGER            J1, M, NB, LDA, LDH, INFO
+*       INTEGER            J1, M, NB, LDA, LDH
 *       ..
 *       .. Array Arguments ..
 *       INTEGER            IPIV( * )
 *>          WORK is COMPLEX*16 workspace, dimension (M).
 *> \endverbatim
 *>
-*> \param[out] INFO
-*> \verbatim
-*>          INFO is INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>          > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization
-*>                has been completed, but the block diagonal matrix D is
-*>                exactly singular, and division by zero will occur if it
-*>                is used to solve a system of equations.
-*> \endverbatim
 *
 *  Authors:
 *  ========
 *
 *  =====================================================================
       SUBROUTINE ZLASYF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
-     $                         H, LDH, WORK, INFO )
+     $                         H, LDH, WORK )
 *
 *  -- LAPACK computational routine (version 3.7.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *
 *     .. Scalar Arguments ..
       CHARACTER          UPLO
-      INTEGER            M, NB, J1, LDA, LDH, INFO
+      INTEGER            M, NB, J1, LDA, LDH
 *     ..
 *     .. Array Arguments ..
       INTEGER            IPIV( * )
 *     ..
 *     .. Executable Statements ..
 *
-      INFO = 0
       J = 1
 *
 *     K1 is the first column of the panel to be factorized
 *           Set A(J, J+1) = T(J, J+1)
 *
             A( K, J+1 ) = WORK( 2 )
-            IF( (A( K, J ).EQ.ZERO ) .AND. (A( K, J+1 ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( K-1, J ).EQ.ZERO)) ) THEN
-                IF(INFO .EQ. 0) THEN
-                    INFO = J
-                ENDIF
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL ZLASET( 'Full', 1, M-J-1, ZERO, ZERO,
      $                      A( K, J+2 ), LDA)
             END IF
-         ELSE
-            IF( (A( K, J ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J-1, J ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 10
 *           Set A(J+1, J) = T(J+1, J)
 *
             A( J+1, K ) = WORK( 2 )
-            IF( (A( J, K ).EQ.ZERO) .AND. (A( J+1, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-                IF (INFO .EQ. 0)
-     $              INFO = J
-            END IF
 *
             IF( J.LT.NB ) THEN
 *
                CALL ZLASET( 'Full', M-J-1, 1, ZERO, ZERO,
      $                      A( J+2, K ), LDA )
             END IF
-         ELSE
-            IF( (A( J, K ).EQ.ZERO) .AND.
-     $          ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
-               IF (INFO.EQ.0) THEN
-                  INFO = J
-               END IF
-            END IF
          END IF
          J = J + 1
          GO TO 30
index 02f8cdd..bb832fc 100644 (file)
 *
 *     .. Local Scalars ..
       LOGICAL            LQUERY, UPPER
-      INTEGER            J, LWKOPT, IINFO
+      INTEGER            J, LWKOPT
       INTEGER            NB, MJ, NJ, K1, K2, J1, J2, J3, JB
       COMPLEX*16         ALPHA
 *     ..
       ENDIF
       IPIV( 1 ) = 1
       IF ( N.EQ.1 ) THEN
-         IF ( A( 1, 1 ).EQ.ZERO ) THEN
-            INFO = 1
-         END IF
          RETURN
       END IF
 *
 *
          CALL ZLASYF_AA( UPLO, 2-K1, N-J, JB,
      $                   A( MAX(1, J), J+1 ), LDA,
-     $                   IPIV( J+1 ), WORK, N, WORK( N*NB+1 ),
-     $                      IINFO )
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-             INFO = IINFO+J
-         ENDIF
+     $                   IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *
 *
          CALL ZLASYF_AA( UPLO, 2-K1, N-J, JB,
      $                   A( J+1, MAX(1, J) ), LDA,
-     $                   IPIV( J+1 ), WORK, N, WORK( N*NB+1 ), IINFO)
-         IF( (IINFO.GT.0) .AND. (INFO.EQ.0) ) THEN
-            INFO = IINFO+J
-         ENDIF
+     $                   IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
 *
 *        Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot)
 *