Fixed WORK/RWORK bug in complex iterative refinement routines.
authordeaglanhalligan <deaglanhalligan@8a072113-8704-0410-8d35-dd094bca7971>
Tue, 10 Feb 2009 03:14:40 +0000 (03:14 +0000)
committerdeaglanhalligan <deaglanhalligan@8a072113-8704-0410-8d35-dd094bca7971>
Tue, 10 Feb 2009 03:14:40 +0000 (03:14 +0000)
16 files changed:
SRC/cgbrfsx.f
SRC/cgerfsx.f
SRC/cherfsx.f
SRC/chesvxx.f
SRC/cporfsx.f
SRC/cposvxx.f
SRC/csyrfsx.f
SRC/csysvxx.f
SRC/zgbrfsx.f
SRC/zgerfsx.f
SRC/zherfsx.f
SRC/zhesvxx.f
SRC/zporfsx.f
SRC/zposvxx.f
SRC/zsyrfsx.f
SRC/zsysvxx.f

index e357b8c..6b07ddb 100644 (file)
       ELSE
          NORM = '1'
       END IF
-      ANORM = CLANGB( NORM, N, KL, KU, AB, LDAB, WORK )
+      ANORM = CLANGB( NORM, N, KL, KU, AB, LDAB, RWORK )
       CALL CGBCON( NORM, N, KL, KU, AFB, LDAFB, IPIV, ANORM, RCOND,
      $     WORK, RWORK, INFO )
 *
             CALL CLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N, KL, KU,
      $           NRHS, AB, LDAB, AFB, LDAFB, IPIV, COLEQU, C, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(1), RWORK, RCOND,
-     $           ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
+     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          ELSE
             CALL CLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N, KL, KU,
      $           NRHS, AB, LDAB, AFB, LDAFB, IPIV, ROWEQU, R, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(1), RWORK, RCOND,
-     $           ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
+     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          END IF
       END IF
index 4979a90..eb11121 100644 (file)
       ELSE
          NORM = '1'
       END IF
-      ANORM = CLANGE( NORM, N, N, A, LDA, WORK )
+      ANORM = CLANGE( NORM, N, N, A, LDA, RWORK )
       CALL CGECON( NORM, N, AF, LDAF, ANORM, RCOND, WORK, RWORK, INFO )
 *
 *     Perform refinement on each right-hand side
             CALL CLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N,
      $           NRHS, A, LDA, AF, LDAF, IPIV, COLEQU, C, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(1), RWORK, RCOND,
-     $           ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
+     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          ELSE
             CALL CLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N,
      $           NRHS, A, LDA, AF, LDAF, IPIV, ROWEQU, R, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(1), RWORK, RCOND,
-     $           ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
+     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          END IF
       END IF
index 30b69c6..3db6eb7 100644 (file)
 *     number of A.
 *
       NORM = 'I'
-      ANORM = CLANHE( NORM, UPLO, N, A, LDA, WORK )
+      ANORM = CLANHE( NORM, UPLO, N, A, LDA, RWORK )
       CALL CHECON( UPLO, N, AF, LDAF, IPIV, ANORM, RCOND, WORK,
      $     INFO )
 *
index 5183d7b..8c5c371 100644 (file)
 *
             IF( N.GT.0 )
      $           RPVGRW = CLA_HERPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF,
-     $           IPIV, WORK )
+     $           IPIV, RWORK )
             RETURN
          END IF
       END IF
 *
       IF( N.GT.0 )
      $     RPVGRW = CLA_HERPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF, IPIV,
-     $     WORK )
+     $     RWORK )
 *
 *     Compute the solution matrix X.
 *
index 35f40b0..6d9c5d8 100644 (file)
 *     number of A.
 *
       NORM = 'I'
-      ANORM = CLANHE( NORM, UPLO, N, A, LDA, WORK )
+      ANORM = CLANHE( NORM, UPLO, N, A, LDA, RWORK )
       CALL CPOCON( UPLO, N, AF, LDAF, ANORM, RCOND, WORK, RWORK,
      $     INFO )
 *
index 1ad3690..6e5c5c8 100644 (file)
 *           Compute the reciprocal pivot growth factor of the
 *           leading rank-deficient INFO columns of A.
 *
-            RPVGRW = CLA_PORPVGRW( UPLO, N, A, LDA, AF, LDAF, WORK )
+            RPVGRW = CLA_PORPVGRW( UPLO, N, A, LDA, AF, LDAF, RWORK )
             RETURN
          END IF
       END IF
 *
 *     Compute the reciprocal pivot growth factor RPVGRW.
 *
-      RPVGRW = CLA_PORPVGRW( UPLO, N, A, LDA, AF, LDAF, WORK )
+      RPVGRW = CLA_PORPVGRW( UPLO, N, A, LDA, AF, LDAF, RWORK )
 *
 *     Compute the solution matrix X.
 *
index 254e955..b19bf70 100644 (file)
 *     number of A.
 *
       NORM = 'I'
-      ANORM = CLANSY( NORM, UPLO, N, A, LDA, WORK )
+      ANORM = CLANSY( NORM, UPLO, N, A, LDA, RWORK )
       CALL CSYCON( UPLO, N, AF, LDAF, IPIV, ANORM, RCOND, WORK,
      $     INFO )
 *
