* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) REAL array, dimension (4*N)
+* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, CGBCON, CLA_GBRFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
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(2*N+1), WORK(1),
+ $ ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
$ 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(2*N+1), WORK(1),
+ $ ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
$ RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) REAL array, dimension (4*N)
+* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) REAL array, dimension (4*N)
+* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, CGECON, CLA_GERFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
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(2*N+1), WORK(1),
+ $ ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
$ 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(2*N+1), WORK(1),
+ $ ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
$ RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) COMPLEX array, dimension (3*N)
+* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* RWORK (workspace) REAL array, dimension (3*N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) REAL array, dimension (4*N)
+* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, CHECON, CLA_HERFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
CALL CLA_HERFSX_EXTENDED( PREC_TYPE, UPLO, N,
$ NRHS, A, LDA, AF, LDAF, IPIV, RCEQU, S, B,
$ LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
- $ WORK(N+1), WORK(1), WORK(2*N+1), WORK(1), RCOND,
+ $ WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
$ ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
*
* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* RWORK (workspace) REAL array, dimension (3*N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
*
* WORK COMPLEX workspace of size 2*N.
*
-* RWORK REAL workspace of size 3*N.
+* RWORK REAL workspace of size N.
*
* =====================================================================
*
TMP = TMP + CABS1( AB( KD+I-J, J ) )
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( AB( KE-I+J, I ) )
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( NOTRANS ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
DO J = MAX( I-KL, 1 ), MIN( I+KU, N )
TMP = TMP + CABS1( AB( KD+I-J, J) * X( J ) )
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
DO J = MAX( I-KL, 1 ), MIN( I+KU, N )
TMP = TMP + CABS1( AB( KE-I+J, I ) * X( J ) )
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( NOTRANS ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
*
* WORK COMPLEX workspace of size 2*N.
*
-* RWORK REAL workspace of size 3*N.
+* RWORK REAL workspace of size N.
*
* =====================================================================
*
TMP = TMP + CABS1( A( I, J ) )
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( A( J, I ) )
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF (NOTRANS) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
DO J = 1, N
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
DO J = 1, N
TMP = TMP + CABS1( A( J, I ) * X( J ) )
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
IF( KASE.EQ.2 ) THEN
* Multiply by R.
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( NOTRANS ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
*
* WORK COMPLEX workspace of size 2*N.
*
-* RWORK REAL workspace of size 3*N.
+* RWORK REAL workspace of size N.
*
* =====================================================================
*
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
*
* SLA_PORCOND_C Computes the infinity norm condition number of
* op(A) * inv(diag(C)) where C is a REAL vector
-* WORK is a COMPLEX workspace of size 2*N, and
-* RWORK is a REAL workspace of size 3*N.
+*
+* WORK COMPLEX workspace of size 2*N, and
+*
+* RWORK REAL workspace of size 3*N.
*
* =====================================================================
*
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
*
* WORK COMPLEX workspace of size 2*N.
*
-* RWORK REAL workspace of size 3*N.
+* RWORK REAL workspace of size N.
*
* =====================================================================
*
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) REAL array, dimension (4*N)
+* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, CPOCON, CLA_PORFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
CALL CLA_PORFSX_EXTENDED( PREC_TYPE, UPLO, N,
$ NRHS, A, LDA, AF, LDAF, RCEQU, S, B,
$ LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
- $ WORK(N+1), WORK(1), WORK(2*N+1), WORK(1), RCOND,
+ $ WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
$ ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) REAL array, dimension (4*N)
+* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) REAL array, dimension (4*N)
+* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, CSYCON, CLA_SYRFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
CALL CLA_SYRFSX_EXTENDED( PREC_TYPE, UPLO, N,
$ NRHS, A, LDA, AF, LDAF, IPIV, RCEQU, S, B,
$ LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
- $ WORK(N+1), RWORK, WORK(2*N+1), WORK(1), RCOND,
+ $ WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
$ ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
*
* WORK (workspace) COMPLEX array, dimension (2*N)
*
-* RWORK (workspace) REAL array, dimension (3*N)
+* RWORK (workspace) REAL array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)
+* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, ZGBCON, ZLA_GBRFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
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(2*N+1), WORK(1),
+ $ ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
$ 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(2*N+1), WORK(1),
+ $ ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
$ RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)
+* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)
+* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, ZGECON, ZLA_GERFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
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(2*N+1), WORK(1),
+ $ ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
$ 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(2*N+1), WORK(1),
+ $ ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
$ RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) COMPLEX*16 array, dimension (3*N)
+* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* RWORK (workspace) DOUBLE PRECISION array, dimension (3*N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)
+* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, ZHECON, ZLA_HERFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
CALL ZLA_HERFSX_EXTENDED( PREC_TYPE, UPLO, N,
$ NRHS, A, LDA, AF, LDAF, IPIV, RCEQU, S, B,
$ LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
- $ WORK(N+1), WORK(1), WORK(2*N+1), WORK(1), RCOND,
+ $ WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
$ ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
*
* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* RWORK (workspace) DOUBLE PRECISION array, dimension (3*N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
*
* WORK COMPLEX*16 workspace of size 2*N.
*
-* RWORK DOUBLE PRECISION workspace of size 3*N.
+* RWORK DOUBLE PRECISION workspace of size N.
*
* =====================================================================
*
TMP = TMP + CABS1( AB( KD+I-J, J ) )
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( AB( KE-I+J, I ) )
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( NOTRANS ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
DO J = MAX( I-KL, 1 ), MIN( I+KU, N )
TMP = TMP + CABS1( AB( KD+I-J, J) * X( J ) )
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
DO J = MAX( I-KL, 1 ), MIN( I+KU, N )
TMP = TMP + CABS1( AB( KE-I+J, I ) * X( J ) )
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( NOTRANS ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
*
* WORK COMPLEX*16 workspace of size 2*N.
*
-* RWORK DOUBLE PRECISION workspace of size 3*N.
+* RWORK DOUBLE PRECISION workspace of size N.
*
* =====================================================================
*
TMP = TMP + CABS1( A( I, J ) )
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( A( J, I ) )
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF (NOTRANS) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
DO J = 1, N
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
DO J = 1, N
TMP = TMP + CABS1( A( J, I ) * X( J ) )
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
IF( KASE.EQ.2 ) THEN
* Multiply by R.
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( NOTRANS ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
*
* WORK COMPLEX*16 workspace of size 2*N.
*
-* RWORK DOUBLE PRECISION workspace of size 3*N.
+* RWORK DOUBLE PRECISION workspace of size N.
*
* =====================================================================
*
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
*
* WORK COMPLEX*16 workspace of size 2*N.
*
-* RWORK DOUBLE PRECISION workspace of size 3*N.
+* RWORK DOUBLE PRECISION workspace of size N.
*
* =====================================================================
*
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
*
* WORK COMPLEX*16 workspace of size 2*N.
*
-* RWORK DOUBLE PRECISION workspace of size 3*N.
+* RWORK DOUBLE PRECISION workspace of size N.
*
* =====================================================================
*
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
END IF
END DO
END IF
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
ELSE
TMP = TMP + CABS1( A( I, J ) * X( J ) )
END IF
END DO
- RWORK( 2*N+I ) = TMP
+ RWORK( I ) = TMP
ANORM = MAX( ANORM, TMP )
END DO
END IF
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
*
IF ( UP ) THEN
* Multiply by R.
*
DO I = 1, N
- WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+ WORK( I ) = WORK( I ) * RWORK( I )
END DO
END IF
GO TO 10
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)
+* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, ZPOCON, ZLA_PORFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
CALL ZLA_PORFSX_EXTENDED( PREC_TYPE, UPLO, N,
$ NRHS, A, LDA, AF, LDAF, RCEQU, S, B,
$ LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
- $ WORK(N+1), WORK(1), WORK(2*N+1), WORK(1), RCOND,
+ $ WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
$ ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)
+* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
* is true, 0.0 is false.
* Default: 1.0 (attempt componentwise convergence)
*
-* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)
+* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* IWORK (workspace) INTEGER array, dimension (N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is
EXTERNAL XERBLA, ZSYCON, ZLA_SYRFSX_EXTENDED
* ..
* .. Intrinsic Functions ..
- INTRINSIC MAX, SQRT
+ INTRINSIC MAX, SQRT, TRANSFER
* ..
* .. External Functions ..
EXTERNAL LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
CALL ZLA_SYRFSX_EXTENDED( PREC_TYPE, UPLO, N,
$ NRHS, A, LDA, AF, LDAF, IPIV, RCEQU, S, B,
$ LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
- $ WORK(N+1), RWORK, WORK(2*N+1), WORK(1), RCOND,
+ $ WORK, RWORK, WORK(N+1),
+ $ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
$ ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
$ INFO )
END IF
*
* WORK (workspace) COMPLEX*16 array, dimension (2*N)
*
-* RWORK (workspace) DOUBLE PRECISION array, dimension (3*N)
+* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
*
* INFO (output) INTEGER
* = 0: Successful exit. The solution to every right-hand side is