commit
3a30c12019
2
Makefile
2
Makefile
|
@ -167,7 +167,6 @@ ifeq ($(NO_SHARED), 1)
|
||||||
$(error OpenBLAS: neither static nor shared are enabled.)
|
$(error OpenBLAS: neither static nor shared are enabled.)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@-ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
|
||||||
@for d in $(SUBDIRS) ; \
|
@for d in $(SUBDIRS) ; \
|
||||||
do if test -d $$d; then \
|
do if test -d $$d; then \
|
||||||
$(MAKE) -C $$d $(@F) || exit 1 ; \
|
$(MAKE) -C $$d $(@F) || exit 1 ; \
|
||||||
|
@ -196,6 +195,7 @@ endif
|
||||||
ifdef USE_THREAD
|
ifdef USE_THREAD
|
||||||
@echo USE_THREAD=$(USE_THREAD) >> Makefile.conf_last
|
@echo USE_THREAD=$(USE_THREAD) >> Makefile.conf_last
|
||||||
endif
|
endif
|
||||||
|
@-ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
||||||
@touch lib.grd
|
@touch lib.grd
|
||||||
|
|
||||||
prof : prof_blas prof_lapack
|
prof : prof_blas prof_lapack
|
||||||
|
|
|
@ -4,6 +4,14 @@ trigger:
|
||||||
branches:
|
branches:
|
||||||
include:
|
include:
|
||||||
- develop
|
- 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:
|
jobs:
|
||||||
# manylinux1 is useful to test because the
|
# manylinux1 is useful to test because the
|
||||||
|
@ -94,7 +102,38 @@ jobs:
|
||||||
- script: |
|
- script: |
|
||||||
brew update
|
brew update
|
||||||
brew install llvm libomp
|
brew install llvm libomp
|
||||||
brew tap LouisBrunner/valgrind
|
make TARGET=CORE2 USE_OPENMP=1 INTERFACE64=1 DYNAMIC_ARCH=1 CC=/usr/local/opt/llvm/bin/clang FC=gfortran-10
|
||||||
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
|
- job: OSX_Ifort_Clang
|
||||||
cd ctest; OMP_NUM_THREADS=1 valgrind ./xscblat2 <sin2
|
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
|
||||||
|
|
||||||
|
|
|
@ -139,9 +139,13 @@ endif
|
||||||
ifneq (,$(filter 1 2,$(NOFORTRAN)))
|
ifneq (,$(filter 1 2,$(NOFORTRAN)))
|
||||||
#only build without Fortran
|
#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)
|
$(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
|
else
|
||||||
$(FC) $(FFLAGS) $(LDFLAGS) -all_load -headerpad_max_install_names -install_name "$(CURDIR)/../$(INTERNALNAME)" -dynamiclib -o ../$(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def $(FEXTRALIB)
|
$(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
|
||||||
|
endif
|
||||||
|
|
||||||
dllinit.$(SUFFIX) : dllinit.c
|
dllinit.$(SUFFIX) : dllinit.c
|
||||||
$(CC) $(CFLAGS) -c -o $(@F) -s $<
|
$(CC) $(CFLAGS) -c -o $(@F) -s $<
|
||||||
|
|
4
f_check
4
f_check
|
@ -391,10 +391,6 @@ if ($link ne "") {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($vendor eq "INTEL"){
|
|
||||||
$linker_a .= "-lgfortran"
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($vendor eq "FLANG"){
|
if ($vendor eq "FLANG"){
|
||||||
$linker_a .= "-lflang"
|
$linker_a .= "-lflang"
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,8 +79,12 @@ void NAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){
|
||||||
aa_i = fabs(da_r);
|
aa_i = fabs(da_r);
|
||||||
}
|
}
|
||||||
|
|
||||||
scale = (aa_i / aa_r);
|
if (aa_r == ZERO) {
|
||||||
ada = aa_r * sqrt(ONE + scale * scale);
|
ada = 0.;
|
||||||
|
} else {
|
||||||
|
scale = (aa_i / aa_r);
|
||||||
|
ada = aa_r * sqrt(ONE + scale * scale);
|
||||||
|
}
|
||||||
|
|
||||||
bb_r = fabs(db_r);
|
bb_r = fabs(db_r);
|
||||||
bb_i = fabs(db_i);
|
bb_i = fabs(db_i);
|
||||||
|
@ -90,9 +94,12 @@ void NAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){
|
||||||
bb_i = fabs(bb_r);
|
bb_i = fabs(bb_r);
|
||||||
}
|
}
|
||||||
|
|
||||||
scale = (bb_i / bb_r);
|
if (bb_r == ZERO) {
|
||||||
adb = bb_r * sqrt(ONE + scale * scale);
|
adb = 0.;
|
||||||
|
} else {
|
||||||
|
scale = (bb_i / bb_r);
|
||||||
|
adb = bb_r * sqrt(ONE + scale * scale);
|
||||||
|
}
|
||||||
scale = ada + adb;
|
scale = ada + adb;
|
||||||
|
|
||||||
aa_r = da_r / scale;
|
aa_r = da_r / scale;
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
/* need a new enough GCC for avx512 support */
|
#if defined(HAVE_FMA3) && defined(HAVE_AVX2)
|
||||||
#if (( defined(__GNUC__) && __GNUC__ > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9))
|
|
||||||
|
|
||||||
#define HAVE_DROT_KERNEL 1
|
#define HAVE_DROT_KERNEL 1
|
||||||
|
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
|
@ -566,8 +566,8 @@ void LAPACK_cgbrfsx(
|
||||||
lapack_int const* n, lapack_int const* kl, lapack_int const* ku, lapack_int const* nrhs,
|
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* AB, lapack_int const* ldab,
|
||||||
lapack_complex_float const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
|
lapack_complex_float const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
|
||||||
float* R,
|
const float* R,
|
||||||
float* C,
|
const float* C,
|
||||||
lapack_complex_float const* B, lapack_int const* ldb,
|
lapack_complex_float const* B, lapack_int const* ldb,
|
||||||
lapack_complex_float* X, lapack_int const* ldx,
|
lapack_complex_float* X, lapack_int const* ldx,
|
||||||
float* rcond,
|
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,
|
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* AB, lapack_int const* ldab,
|
||||||
double const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
|
double const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
|
||||||
double* R,
|
const double* R,
|
||||||
double* C,
|
const double* C,
|
||||||
double const* B, lapack_int const* ldb,
|
double const* B, lapack_int const* ldb,
|
||||||
double* X, lapack_int const* ldx,
|
double* X, lapack_int const* ldx,
|
||||||
double* rcond,
|
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,
|
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* AB, lapack_int const* ldab,
|
||||||
float const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
|
float const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
|
||||||
float* R,
|
const float* R,
|
||||||
float* C,
|
const float* C,
|
||||||
float const* B, lapack_int const* ldb,
|
float const* B, lapack_int const* ldb,
|
||||||
float* X, lapack_int const* ldx,
|
float* X, lapack_int const* ldx,
|
||||||
float* rcond,
|
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_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* AB, lapack_int const* ldab,
|
||||||
lapack_complex_double const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
|
lapack_complex_double const* AFB, lapack_int const* ldafb, lapack_int const* ipiv,
|
||||||
double* R,
|
const double* R,
|
||||||
double* C,
|
const double* C,
|
||||||
lapack_complex_double const* B, lapack_int const* ldb,
|
lapack_complex_double const* B, lapack_int const* ldb,
|
||||||
lapack_complex_double* X, lapack_int const* ldx,
|
lapack_complex_double* X, lapack_int const* ldx,
|
||||||
double* rcond,
|
double* rcond,
|
||||||
|
@ -4913,7 +4913,7 @@ void LAPACK_cherfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
lapack_complex_float const* A, lapack_int const* lda,
|
lapack_complex_float const* A, lapack_int const* lda,
|
||||||
lapack_complex_float const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
|
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 const* B, lapack_int const* ldb,
|
||||||
lapack_complex_float* X, lapack_int const* ldx,
|
lapack_complex_float* X, lapack_int const* ldx,
|
||||||
float* rcond,
|
float* rcond,
|
||||||
|
@ -4931,7 +4931,7 @@ void LAPACK_zherfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
lapack_complex_double const* A, lapack_int const* lda,
|
lapack_complex_double const* A, lapack_int const* lda,
|
||||||
lapack_complex_double const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
|
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 const* B, lapack_int const* ldb,
|
||||||
lapack_complex_double* X, lapack_int const* ldx,
|
lapack_complex_double* X, lapack_int const* ldx,
|
||||||
double* rcond,
|
double* rcond,
|
||||||
|
@ -8005,7 +8005,7 @@ void LAPACK_cporfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
lapack_complex_float const* A, lapack_int const* lda,
|
lapack_complex_float const* A, lapack_int const* lda,
|
||||||
lapack_complex_float const* AF, lapack_int const* ldaf,
|
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 const* B, lapack_int const* ldb,
|
||||||
lapack_complex_float* X, lapack_int const* ldx,
|
lapack_complex_float* X, lapack_int const* ldx,
|
||||||
float* rcond,
|
float* rcond,
|
||||||
|
@ -8023,7 +8023,7 @@ void LAPACK_dporfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
double const* A, lapack_int const* lda,
|
double const* A, lapack_int const* lda,
|
||||||
double const* AF, lapack_int const* ldaf,
|
double const* AF, lapack_int const* ldaf,
|
||||||
double* S,
|
const double* S,
|
||||||
double const* B, lapack_int const* ldb,
|
double const* B, lapack_int const* ldb,
|
||||||
double* X, lapack_int const* ldx,
|
double* X, lapack_int const* ldx,
|
||||||
double* rcond,
|
double* rcond,
|
||||||
|
@ -8041,7 +8041,7 @@ void LAPACK_sporfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
float const* A, lapack_int const* lda,
|
float const* A, lapack_int const* lda,
|
||||||
float const* AF, lapack_int const* ldaf,
|
float const* AF, lapack_int const* ldaf,
|
||||||
float* S,
|
const float* S,
|
||||||
float const* B, lapack_int const* ldb,
|
float const* B, lapack_int const* ldb,
|
||||||
float* X, lapack_int const* ldx,
|
float* X, lapack_int const* ldx,
|
||||||
float* rcond,
|
float* rcond,
|
||||||
|
@ -8059,7 +8059,7 @@ void LAPACK_zporfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
lapack_complex_double const* A, lapack_int const* lda,
|
lapack_complex_double const* A, lapack_int const* lda,
|
||||||
lapack_complex_double const* AF, lapack_int const* ldaf,
|
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 const* B, lapack_int const* ldb,
|
||||||
lapack_complex_double* X, lapack_int const* ldx,
|
lapack_complex_double* X, lapack_int const* ldx,
|
||||||
double* rcond,
|
double* rcond,
|
||||||
|
@ -10756,7 +10756,7 @@ void LAPACK_csyrfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
lapack_complex_float const* A, lapack_int const* lda,
|
lapack_complex_float const* A, lapack_int const* lda,
|
||||||
lapack_complex_float const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
|
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 const* B, lapack_int const* ldb,
|
||||||
lapack_complex_float* X, lapack_int const* ldx,
|
lapack_complex_float* X, lapack_int const* ldx,
|
||||||
float* rcond,
|
float* rcond,
|
||||||
|
@ -10774,7 +10774,7 @@ void LAPACK_dsyrfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
double const* A, lapack_int const* lda,
|
double const* A, lapack_int const* lda,
|
||||||
double const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
|
double const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
|
||||||
double* S,
|
const double* S,
|
||||||
double const* B, lapack_int const* ldb,
|
double const* B, lapack_int const* ldb,
|
||||||
double* X, lapack_int const* ldx,
|
double* X, lapack_int const* ldx,
|
||||||
double* rcond,
|
double* rcond,
|
||||||
|
@ -10792,7 +10792,7 @@ void LAPACK_ssyrfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
float const* A, lapack_int const* lda,
|
float const* A, lapack_int const* lda,
|
||||||
float const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
|
float const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
|
||||||
float* S,
|
const float* S,
|
||||||
float const* B, lapack_int const* ldb,
|
float const* B, lapack_int const* ldb,
|
||||||
float* X, lapack_int const* ldx,
|
float* X, lapack_int const* ldx,
|
||||||
float* rcond,
|
float* rcond,
|
||||||
|
@ -10810,7 +10810,7 @@ void LAPACK_zsyrfsx(
|
||||||
lapack_int const* n, lapack_int const* nrhs,
|
lapack_int const* n, lapack_int const* nrhs,
|
||||||
lapack_complex_double const* A, lapack_int const* lda,
|
lapack_complex_double const* A, lapack_int const* lda,
|
||||||
lapack_complex_double const* AF, lapack_int const* ldaf, lapack_int const* ipiv,
|
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 const* B, lapack_int const* ldb,
|
||||||
lapack_complex_double* X, lapack_int const* ldx,
|
lapack_complex_double* X, lapack_int const* ldx,
|
||||||
double* rcond,
|
double* rcond,
|
||||||
|
|
|
@ -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 ) ) {
|
LAPACKE_cgb_nancheck( LAPACK_COL_MAJOR, n, m, n-1, 1, a-1, lda+1 ) ) {
|
||||||
return -9;
|
return -9;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case 'B':
|
case 'B':
|
||||||
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
|
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
|
||||||
if( LAPACKE_chb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {
|
if( LAPACKE_chb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {
|
||||||
|
|
|
@ -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 ) ) {
|
LAPACKE_dgb_nancheck( LAPACK_COL_MAJOR, n, m, n-1, 1, a-1, lda+1 ) ) {
|
||||||
return -9;
|
return -9;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case 'B':
|
case 'B':
|
||||||
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
|
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
|
||||||
if( LAPACKE_dsb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {
|
if( LAPACKE_dsb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {
|
||||||
|
|
|
@ -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 ) ) {
|
LAPACKE_sgb_nancheck( LAPACK_COL_MAJOR, n, m, n-1, 1, a-1, lda+1 ) ) {
|
||||||
return -9;
|
return -9;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case 'B':
|
case 'B':
|
||||||
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
|
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
|
||||||
if( LAPACKE_ssb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {
|
if( LAPACKE_ssb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {
|
||||||
|
|
|
@ -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 ) ) {
|
LAPACKE_zgb_nancheck( LAPACK_COL_MAJOR, n, m, n-1, 1, a-1, lda+1 ) ) {
|
||||||
return -9;
|
return -9;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case 'B':
|
case 'B':
|
||||||
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
|
// TYPE = 'B' - lower part of symmetric band matrix (assume m==n)
|
||||||
if( LAPACKE_zhb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {
|
if( LAPACKE_zhb_nancheck( matrix_layout, 'L', n, kl, a, lda ) ) {
|
||||||
|
|
|
@ -222,8 +222,8 @@
|
||||||
CALL CUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
CALL CUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
||||||
ELSE
|
ELSE
|
||||||
IF( M.GT.1 ) THEN
|
IF( M.GT.1 ) THEN
|
||||||
CALL CUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
|
CALL CUNGQR( M-1, M-1, M-1, A, LDA, TAU, WORK, -1,
|
||||||
$ -1, IINFO )
|
$ IINFO )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -231,8 +231,8 @@
|
||||||
CALL CUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
CALL CUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
||||||
ELSE
|
ELSE
|
||||||
IF( N.GT.1 ) THEN
|
IF( N.GT.1 ) THEN
|
||||||
CALL CUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
|
CALL CUNGLQ( N-1, N-1, N-1, A, LDA, TAU, WORK, -1,
|
||||||
$ -1, IINFO )
|
$ IINFO )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
|
@ -184,10 +184,18 @@
|
||||||
*
|
*
|
||||||
* 2-by-2 case.
|
* 2-by-2 case.
|
||||||
*
|
*
|
||||||
IF( Z( 2 ).LT.ZERO .OR. Z( 3 ).LT.ZERO ) THEN
|
IF( Z( 1 ).LT.ZERO ) THEN
|
||||||
INFO = -2
|
INFO = -201
|
||||||
CALL XERBLA( 'DLASQ2', 2 )
|
CALL XERBLA( 'DLASQ2', 2 )
|
||||||
RETURN
|
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
|
ELSE IF( Z( 3 ).GT.Z( 1 ) ) THEN
|
||||||
D = Z( 3 )
|
D = Z( 3 )
|
||||||
Z( 3 ) = Z( 1 )
|
Z( 3 ) = Z( 1 )
|
||||||
|
|
|
@ -221,8 +221,8 @@
|
||||||
CALL DORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
CALL DORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
||||||
ELSE
|
ELSE
|
||||||
IF( M.GT.1 ) THEN
|
IF( M.GT.1 ) THEN
|
||||||
CALL DORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
|
CALL DORGQR( M-1, M-1, M-1, A, LDA, TAU, WORK, -1,
|
||||||
$ -1, IINFO )
|
$ IINFO )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -230,8 +230,8 @@
|
||||||
CALL DORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
CALL DORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
||||||
ELSE
|
ELSE
|
||||||
IF( N.GT.1 ) THEN
|
IF( N.GT.1 ) THEN
|
||||||
CALL DORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
|
CALL DORGLQ( N-1, N-1, N-1, A, LDA, TAU, WORK, -1,
|
||||||
$ -1, IINFO )
|
$ IINFO )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
|
@ -183,10 +183,18 @@
|
||||||
*
|
*
|
||||||
* 2-by-2 case.
|
* 2-by-2 case.
|
||||||
*
|
*
|
||||||
IF( Z( 2 ).LT.ZERO .OR. Z( 3 ).LT.ZERO ) THEN
|
IF( Z( 1 ).LT.ZERO ) THEN
|
||||||
INFO = -2
|
INFO = -201
|
||||||
|
CALL XERBLA( 'DLASQ2', 2 )
|
||||||
|
RETURN
|
||||||
|
ELSE IF( Z( 2 ).LT.ZERO ) THEN
|
||||||
|
INFO = -202
|
||||||
CALL XERBLA( 'SLASQ2', 2 )
|
CALL XERBLA( 'SLASQ2', 2 )
|
||||||
RETURN
|
RETURN
|
||||||
|
ELSE IF( Z( 3 ).LT.ZERO ) THEN
|
||||||
|
INFO = -203
|
||||||
|
CALL XERBLA( 'SLASQ2', 2 )
|
||||||
|
RETURN
|
||||||
ELSE IF( Z( 3 ).GT.Z( 1 ) ) THEN
|
ELSE IF( Z( 3 ).GT.Z( 1 ) ) THEN
|
||||||
D = Z( 3 )
|
D = Z( 3 )
|
||||||
Z( 3 ) = Z( 1 )
|
Z( 3 ) = Z( 1 )
|
||||||
|
|
|
@ -221,8 +221,8 @@
|
||||||
CALL SORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
CALL SORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
||||||
ELSE
|
ELSE
|
||||||
IF( M.GT.1 ) THEN
|
IF( M.GT.1 ) THEN
|
||||||
CALL SORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
|
CALL SORGQR( M-1, M-1, M-1, A, LDA, TAU, WORK, -1,
|
||||||
$ -1, IINFO )
|
$ IINFO )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -230,8 +230,8 @@
|
||||||
CALL SORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
CALL SORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
||||||
ELSE
|
ELSE
|
||||||
IF( N.GT.1 ) THEN
|
IF( N.GT.1 ) THEN
|
||||||
CALL SORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
|
CALL SORGLQ( N-1, N-1, N-1, A, LDA, TAU, WORK, -1,
|
||||||
$ -1, IINFO )
|
$ IINFO )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
|
@ -222,8 +222,8 @@
|
||||||
CALL ZUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
CALL ZUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
||||||
ELSE
|
ELSE
|
||||||
IF( M.GT.1 ) THEN
|
IF( M.GT.1 ) THEN
|
||||||
CALL ZUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
|
CALL ZUNGQR( M-1, M-1, M-1, A, LDA, TAU, WORK, -1,
|
||||||
$ -1, IINFO )
|
$ IINFO )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -231,8 +231,8 @@
|
||||||
CALL ZUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
CALL ZUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
|
||||||
ELSE
|
ELSE
|
||||||
IF( N.GT.1 ) THEN
|
IF( N.GT.1 ) THEN
|
||||||
CALL ZUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
|
CALL ZUNGLQ( N-1, N-1, N-1, A, LDA, TAU, WORK, -1,
|
||||||
$ -1, IINFO )
|
$ IINFO )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
|
@ -1871,7 +1871,7 @@
|
||||||
CALL XLAENV( 9, 25 )
|
CALL XLAENV( 9, 25 )
|
||||||
IF( TSTERR ) THEN
|
IF( TSTERR ) THEN
|
||||||
#if defined(_OPENMP)
|
#if defined(_OPENMP)
|
||||||
N_THREADS = OMP_GET_NUM_THREADS()
|
N_THREADS = OMP_GET_MAX_THREADS()
|
||||||
CALL OMP_SET_NUM_THREADS(1)
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
#endif
|
#endif
|
||||||
CALL CERRST( 'CST', NOUT )
|
CALL CERRST( 'CST', NOUT )
|
||||||
|
@ -2338,7 +2338,7 @@
|
||||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||||
IF( TSTERR ) THEN
|
IF( TSTERR ) THEN
|
||||||
#if defined(_OPENMP)
|
#if defined(_OPENMP)
|
||||||
N_THREADS = OMP_GET_NUM_THREADS()
|
N_THREADS = OMP_GET_MAX_THREADS()
|
||||||
CALL OMP_SET_NUM_THREADS(1)
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
#endif
|
#endif
|
||||||
CALL CERRST( 'CHB', NOUT )
|
CALL CERRST( 'CHB', NOUT )
|
||||||
|
|
|
@ -1876,7 +1876,7 @@
|
||||||
CALL XLAENV( 9, 25 )
|
CALL XLAENV( 9, 25 )
|
||||||
IF( TSTERR ) THEN
|
IF( TSTERR ) THEN
|
||||||
#if defined(_OPENMP)
|
#if defined(_OPENMP)
|
||||||
N_THREADS = OMP_GET_NUM_THREADS()
|
N_THREADS = OMP_GET_MAX_THREADS()
|
||||||
CALL OMP_SET_NUM_THREADS(1)
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
#endif
|
#endif
|
||||||
CALL DERRST( 'DST', NOUT )
|
CALL DERRST( 'DST', NOUT )
|
||||||
|
|
|
@ -1877,7 +1877,7 @@
|
||||||
CALL XLAENV( 9, 25 )
|
CALL XLAENV( 9, 25 )
|
||||||
IF( TSTERR ) THEN
|
IF( TSTERR ) THEN
|
||||||
#if defined(_OPENMP)
|
#if defined(_OPENMP)
|
||||||
N_THREADS = OMP_GET_NUM_THREADS()
|
N_THREADS = OMP_GET_MAX_THREADS()
|
||||||
CALL OMP_SET_NUM_THREADS(1)
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
#endif
|
#endif
|
||||||
CALL SERRST( 'SST', NOUT )
|
CALL SERRST( 'SST', NOUT )
|
||||||
|
|
|
@ -1871,7 +1871,7 @@
|
||||||
CALL XLAENV( 9, 25 )
|
CALL XLAENV( 9, 25 )
|
||||||
IF( TSTERR ) THEN
|
IF( TSTERR ) THEN
|
||||||
#if defined(_OPENMP)
|
#if defined(_OPENMP)
|
||||||
N_THREADS = OMP_GET_NUM_THREADS()
|
N_THREADS = OMP_GET_MAX_THREADS()
|
||||||
CALL OMP_SET_NUM_THREADS(1)
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
#endif
|
#endif
|
||||||
CALL ZERRST( 'ZST', NOUT )
|
CALL ZERRST( 'ZST', NOUT )
|
||||||
|
@ -2336,7 +2336,7 @@
|
||||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||||
IF( TSTERR ) THEN
|
IF( TSTERR ) THEN
|
||||||
#if defined(_OPENMP)
|
#if defined(_OPENMP)
|
||||||
N_THREADS = OMP_GET_NUM_THREADS()
|
N_THREADS = OMP_GET_MAX_THREADS()
|
||||||
CALL OMP_SET_NUM_THREADS(1)
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
#endif
|
#endif
|
||||||
CALL ZERRST( 'ZHB', NOUT )
|
CALL ZERRST( 'ZHB', NOUT )
|
||||||
|
|
|
@ -707,9 +707,10 @@
|
||||||
CALL CLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
|
CALL CLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
|
||||||
|
|
||||||
IF( .NOT.PREFAC )
|
IF( .NOT.PREFAC )
|
||||||
$ CALL CLASET( 'Full', N, N, ZERO, ZERO, AFAC,
|
$ CALL CLASET( 'Full', N, N, CMPLX( ZERO ),
|
||||||
$ LDA )
|
$ CMPLX( ZERO ), AFAC, LDA )
|
||||||
CALL CLASET( 'Full', N, NRHS, ZERO, ZERO, X, LDA )
|
CALL CLASET( 'Full', N, NRHS, CMPLX( ZERO ),
|
||||||
|
$ CMPLX( ZERO ), X, LDA )
|
||||||
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
|
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
|
||||||
*
|
*
|
||||||
* Equilibrate the matrix if FACT = 'F' and
|
* Equilibrate the matrix if FACT = 'F' and
|
||||||
|
|
|
@ -449,11 +449,11 @@
|
||||||
* Reconstruct matrix from factors and compute
|
* Reconstruct matrix from factors and compute
|
||||||
* residual.
|
* residual.
|
||||||
*
|
*
|
||||||
c CALL CHET01_AA( UPLO, N, A, LDA, AFAC, LDA,
|
c CALL CHET01_AA( UPLO, N, A, LDA, AFAC, LDA,
|
||||||
c $ IWORK, AINV, LDA, RWORK,
|
c $ IWORK, AINV, LDA, RWORK,
|
||||||
c $ RESULT( 2 ) )
|
c $ RESULT( 2 ) )
|
||||||
c NT = 2
|
c NT = 2
|
||||||
NT = 1
|
NT = 1
|
||||||
*
|
*
|
||||||
* Print information about the tests that did not pass
|
* Print information about the tests that did not pass
|
||||||
* the threshold.
|
* the threshold.
|
||||||
|
|
|
@ -449,19 +449,19 @@
|
||||||
* Form the inverse of A.
|
* Form the inverse of A.
|
||||||
*
|
*
|
||||||
CALL CPOTRI( UPLO, N, A, LDA, INFO )
|
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,
|
AINVNM = CLANHE( '1', UPLO, N, A, LDA,
|
||||||
+ S_WORK_CLANHE )
|
+ S_WORK_CLANHE )
|
||||||
RCONDC = ( ONE / ANORM ) / AINVNM
|
RCONDC = ( ONE / ANORM ) / AINVNM
|
||||||
*
|
*
|
||||||
* Restore the matrix A.
|
* 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
|
||||||
|
|
||||||
*
|
*
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
|
|
|
@ -443,8 +443,7 @@
|
||||||
*
|
*
|
||||||
CALL DPOTRI( UPLO, N, A, LDA, INFO )
|
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.
|
* Compute the 1-norm condition number of A.
|
||||||
*
|
*
|
||||||
|
|
|
@ -443,7 +443,7 @@
|
||||||
*
|
*
|
||||||
CALL SPOTRI( UPLO, N, A, LDA, INFO )
|
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.
|
* Compute the 1-norm condition number of A.
|
||||||
*
|
*
|
||||||
|
|
|
@ -707,9 +707,10 @@
|
||||||
CALL ZLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
|
CALL ZLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
|
||||||
|
|
||||||
IF( .NOT.PREFAC )
|
IF( .NOT.PREFAC )
|
||||||
$ CALL ZLASET( 'Full', N, N, ZERO, ZERO, AFAC,
|
$ CALL ZLASET( 'Full', N, N, DCMPLX( ZERO ),
|
||||||
$ LDA )
|
$ DCMPLX( ZERO ), AFAC, LDA )
|
||||||
CALL ZLASET( 'Full', N, NRHS, ZERO, ZERO, X, LDA )
|
CALL ZLASET( 'Full', N, NRHS, DCMPLX( ZERO ),
|
||||||
|
$ DCMPLX( ZERO ), X, LDA )
|
||||||
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
|
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
|
||||||
*
|
*
|
||||||
* Equilibrate the matrix if FACT = 'F' and
|
* Equilibrate the matrix if FACT = 'F' and
|
||||||
|
|
|
@ -599,10 +599,10 @@
|
||||||
* Restore the matrices A and B.
|
* Restore the matrices A and B.
|
||||||
*
|
*
|
||||||
IF( IFACT.EQ.2 )
|
IF( IFACT.EQ.2 )
|
||||||
$ CALL ZLASET( UPLO, N, N, CMPLX( ZERO ),
|
$ CALL ZLASET( UPLO, N, N, DCMPLX( ZERO ),
|
||||||
$ CMPLX( ZERO ), AFAC, LDA )
|
$ DCMPLX( ZERO ), AFAC, LDA )
|
||||||
CALL ZLASET( 'Full', N, NRHS, CMPLX( ZERO ),
|
CALL ZLASET( 'Full', N, NRHS, DCMPLX( ZERO ),
|
||||||
$ CMPLX( ZERO ), X, LDA )
|
$ DCMPLX( ZERO ), X, LDA )
|
||||||
*
|
*
|
||||||
* Solve the system and compute the condition number
|
* Solve the system and compute the condition number
|
||||||
* and error bounds using ZHESVXX.
|
* and error bounds using ZHESVXX.
|
||||||
|
|
|
@ -611,10 +611,10 @@
|
||||||
CALL ZLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
|
CALL ZLACPY( 'Full', N, NRHS, BSAV, LDA, B, LDA )
|
||||||
|
|
||||||
IF( .NOT.PREFAC )
|
IF( .NOT.PREFAC )
|
||||||
$ CALL ZLASET( UPLO, N, N, CMPLX( ZERO ),
|
$ CALL ZLASET( UPLO, N, N, DCMPLX( ZERO ),
|
||||||
$ CMPLX( ZERO ), AFAC, LDA )
|
$ DCMPLX( ZERO ), AFAC, LDA )
|
||||||
CALL ZLASET( 'Full', N, NRHS, CMPLX( ZERO ),
|
CALL ZLASET( 'Full', N, NRHS, DCMPLX( ZERO ),
|
||||||
$ CMPLX( ZERO ), X, LDA )
|
$ DCMPLX( ZERO ), X, LDA )
|
||||||
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
|
IF( IEQUED.GT.1 .AND. N.GT.0 ) THEN
|
||||||
*
|
*
|
||||||
* Equilibrate the matrix if FACT='F' and
|
* Equilibrate the matrix if FACT='F' and
|
||||||
|
|
|
@ -450,7 +450,7 @@
|
||||||
*
|
*
|
||||||
CALL ZPOTRI( UPLO, N, A, LDA, INFO )
|
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.
|
* Compute the 1-norm condition number of A.
|
||||||
*
|
*
|
||||||
|
|
|
@ -605,10 +605,10 @@
|
||||||
* Restore the matrices A and B.
|
* Restore the matrices A and B.
|
||||||
*
|
*
|
||||||
IF( IFACT.EQ.2 )
|
IF( IFACT.EQ.2 )
|
||||||
$ CALL ZLASET( UPLO, N, N, CMPLX( ZERO ),
|
$ CALL ZLASET( UPLO, N, N, DCMPLX( ZERO ),
|
||||||
$ CMPLX( ZERO ), AFAC, LDA )
|
$ DCMPLX( ZERO ), AFAC, LDA )
|
||||||
CALL ZLASET( 'Full', N, NRHS, CMPLX( ZERO ),
|
CALL ZLASET( 'Full', N, NRHS, DCMPLX( ZERO ),
|
||||||
$ CMPLX( ZERO ), X, LDA )
|
$ DCMPLX( ZERO ), X, LDA )
|
||||||
*
|
*
|
||||||
* Solve the system and compute the condition number
|
* Solve the system and compute the condition number
|
||||||
* and error bounds using ZSYSVXX.
|
* and error bounds using ZSYSVXX.
|
||||||
|
|
|
@ -1166,7 +1166,7 @@
|
||||||
$ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
|
$ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
|
||||||
$ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
|
$ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
|
||||||
CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
|
CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 13
|
INFOT = 13
|
||||||
EQ = 'N'
|
EQ = 'N'
|
||||||
CALL ZSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 1, X,
|
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,
|
$ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
|
||||||
|
|
Loading…
Reference in New Issue