index 3f4fe8a..50a33c8 100644 (file)
 *
             IF ( N.GT.0 )
      $           RPVGRW = CLA_SYRPVGRW( UPLO, N, INFO, A, LDA, AF,
-     $           LDAF, IPIV, WORK )
+     $           LDAF, IPIV, RWORK )
             RETURN
          END IF
       END IF
 *
       IF ( N.GT.0 )
      $     RPVGRW = CLA_SYRPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF,
-     $     IPIV, WORK )
+     $     IPIV, RWORK )
 *
 *     Compute the solution matrix X.
 *
index 3251138..cba1fe7 100644 (file)
       ELSE
          NORM = '1'
       END IF
-      ANORM = ZLANGB( NORM, N, KL, KU, AB, LDAB, WORK )
+      ANORM = ZLANGB( NORM, N, KL, KU, AB, LDAB, RWORK )
       CALL ZGBCON( NORM, N, KL, KU, AFB, LDAFB, IPIV, ANORM, RCOND,
      $     WORK, RWORK, INFO )
 *
             CALL ZLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N, KL, KU,
      $           NRHS, AB, LDAB, AFB, LDAFB, IPIV, COLEQU, C, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(1), RWORK, RCOND,
-     $           ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
+     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          ELSE
             CALL ZLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N, KL, KU,
      $           NRHS, AB, LDAB, AFB, LDAFB, IPIV, ROWEQU, R, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(1), RWORK, RCOND,
-     $           ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
+     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          END IF
       END IF
index f5e1de4..7f3dd5e 100644 (file)
       ELSE
          NORM = '1'
       END IF
-      ANORM = ZLANGE( NORM, N, N, A, LDA, WORK )
+      ANORM = ZLANGE( NORM, N, N, A, LDA, RWORK )
       CALL ZGECON( NORM, N, AF, LDAF, ANORM, RCOND, WORK, RWORK, INFO )
 *
 *     Perform refinement on each right-hand side
             CALL ZLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N,
      $           NRHS, A, LDA, AF, LDAF, IPIV, COLEQU, C, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(1), RWORK, RCOND,
-     $           ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
+     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          ELSE
             CALL ZLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N,
      $           NRHS, A, LDA, AF, LDAF, IPIV, ROWEQU, R, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(1), RWORK, RCOND,
-     $           ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
+     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          END IF
       END IF
index f9df11d..f73e03b 100644 (file)
 *     number of A.
 *
       NORM = 'I'
-      ANORM = ZLANHE( NORM, UPLO, N, A, LDA, WORK )
+      ANORM = ZLANHE( NORM, UPLO, N, A, LDA, RWORK )
       CALL ZHECON( UPLO, N, AF, LDAF, IPIV, ANORM, RCOND, WORK,
      $     INFO )
 *
index 6384faa..d43df52 100644 (file)
 *
             IF( N.GT.0 )
      $           RPVGRW = ZLA_HERPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF,
-     $           IPIV, WORK )
+     $           IPIV, RWORK )
             RETURN
          END IF
       END IF
 *
       IF( N.GT.0 )
      $     RPVGRW = ZLA_HERPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF, IPIV,
-     $     WORK )
+     $     RWORK )
 *
 *     Compute the solution matrix X.
 *
index 2d59878..44334c6 100644 (file)
 *     number of A.
 *
       NORM = 'I'
-      ANORM = ZLANHE( NORM, UPLO, N, A, LDA, WORK )
+      ANORM = ZLANHE( NORM, UPLO, N, A, LDA, RWORK )
       CALL ZPOCON( UPLO, N, AF, LDAF, ANORM, RCOND, WORK, RWORK,
      $     INFO )
 *
index e83474c..e62ad3e 100644 (file)
 *           Compute the reciprocal pivot growth factor of the
 *           leading rank-deficient INFO columns of A.
 *
-            RPVGRW = ZLA_PORPVGRW( UPLO, N, A, LDA, AF, LDAF, WORK )
+            RPVGRW = ZLA_PORPVGRW( UPLO, N, A, LDA, AF, LDAF, RWORK )
             RETURN
          END IF
       END IF
 *
 *     Compute the reciprocal pivot growth factor RPVGRW.
 *
-      RPVGRW = ZLA_PORPVGRW( UPLO, N, A, LDA, AF, LDAF, WORK )
+      RPVGRW = ZLA_PORPVGRW( UPLO, N, A, LDA, AF, LDAF, RWORK )
 *
 *     Compute the solution matrix X.
 *
index f4066be..2d204ab 100644 (file)
 *     number of A.
 *
       NORM = 'I'
-      ANORM = ZLANSY( NORM, UPLO, N, A, LDA, WORK )
+      ANORM = ZLANSY( NORM, UPLO, N, A, LDA, RWORK )
       CALL ZSYCON( UPLO, N, AF, LDAF, IPIV, ANORM, RCOND, WORK,
      $     INFO )
 *
index cbdec3b..3ca260b 100644 (file)
 *
             IF ( N.GT.0 )
      $           RPVGRW = ZLA_SYRPVGRW( UPLO, N, INFO, A, LDA, AF,
-     $           LDAF, IPIV, WORK )
+     $           LDAF, IPIV, RWORK )
             RETURN
          END IF
       END IF
 *
       IF ( N.GT.0 )
      $     RPVGRW = ZLA_SYRPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF,
-     $     IPIV, WORK )
+     $     IPIV, RWORK )
 *
 *     Compute the solution matrix X.
 *