From 7a34efe5266d10a472dd06fd4cea0c74fe411700 Mon Sep 17 00:00:00 2001 From: deaglanhalligan Date: Tue, 10 Feb 2009 03:14:40 +0000 Subject: [PATCH] Fixed WORK/RWORK bug in complex iterative refinement routines. --- SRC/cgbrfsx.f | 10 +++++----- SRC/cgerfsx.f | 10 +++++----- SRC/cherfsx.f | 2 +- SRC/chesvxx.f | 4 ++-- SRC/cporfsx.f | 2 +- SRC/cposvxx.f | 4 ++-- SRC/csyrfsx.f | 2 +- SRC/csysvxx.f | 4 ++-- SRC/zgbrfsx.f | 10 +++++----- SRC/zgerfsx.f | 10 +++++----- SRC/zherfsx.f | 2 +- SRC/zhesvxx.f | 4 ++-- SRC/zporfsx.f | 2 +- SRC/zposvxx.f | 4 ++-- SRC/zsyrfsx.f | 2 +- SRC/zsysvxx.f | 4 ++-- 16 files changed, 38 insertions(+), 38 deletions(-) diff --git a/SRC/cgbrfsx.f b/SRC/cgbrfsx.f index e357b8c..6b07ddb 100644 --- a/SRC/cgbrfsx.f +++ b/SRC/cgbrfsx.f @@ -496,7 +496,7 @@ 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 ) * @@ -510,15 +510,15 @@ 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 diff --git a/SRC/cgerfsx.f b/SRC/cgerfsx.f index 4979a90..eb11121 100644 --- a/SRC/cgerfsx.f +++ b/SRC/cgerfsx.f @@ -482,7 +482,7 @@ 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 @@ -495,15 +495,15 @@ 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 diff --git a/SRC/cherfsx.f b/SRC/cherfsx.f index 30b69c6..3db6eb7 100644 --- a/SRC/cherfsx.f +++ b/SRC/cherfsx.f @@ -458,7 +458,7 @@ * 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 ) * diff --git a/SRC/chesvxx.f b/SRC/chesvxx.f index 5183d7b..8c5c371 100644 --- a/SRC/chesvxx.f +++ b/SRC/chesvxx.f @@ -525,7 +525,7 @@ * IF( N.GT.0 ) $ RPVGRW = CLA_HERPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF, - $ IPIV, WORK ) + $ IPIV, RWORK ) RETURN END IF END IF @@ -534,7 +534,7 @@ * IF( N.GT.0 ) $ RPVGRW = CLA_HERPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF, IPIV, - $ WORK ) + $ RWORK ) * * Compute the solution matrix X. * diff --git a/SRC/cporfsx.f b/SRC/cporfsx.f index 35f40b0..6d9c5d8 100644 --- a/SRC/cporfsx.f +++ b/SRC/cporfsx.f @@ -452,7 +452,7 @@ * 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 ) * diff --git a/SRC/cposvxx.f b/SRC/cposvxx.f index 1ad3690..6e5c5c8 100644 --- a/SRC/cposvxx.f +++ b/SRC/cposvxx.f @@ -517,14 +517,14 @@ * 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. * diff --git a/SRC/csyrfsx.f b/SRC/csyrfsx.f index 254e955..b19bf70 100644 --- a/SRC/csyrfsx.f +++ b/SRC/csyrfsx.f @@ -459,7 +459,7 @@ * 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 ) * diff --git a/SRC/csysvxx.f b/SRC/csysvxx.f index 3f4fe8a..50a33c8 100644 --- a/SRC/csysvxx.f +++ b/SRC/csysvxx.f @@ -526,7 +526,7 @@ * IF ( N.GT.0 ) $ RPVGRW = CLA_SYRPVGRW( UPLO, N, INFO, A, LDA, AF, - $ LDAF, IPIV, WORK ) + $ LDAF, IPIV, RWORK ) RETURN END IF END IF @@ -535,7 +535,7 @@ * IF ( N.GT.0 ) $ RPVGRW = CLA_SYRPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF, - $ IPIV, WORK ) + $ IPIV, RWORK ) * * Compute the solution matrix X. * diff --git a/SRC/zgbrfsx.f b/SRC/zgbrfsx.f index 3251138..cba1fe7 100644 --- a/SRC/zgbrfsx.f +++ b/SRC/zgbrfsx.f @@ -496,7 +496,7 @@ 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 ) * @@ -510,15 +510,15 @@ 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 diff --git a/SRC/zgerfsx.f b/SRC/zgerfsx.f index f5e1de4..7f3dd5e 100644 --- a/SRC/zgerfsx.f +++ b/SRC/zgerfsx.f @@ -482,7 +482,7 @@ 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 @@ -495,15 +495,15 @@ 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 diff --git a/SRC/zherfsx.f b/SRC/zherfsx.f index f9df11d..f73e03b 100644 --- a/SRC/zherfsx.f +++ b/SRC/zherfsx.f @@ -458,7 +458,7 @@ * 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 ) * diff --git a/SRC/zhesvxx.f b/SRC/zhesvxx.f index 6384faa..d43df52 100644 --- a/SRC/zhesvxx.f +++ b/SRC/zhesvxx.f @@ -522,7 +522,7 @@ * IF( N.GT.0 ) $ RPVGRW = ZLA_HERPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF, - $ IPIV, WORK ) + $ IPIV, RWORK ) RETURN END IF END IF @@ -531,7 +531,7 @@ * IF( N.GT.0 ) $ RPVGRW = ZLA_HERPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF, IPIV, - $ WORK ) + $ RWORK ) * * Compute the solution matrix X. * diff --git a/SRC/zporfsx.f b/SRC/zporfsx.f index 2d59878..44334c6 100644 --- a/SRC/zporfsx.f +++ b/SRC/zporfsx.f @@ -452,7 +452,7 @@ * 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 ) * diff --git a/SRC/zposvxx.f b/SRC/zposvxx.f index e83474c..e62ad3e 100644 --- a/SRC/zposvxx.f +++ b/SRC/zposvxx.f @@ -514,14 +514,14 @@ * 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. * diff --git a/SRC/zsyrfsx.f b/SRC/zsyrfsx.f index f4066be..2d204ab 100644 --- a/SRC/zsyrfsx.f +++ b/SRC/zsyrfsx.f @@ -459,7 +459,7 @@ * 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 ) * diff --git a/SRC/zsysvxx.f b/SRC/zsysvxx.f index cbdec3b..3ca260b 100644 --- a/SRC/zsysvxx.f +++ b/SRC/zsysvxx.f @@ -523,7 +523,7 @@ * IF ( N.GT.0 ) $ RPVGRW = ZLA_SYRPVGRW( UPLO, N, INFO, A, LDA, AF, - $ LDAF, IPIV, WORK ) + $ LDAF, IPIV, RWORK ) RETURN END IF END IF @@ -532,7 +532,7 @@ * IF ( N.GT.0 ) $ RPVGRW = ZLA_SYRPVGRW( UPLO, N, INFO, A, LDA, AF, LDAF, - $ IPIV, WORK ) + $ IPIV, RWORK ) * * Compute the solution matrix X. * -- 2.7.4