Merge pull request #25 from xianyi/develop

rebase
This commit is contained in:
Martin Kroeker 2021-04-30 13:47:17 +02:00 committed by GitHub
commit 3a30c12019
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 159 additions and 94 deletions

View File

@ -167,7 +167,6 @@ ifeq ($(NO_SHARED), 1)
$(error OpenBLAS: neither static nor shared are enabled.)
endif
endif
@-ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
@for d in $(SUBDIRS) ; \
do if test -d $$d; then \
$(MAKE) -C $$d $(@F) || exit 1 ; \
@ -196,6 +195,7 @@ endif
ifdef USE_THREAD
@echo USE_THREAD=$(USE_THREAD) >> Makefile.conf_last
endif
@-ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
@touch lib.grd
prof : prof_blas prof_lapack

View File

@ -4,7 +4,15 @@ trigger:
branches:
include:
- develop
resources:
containers:
- container: oneapi-hpckit
image: intel/oneapi-hpckit:latest
options: '-v /usr/bin/sudo:/usr/bin/sudo -v /usr/lib/sudo/libsudo_util.so.0:/usr/lib/sudo/libsudo_util.so.0 -v /usr/lib/sudo/sudoers.so:/usr/lib/sudo/sudoers.so'
- container: oneapi-basekit
image: intel/oneapi-basekit:latest
options: '-v /usr/bin/sudo:/usr/bin/sudo -v /usr/lib/sudo/libsudo_util.so.0:/usr/lib/sudo/libsudo_util.so.0 -v /usr/lib/sudo/sudoers.so:/usr/lib/sudo/sudoers.so'
jobs:
# manylinux1 is useful to test because the
# standard Docker container uses an old version
@ -94,7 +102,38 @@ jobs:
- script: |
brew update
brew install llvm libomp
brew tap LouisBrunner/valgrind
brew install --HEAD LouisBrunner/valgrind/valgrind
make TARGET=SANDYBRIDGE NO_AVX512=1 USE_OPENMP=1 INTERFACE64=1 DYNAMIC_ARCH=1 DYNAMIC_LIST=SANDYBRIDGE DEBUG=1 NO_PARALLEL_MAKE=1 CC=/usr/local/opt/llvm/bin/clang FC=gfortran-10
cd ctest; OMP_NUM_THREADS=1 valgrind ./xscblat2 <sin2
make TARGET=CORE2 USE_OPENMP=1 INTERFACE64=1 DYNAMIC_ARCH=1 CC=/usr/local/opt/llvm/bin/clang FC=gfortran-10
- job: OSX_Ifort_Clang
pool:
vmImage: 'macOS-10.15'
variables:
LD_LIBRARY_PATH: /usr/local/opt/llvm/lib
MACOS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17643/m_HPCKit_p_2021.2.0.2903_offline.dmg
LIBRARY_PATH: /usr/local/opt/llvm/lib
MACOS_FORTRAN_COMPONENTS: intel.oneapi.mac.ifort-compiler
steps:
- script: |
brew update
brew install llvm libomp
sudo mkdir -p /opt/intel
sudo chown $USER /opt/intel
displayName: prepare for cache restore
- task: Cache@2
inputs:
path: /opt/intel/oneapi
key: '"install" | "$(MACOS_HPCKIT_URL)" | "$(MACOS_FORTRAN_COMPONENTS)"'
cacheHitVar: CACHE_RESTORED
- script: |
curl --output webimage.dmg --url $(MACOS_HPCKIT_URL) --retry 5 --retry-delay 5
hdiutil attach webimage.dmg
sudo /Volumes/"$(basename "$(MACOS_HPCKIT_URL)" .dmg)"/bootstrapper.app/Contents/MacOS/bootstrapper -s --action install --components="$(MACOS_FORTRAN_COMPONENTS)" --eula=accept --continue-with-optional-error=yes --log-dir=.
installer_exit_code=$?
hdiutil detach /Volumes/"$(basename "$URL" .dmg)" -quiet
exit $installer_exit_code
displayName: install
condition: ne(variables.CACHE_RESTORED, 'true')
- script: |
source /opt/intel/oneapi/setvars.sh
make CC=/usr/local/opt/llvm/bin/clang FC=ifort

View File

@ -139,9 +139,13 @@ endif
ifneq (,$(filter 1 2,$(NOFORTRAN)))
#only build without Fortran
$(CC) $(CFLAGS) $(LDFLAGS) -all_load -headerpad_max_install_names -install_name "$(CURDIR)/../$(INTERNALNAME)" -dynamiclib -o ../$(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def $(FEXTRALIB)
else
ifeq ($(F_COMPILER), INTEL)
$(FC) $(FFLAGS) $(LDFLAGS) -all-load -headerpad_max_install_names -install_name "$(CURDIR)/../$(INTERNALNAME)" -dynamiclib -o ../$(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def
else
$(FC) $(FFLAGS) $(LDFLAGS) -all_load -headerpad_max_install_names -install_name "$(CURDIR)/../$(INTERNALNAME)" -dynamiclib -o ../$(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def $(FEXTRALIB)
endif
endif
dllinit.$(SUFFIX) : dllinit.c
$(CC) $(CFLAGS) -c -o $(@F) -s $<

View File

@ -391,10 +391,6 @@ if ($link ne "") {
}
if ($vendor eq "INTEL"){
$linker_a .= "-lgfortran"
}
if ($vendor eq "FLANG"){
$linker_a .= "-lflang"
}

View File

@ -79,8 +79,12 @@ void NAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){
aa_i = fabs(da_r);
}
scale = (aa_i / aa_r);
ada = aa_r * sqrt(ONE + scale * scale);
if (aa_r == ZERO) {
ada = 0.;
} else {
scale = (aa_i / aa_r);
ada = aa_r * sqrt(ONE + scale * scale);
}
bb_r = fabs(db_r);
bb_i = fabs(db_i);
@ -90,9 +94,12 @@ void NAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){
bb_i = fabs(bb_r);
}
scale = (bb_i / bb_r);
adb = bb_r * sqrt(ONE + scale * scale);
if (bb_r == ZERO) {
adb = 0.;
} else {
scale = (bb_i / bb_r);
adb = bb_r * sqrt(ONE + scale * scale);
}
scale = ada + adb;
aa_r = da_r / scale;

View File

@ -1,6 +1,4 @@
/* need a new enough GCC for avx512 support */
#if (( defined(__GNUC__) && __GNUC__ > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9))
#if defined(HAVE_FMA3) && defined(HAVE_AVX2)
#define HAVE_DROT_KERNEL 1
#include <immintrin.h>

View File

@ -566,8 +566,8 @@ void LAPACK_cgbrfsx(
lapack_int const* n, lapack_int const* kl, lapack_int const* ku, lapack_int const* nrhs,
lapack_complex_float const* AB, lapack_int const* ldab,
lapack_complex_float const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
float* R,
float* C,
const float* R,
const float* C,
lapack_complex_float const* B, lapack_int const* ldb,
lapack_complex_float* X, lapack_int const* ldx,
float* rcond,
@ -585,8 +585,8 @@ void LAPACK_dgbrfsx(
lapack_int const* n, lapack_int const* kl, lapack_int const* ku, lapack_int const* nrhs,
double const* AB, lapack_int const* ldab,
double const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
double* R,
double* C,
const double* R,
const double* C,
double const* B, lapack_int const* ldb,
double* X, lapack_int const* ldx,
double* rcond,
@ -604,8 +604,8 @@ void LAPACK_sgbrfsx(
lapack_int const* n, lapack_int const* kl, lapack_int const* ku, lapack_int const* nrhs,
float const* AB, lapack_int const* ldab,
float const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
float* R,
float* C,
const float* R,
const float* C,
float const* B, lapack_int const* ldb,
float* X, lapack_int const* ldx,
float* rcond,
@ -623,8 +623,8 @@ void LAPACK_zgbrfsx(
lapack_int const* n, lapack_int const* kl, lapack_int const* ku, lapack_int const* nrhs,
lapack_complex_double const* AB, lapack_int const* ldab,
lapack_complex_double const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
double* R,
double* C,
const double* R,
const double* C,
lapack_complex_double const* B, lapack_int const* ldb,
lapack_complex_double* X, lapack_int const* ldx,
double* rcond,
@ -4913,7 +4913,7 @@ void LAPACK_cherfsx(
lapack_int const* n, lapack_int const* nrhs,
lapack_complex_float const* A, lapack_int const* lda,
lapack_complex_float const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
float* S,
const float* S,
lapack_complex_float const* B, lapack_int const* ldb,
lapack_complex_float* X, lapack_int const* ldx,
float* rcond,
@ -4931,7 +4931,7 @@ void LAPACK_zherfsx(
lapack_int const* n, lapack_int const* nrhs,
lapack_complex_double const* A, lapack_int const* lda,
lapack_complex_double const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
double* S,
const double* S,
lapack_complex_double const* B, lapack_int const* ldb,
lapack_complex_double* X, lapack_int const* ldx,
double* rcond,
@ -8005,7 +8005,7 @@ void LAPACK_cporfsx(
lapack_int const* n, lapack_int const* nrhs,
lapack_complex_float const* A, lapack_int const* lda,
lapack_complex_float const* AF, lapack_int const* ldaf,
float* S,
const float* S,
lapack_complex_float const* B, lapack_int const* ldb,
lapack_complex_float* X, lapack_int const* ldx,
float* rcond,
@ -8023,7 +8023,7 @@ void LAPACK_dporfsx(
lapack_int const* n, lapack_int const* nrhs,
double const* A, lapack_int const* lda,
double const* AF, lapack_int const* ldaf,
double* S,
const double* S,
double const* B, lapack_int const* ldb,
double* X, lapack_int const* ldx,
double* rcond,
@ -8041,7 +8041,7 @@ void LAPACK_sporfsx(
lapack_int const* n, lapack_int const* nrhs,
float const* A, lapack_int const* lda,
float const* AF, lapack_int const* ldaf,
float* S,
const float* S,
float const* B, lapack_int const* ldb,
float* X, lapack_int const* ldx,
float* rcond,
@ -8059,7 +8059,7 @@ void LAPACK_zporfsx(
lapack_int const* n, lapack_int const* nrhs,
lapack_complex_double const* A, lapack_int const* lda,
lapack_complex_double const* AF, lapack_int const* ldaf,
double* S,
const double* S,
lapack_complex_double const* B, lapack_int const* ldb,
lapack_complex_double* X, lapack_int const* ldx,
double* rcond,
@ -10756,7 +10756,7 @@ void LAPACK_csyrfsx(
lapack_int const* n, lapack_int const* nrhs,
lapack_complex_float const* A, lapack_int const* lda,
lapack_complex_float const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
float* S,
const float* S,
lapack_complex_float const* B, lapack_int const* ldb,
lapack_complex_float* X, lapack_int const* ldx,
float* rcond,
@ -10774,7 +10774,7 @@ void LAPACK_dsyrfsx(
lapack_int const* n, lapack_int const* nrhs,
double const* A, lapack_int const* lda,
double const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
double* S,
const double* S,
double const* B, lapack_int const* ldb,
double* X, lapack_int const* ldx,
double* rcond,
@ -10792,7 +10792,7 @@ void LAPACK_ssyrfsx(
lapack_int const* n, lapack_int const* nrhs,
float const* A, lapack_int const* lda,
float const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
float* S,
const float* S,
float const* B, lapack_int const* ldb,
float* X, lapack_int const* ldx,
float* rcond,
@ -10810,7 +10810,7 @@ void LAPACK_zsyrfsx(
lapack_int const* n, lapack_int const* nrhs,
lapack_complex_double const* A, lapack_int const* lda,
lapack_complex_double const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
double* S,
const double* S,
lapack_complex_double const* B, lapack_int const* ldb,
lapack_complex_double* X, lapack_int const* ldx,
double* rcond,

View File

@ -83,6 +83,7 @@ lapack_int LAPACKE_clascl( int matrix_layout, char type, lapack_int kl,
LAPACKE_cgb_nancheck( LAPACK_COL_MAJOR, n, m, n-1, 1, a-1, lda+1 ) ) {
return -9;
}
break;
case 'B':
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
if( LAPACKE_chb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {

View File

@ -83,6 +83,7 @@ lapack_int LAPACKE_dlascl( int matrix_layout, char type, lapack_int kl,
LAPACKE_dgb_nancheck( LAPACK_COL_MAJOR, n, m, n-1, 1, a-1, lda+1 ) ) {
return -9;
}
break;
case 'B':
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
if( LAPACKE_dsb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {

View File

@ -83,6 +83,7 @@ lapack_int LAPACKE_slascl( int matrix_layout, char type, lapack_int kl,
LAPACKE_sgb_nancheck( LAPACK_COL_MAJOR, n, m, n-1, 1, a-1, lda+1 ) ) {
return -9;
}
break;
case 'B':
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
if( LAPACKE_ssb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {

View File

@ -83,6 +83,7 @@ lapack_int LAPACKE_zlascl( int matrix_layout, char type, lapack_int kl,
LAPACKE_zgb_nancheck( LAPACK_COL_MAJOR, n, m, n-1, 1, a-1, lda+1 ) ) {
return -9;
}
break;
case 'B':
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
if( LAPACKE_zhb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {

View File

@ -222,8 +222,8 @@
CALL CUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
ELSE
IF( M.GT.1 ) THEN
CALL CUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
$ -1, IINFO )
CALL CUNGQR( M-1, M-1, M-1, A, LDA, TAU, WORK, -1,
$ IINFO )
END IF
END IF
ELSE
@ -231,8 +231,8 @@
CALL CUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
ELSE
IF( N.GT.1 ) THEN
CALL CUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
$ -1, IINFO )
CALL CUNGLQ( N-1, N-1, N-1, A, LDA, TAU, WORK, -1,
$ IINFO )
END IF
END IF
END IF

View File

@ -184,10 +184,18 @@
*
* 2-by-2 case.
*
IF( Z( 2 ).LT.ZERO .OR. Z( 3 ).LT.ZERO ) THEN
INFO = -2
IF( Z( 1 ).LT.ZERO ) THEN
INFO = -201
CALL XERBLA( 'DLASQ2', 2 )
RETURN
ELSE IF( Z( 2 ).LT.ZERO ) THEN
INFO = -202
CALL XERBLA( 'DLASQ2', 2 )
RETURN
ELSE IF( Z( 3 ).LT.ZERO ) THEN
INFO = -203
CALL XERBLA( 'DLASQ2', 2 )
RETURN
ELSE IF( Z( 3 ).GT.Z( 1 ) ) THEN
D = Z( 3 )
Z( 3 ) = Z( 1 )

View File

@ -221,8 +221,8 @@
CALL DORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
ELSE
IF( M.GT.1 ) THEN
CALL DORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
$ -1, IINFO )
CALL DORGQR( M-1, M-1, M-1, A, LDA, TAU, WORK, -1,
$ IINFO )
END IF
END IF
ELSE
@ -230,8 +230,8 @@
CALL DORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
ELSE
IF( N.GT.1 ) THEN
CALL DORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
$ -1, IINFO )
CALL DORGLQ( N-1, N-1, N-1, A, LDA, TAU, WORK, -1,
$ IINFO )
END IF
END IF
END IF

View File

@ -183,10 +183,18 @@
*
* 2-by-2 case.
*
IF( Z( 2 ).LT.ZERO .OR. Z( 3 ).LT.ZERO ) THEN
INFO = -2
IF( Z( 1 ).LT.ZERO ) THEN
INFO = -201
CALL XERBLA( 'DLASQ2', 2 )
RETURN
ELSE IF( Z( 2 ).LT.ZERO ) THEN
INFO = -202
CALL XERBLA( 'SLASQ2', 2 )
RETURN
ELSE IF( Z( 3 ).LT.ZERO ) THEN
INFO = -203
CALL XERBLA( 'SLASQ2', 2 )
RETURN
ELSE IF( Z( 3 ).GT.Z( 1 ) ) THEN
D = Z( 3 )
Z( 3 ) = Z( 1 )

View File

@ -221,8 +221,8 @@
CALL SORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
ELSE
IF( M.GT.1 ) THEN
CALL SORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
$ -1, IINFO )
CALL SORGQR( M-1, M-1, M-1, A, LDA, TAU, WORK, -1,
$ IINFO )
END IF
END IF
ELSE
@ -230,8 +230,8 @@
CALL SORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
ELSE
IF( N.GT.1 ) THEN
CALL SORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
$ -1, IINFO )
CALL SORGLQ( N-1, N-1, N-1, A, LDA, TAU, WORK, -1,
$ IINFO )
END IF
END IF
END IF

View File

@ -222,8 +222,8 @@
CALL ZUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
ELSE
IF( M.GT.1 ) THEN
CALL ZUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
$ -1, IINFO )
CALL ZUNGQR( M-1, M-1, M-1, A, LDA, TAU, WORK, -1,
$ IINFO )
END IF
END IF
ELSE
@ -231,8 +231,8 @@
CALL ZUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
ELSE
IF( N.GT.1 ) THEN
CALL ZUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
$ -1, IINFO )
CALL ZUNGLQ( N-1, N-1, N-1, A, LDA, TAU, WORK, -1,
$ IINFO )
END IF
END IF
END IF

View File

@ -1871,7 +1871,7 @@
CALL XLAENV( 9, 25 )
IF( TSTERR ) THEN
#if defined(_OPENMP)
N_THREADS = OMP_GET_NUM_THREADS()
N_THREADS = OMP_GET_MAX_THREADS()
CALL OMP_SET_NUM_THREADS(1)
#endif
CALL CERRST( 'CST', NOUT )
@ -2338,7 +2338,7 @@
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
IF( TSTERR ) THEN
#if defined(_OPENMP)
N_THREADS = OMP_GET_NUM_THREADS()
N_THREADS = OMP_GET_MAX_THREADS()
CALL OMP_SET_NUM_THREADS(1)
#endif
CALL CERRST( 'CHB', NOUT )

View File

@ -1876,7 +1876,7 @@
CALL XLAENV( 9, 25 )
IF( TSTERR ) THEN
#if defined(_OPENMP)
N_THREADS = OMP_GET_NUM_THREADS()
N_THREADS = OMP_GET_MAX_THREADS()
CALL OMP_SET_NUM_THREADS(1)
#endif
CALL DERRST( 'DST', NOUT )

View File

@ -1877,7 +1877,7 @@
CALL XLAENV( 9, 25 )
IF( TSTERR ) THEN
#if defined(_OPENMP)
N_THREADS = OMP_GET_NUM_THREADS()
N_THREADS = OMP_GET_MAX_THREADS()
CALL OMP_SET_NUM_THREADS(1)
#endif
CALL SERRST( 'SST', NOUT )

View File

@ -1871,7 +1871,7 @@
CALL XLAENV( 9, 25 )
IF( TSTERR ) THEN
#if defined(_OPENMP)
N_THREADS = OMP_GET_NUM_THREADS()
N_THREADS = OMP_GET_MAX_THREADS()
CALL OMP_SET_NUM_THREADS(1)
#endif
CALL ZERRST( 'ZST', NOUT )
@ -2336,7 +2336,7 @@
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
IF( TSTERR ) THEN
#if defined(_OPENMP)
N_THREADS = OMP_GET_NUM_THREADS()
N_THREADS = OMP_GET_MAX_THREADS()
CALL OMP_SET_NUM_THREADS(1)
#endif
CALL ZERRST( 'ZHB', NOUT )

View File

@ -707,9 +707,10 @@
CALL CLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
IF( .NOT.PREFAC )
$ CALL CLASET( 'Full', N, N, ZERO, ZERO, AFAC,
$ LDA )
CALL CLASET( 'Full', N, NRHS, ZERO, ZERO, X, LDA )
$ CALL CLASET( 'Full', N, N, CMPLX( ZERO ),
$ CMPLX( ZERO ), AFAC, LDA )
CALL CLASET( 'Full', N, NRHS, CMPLX( ZERO ),
$ CMPLX( ZERO ), X, LDA )
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
*
* Equilibrate the matrix if FACT = 'F' and

View File

@ -449,11 +449,11 @@
* Reconstruct matrix from factors and compute
* residual.
*
c CALL CHET01_AA( UPLO, N, A, LDA, AFAC, LDA,
c $ IWORK, AINV, LDA, RWORK,
c $ RESULT( 2 ) )
c NT = 2
NT = 1
c CALL CHET01_AA( UPLO, N, A, LDA, AFAC, LDA,
c $ IWORK, AINV, LDA, RWORK,
c $ RESULT( 2 ) )
c NT = 2
NT = 1
*
* Print information about the tests that did not pass
* the threshold.

View File

@ -449,19 +449,19 @@
* Form the inverse of A.
*
CALL CPOTRI( UPLO, N, A, LDA, INFO )
IF ( N .NE. 0 ) THEN
*
* Compute the 1-norm condition number of A.
* Compute the 1-norm condition number of A.
*
IF ( N .NE. 0 ) THEN
AINVNM = CLANHE( '1', UPLO, N, A, LDA,
+ S_WORK_CLANHE )
RCONDC = ( ONE / ANORM ) / AINVNM
*
* Restore the matrix A.
*
CALL CLACPY( UPLO, N, N, ASAV, LDA, A, LDA )
CALL CLACPY( UPLO, N, N, ASAV, LDA, A, LDA )
END IF
*
END IF
*

View File

@ -443,8 +443,7 @@
*
CALL DPOTRI( UPLO, N, A, LDA, INFO )
IF ( N .NE. 0 ) THEN
IF ( N .NE. 0 ) THEN
*
* Compute the 1-norm condition number of A.
*

View File

@ -443,7 +443,7 @@
*
CALL SPOTRI( UPLO, N, A, LDA, INFO )
IF ( N .NE. 0 ) THEN
IF ( N .NE. 0 ) THEN
*
* Compute the 1-norm condition number of A.
*

View File

@ -707,9 +707,10 @@
CALL ZLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
IF( .NOT.PREFAC )
$ CALL ZLASET( 'Full', N, N, ZERO, ZERO, AFAC,
$ LDA )
CALL ZLASET( 'Full', N, NRHS, ZERO, ZERO, X, LDA )
$ CALL ZLASET( 'Full', N, N, DCMPLX( ZERO ),
$ DCMPLX( ZERO ), AFAC, LDA )
CALL ZLASET( 'Full', N, NRHS, DCMPLX( ZERO ),
$ DCMPLX( ZERO ), X, LDA )
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
*
* Equilibrate the matrix if FACT = 'F' and

View File

@ -599,10 +599,10 @@
* Restore the matrices A and B.
*
IF( IFACT.EQ.2 )
$ CALL ZLASET( UPLO, N, N, CMPLX( ZERO ),
$ CMPLX( ZERO ), AFAC, LDA )
CALL ZLASET( 'Full', N, NRHS, CMPLX( ZERO ),
$ CMPLX( ZERO ), X, LDA )
$ CALL ZLASET( UPLO, N, N, DCMPLX( ZERO ),
$ DCMPLX( ZERO ), AFAC, LDA )
CALL ZLASET( 'Full', N, NRHS, DCMPLX( ZERO ),
$ DCMPLX( ZERO ), X, LDA )
*
* Solve the system and compute the condition number
* and error bounds using ZHESVXX.

View File

@ -611,10 +611,10 @@
CALL ZLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
IF( .NOT.PREFAC )
$ CALL ZLASET( UPLO, N, N, CMPLX( ZERO ),
$ CMPLX( ZERO ), AFAC, LDA )
CALL ZLASET( 'Full', N, NRHS, CMPLX( ZERO ),
$ CMPLX( ZERO ), X, LDA )
$ CALL ZLASET( UPLO, N, N, DCMPLX( ZERO ),
$ DCMPLX( ZERO ), AFAC, LDA )
CALL ZLASET( 'Full', N, NRHS, DCMPLX( ZERO ),
$ DCMPLX( ZERO ), X, LDA )
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
*
* Equilibrate the matrix if FACT='F' and

View File

@ -450,7 +450,7 @@
*
CALL ZPOTRI( UPLO, N, A, LDA, INFO )
IF ( N .NE. 0 ) THEN
IF ( N .NE. 0 ) THEN
*
* Compute the 1-norm condition number of A.
*

View File

@ -605,10 +605,10 @@
* Restore the matrices A and B.
*
IF( IFACT.EQ.2 )
$ CALL ZLASET( UPLO, N, N, CMPLX( ZERO ),
$ CMPLX( ZERO ), AFAC, LDA )
CALL ZLASET( 'Full', N, NRHS, CMPLX( ZERO ),
$ CMPLX( ZERO ), X, LDA )
$ CALL ZLASET( UPLO, N, N, DCMPLX( ZERO ),
$ DCMPLX( ZERO ), AFAC, LDA )
CALL ZLASET( 'Full', N, NRHS, DCMPLX( ZERO ),
$ DCMPLX( ZERO ), X, LDA )
*
* Solve the system and compute the condition number
* and error bounds using ZSYSVXX.

View File

@ -1166,7 +1166,7 @@
$ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
$ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
INFOT = 13
INFOT = 13
EQ = 'N'
CALL ZSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 1, X,
$ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,