| @@ -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,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 | |||
| @@ -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 $< | |||
| @@ -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); | |||
| } | |||
| 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; | |||
| @@ -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,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 ) | |||
| @@ -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,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 ) | |||
| @@ -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,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. | |||
| @@ -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 | |||
| * | |||
| @@ -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. | |||
| * | |||
| @@ -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. | |||
| * | |||
| @@ -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 | |||
| @@ -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. | |||
| * | |||
| @@ -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. | |||
| @@ -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, | |||