commit
3a30c12019
2
Makefile
2
Makefile
|
@ -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
|
||||
|
|
|
@ -4,6 +4,14 @@ 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
|
||||
|
@ -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
|
||||
|
||||
|
|
|
@ -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 $<
|
||||
|
|
4
f_check
4
f_check
|
@ -391,10 +391,6 @@ if ($link ne "") {
|
|||
|
||||
}
|
||||
|
||||
if ($vendor eq "INTEL"){
|
||||
$linker_a .= "-lgfortran"
|
||||
}
|
||||
|
||||
if ($vendor eq "FLANG"){
|
||||
$linker_a .= "-lflang"
|
||||
}
|
||||
|
|
|
@ -79,8 +79,12 @@ void NAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){
|
|||
aa_i = fabs(da_r);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 ) ) {
|
||||
|
|
|
@ -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 ) ) {
|
||||
|
|
|
@ -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 ) ) {
|
||||
|
|
|
@ -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 ) ) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -184,8 +184,16 @@
|
|||
*
|
||||
* 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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -183,8 +183,16 @@
|
|||
*
|
||||
* 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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -449,10 +449,11 @@
|
|||
* 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.
|
||||
*
|
||||
IF ( N .NE. 0 ) THEN
|
||||
AINVNM = CLANHE( '1', UPLO, N, A, LDA,
|
||||
+ S_WORK_CLANHE )
|
||||
RCONDC = ( ONE / ANORM ) / AINVNM
|
||||
|
@ -461,7 +462,6 @@
|
|||
*
|
||||
CALL CLACPY( UPLO, N, N, ASAV, LDA, A, LDA )
|
||||
END IF
|
||||
|
||||
*
|
||||
END IF
|
||||
*
|
||||
|
|
|
@ -444,7 +444,6 @@
|
|||
CALL DPOTRI( UPLO, N, A, LDA, INFO )
|
||||
|
||||
IF ( N .NE. 0 ) THEN
|
||||
|
||||
*
|
||||
* Compute the 1-norm condition number of A.
|
||||
*
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue