commit
45d542c9d1
|
@ -6,7 +6,8 @@ cmake_minimum_required(VERSION 2.8.5)
|
||||||
project(OpenBLAS C ASM)
|
project(OpenBLAS C ASM)
|
||||||
set(OpenBLAS_MAJOR_VERSION 0)
|
set(OpenBLAS_MAJOR_VERSION 0)
|
||||||
set(OpenBLAS_MINOR_VERSION 3)
|
set(OpenBLAS_MINOR_VERSION 3)
|
||||||
set(OpenBLAS_PATCH_VERSION 9.dev)
|
set(OpenBLAS_PATCH_VERSION 10.dev)
|
||||||
|
|
||||||
set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${OpenBLAS_PATCH_VERSION}")
|
set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${OpenBLAS_PATCH_VERSION}")
|
||||||
|
|
||||||
# Adhere to GNU filesystem layout conventions
|
# Adhere to GNU filesystem layout conventions
|
||||||
|
|
|
@ -1,4 +1,77 @@
|
||||||
OpenBLAS ChangeLog
|
OpenBLAS ChangeLog
|
||||||
|
====================================================================
|
||||||
|
Version 0.3.10
|
||||||
|
14-Jun-2020
|
||||||
|
|
||||||
|
common:
|
||||||
|
* Improved thread locking behaviour in blas_server and parallel getrf
|
||||||
|
* Imported bugfix 394 from LAPACK (spurious reference to "XERBL"
|
||||||
|
due to overlong lines)
|
||||||
|
* Imported bugfix 403 from LAPACK (compile option "recursive" required
|
||||||
|
for correctness with Intel and PGI)
|
||||||
|
* Imported bugfix 408 from LAPACK (wrong scaling in ZHEEQUB)
|
||||||
|
* Imported bugfix 411 from LAPACK (infinite loop in LARGV/LARTG/LARTGP)
|
||||||
|
* Fixed mismatches between BUFFERSIZE and GEMM_UNROLL parameters that
|
||||||
|
could lead to crashes at large matrix sizes
|
||||||
|
* Restored internal soname in dynamic libraries on FreeBSD and Dragonfly
|
||||||
|
* Added API (openblas_setaffinity) to set the thread affinity on Linux
|
||||||
|
* Added initial infrastructure for half-precision floating point
|
||||||
|
(bfloat16) support with a generic implementation of SHGEMM
|
||||||
|
* Added CMAKE build system support for building the cblas_Xgemm3m
|
||||||
|
functions
|
||||||
|
* Fixed CMAKE support for building in a path with embedded spaces
|
||||||
|
* Fixed CMAKE (non)handling of NO_EXPRECISION and MAX_STACK_ALLOC
|
||||||
|
* Fixed GCC version detection in the Makefiles
|
||||||
|
* Allowed overriding the names of AR, AS and LD in Makefile builds
|
||||||
|
|
||||||
|
POWER:
|
||||||
|
* Fixed big-endian POWER8 ELFv2 builds on FreeBSD
|
||||||
|
* Fixed GCC version checks and DYNAMIC_ARCH builds on POWER9
|
||||||
|
* Fixed CMAKE build support for POWER9
|
||||||
|
* fixed a potential race condition in the thread buffer allocation
|
||||||
|
* Worked around LAPACK test failures on PPC G4
|
||||||
|
|
||||||
|
MIPS:
|
||||||
|
* Fixed a potential race condition in the thread buffer allocation
|
||||||
|
* Added support for MIPS 24K/24KE family based on P5600 kernels
|
||||||
|
|
||||||
|
MIPS64:
|
||||||
|
* fixed a potential race condition in the thread buffer allocation
|
||||||
|
* Added TARGET=GENERIC
|
||||||
|
|
||||||
|
ARMV7:
|
||||||
|
* Fixed a race condition in the thread buffer allocation
|
||||||
|
|
||||||
|
ARMV8:
|
||||||
|
* Fixed a race condition in the thread buffer allocation
|
||||||
|
* Fixed zero initialisation in the assembly for SGEMM and DGEMM BETA
|
||||||
|
* Improved performance of the ThunderX2 DAXPY kernel
|
||||||
|
* Added an optimized SGEMM kernel for Cortex A53
|
||||||
|
* Fixed Makefile support for INTERFACE64 (8-byte integer)
|
||||||
|
|
||||||
|
x86_64:
|
||||||
|
* Fixed a syntax error in the CMAKE setup for SkylakeX
|
||||||
|
* Improved performance of STRSM on Haswell, SkylakeX and Ryzen
|
||||||
|
* Improved SGEMM performance on SGEMM for workloads with ldc a
|
||||||
|
multiple of 1024
|
||||||
|
* Improved DGEMM performance on Skylake X
|
||||||
|
* Fixed unwanted AVX512-dependency of SGEMM in DYNAMIC_ARCH
|
||||||
|
builds created on SkylakeX
|
||||||
|
* Removed data alignment requirement in the SSE2 copy kernels
|
||||||
|
that could cause spurious crashes
|
||||||
|
* Added a workaround for an optimizer bug in AppleClang 11.0.3
|
||||||
|
* Fixed LAPACK test failures due to wrong options for Intel Fortran
|
||||||
|
* Fixed compilation and LAPACK test results with recent Flang
|
||||||
|
and AMD AOCC
|
||||||
|
* Fixed DYNAMIC_ARCH builds with CMAKE on OS X
|
||||||
|
* Fixed missing exports of cblas_i?amin, cblas_i?min, cblas_i?max,
|
||||||
|
cblas_?sum, cblas_?gemm3m in the shared library on OS
|
||||||
|
* Fixed reporting of cpu name in DYNAMIC_ARCH builds (would sometimes
|
||||||
|
show the name of an older generation chip supported by the same kernels)
|
||||||
|
|
||||||
|
IBM Z:
|
||||||
|
* Improved performance of SGEMM/STRMM and DGEMM/DTRMM on Z14
|
||||||
|
|
||||||
====================================================================
|
====================================================================
|
||||||
Version 0.3.9
|
Version 0.3.9
|
||||||
1-Mar-2020
|
1-Mar-2020
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
# This library's version
|
# This library's version
|
||||||
VERSION = 0.3.9.dev
|
VERSION = 0.3.10.dev
|
||||||
|
|
||||||
# If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a
|
# If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a
|
||||||
# and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library
|
# and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library
|
||||||
|
|
|
@ -263,10 +263,10 @@ endif
|
||||||
|
|
||||||
ARFLAGS =
|
ARFLAGS =
|
||||||
CPP = $(COMPILER) -E
|
CPP = $(COMPILER) -E
|
||||||
AR = $(CROSS_SUFFIX)ar
|
AR ?= $(CROSS_SUFFIX)ar
|
||||||
AS = $(CROSS_SUFFIX)as
|
AS ?= $(CROSS_SUFFIX)as
|
||||||
LD = $(CROSS_SUFFIX)ld
|
LD ?= $(CROSS_SUFFIX)ld
|
||||||
RANLIB = $(CROSS_SUFFIX)ranlib
|
RANLIB ?= $(CROSS_SUFFIX)ranlib
|
||||||
NM = $(CROSS_SUFFIX)nm
|
NM = $(CROSS_SUFFIX)nm
|
||||||
DLLWRAP = $(CROSS_SUFFIX)dllwrap
|
DLLWRAP = $(CROSS_SUFFIX)dllwrap
|
||||||
OBJCOPY = $(CROSS_SUFFIX)objcopy
|
OBJCOPY = $(CROSS_SUFFIX)objcopy
|
||||||
|
@ -282,9 +282,11 @@ endif
|
||||||
ifeq ($(C_COMPILER), GCC)
|
ifeq ($(C_COMPILER), GCC)
|
||||||
GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
|
GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
|
||||||
GCCVERSIONGT4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 4)
|
GCCVERSIONGT4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 4)
|
||||||
|
GCCVERSIONEQ5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` = 5)
|
||||||
GCCVERSIONGT5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 5)
|
GCCVERSIONGT5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 5)
|
||||||
GCCVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 7)
|
GCCVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 7)
|
||||||
GCCVERSIONGTEQ9 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 9)
|
GCCVERSIONGTEQ9 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 9)
|
||||||
|
GCCMINORVERSIONGTEQ2 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 2)
|
||||||
GCCMINORVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 7)
|
GCCMINORVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 7)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -570,20 +572,27 @@ ifeq ($(ARCH), zarch)
|
||||||
DYNAMIC_CORE = ZARCH_GENERIC
|
DYNAMIC_CORE = ZARCH_GENERIC
|
||||||
|
|
||||||
# Z13 is supported since gcc-5.2, gcc-6, and in RHEL 7.3 and newer
|
# Z13 is supported since gcc-5.2, gcc-6, and in RHEL 7.3 and newer
|
||||||
GCC_GE_52 := $(subst 0,,$(shell expr `$(CC) -dumpversion` \>= "5.2"))
|
ifeq ($(GCCVERSIONGT5), 1)
|
||||||
|
ZARCH_SUPPORT_Z13 := 1
|
||||||
ifeq ($(wildcard /etc/redhat-release), /etc/redhat-release)
|
else ifeq ($(GCCVERSIONEQ5), 1)
|
||||||
RHEL_WITH_Z13 := $(subst 0,,$(shell source /etc/os-release ; expr $$VERSION_ID \>= "7.3"))
|
ifeq ($(GCCMINORVERSIONGTEQ2), 1)
|
||||||
|
ZARCH_SUPPORT_Z13 := 1
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(or $(GCC_GE_52),$(RHEL_WITH_Z13)), 1)
|
ifeq ($(wildcard /etc/redhat-release), /etc/redhat-release)
|
||||||
|
ifeq ($(shell source /etc/os-release ; expr $$VERSION_ID \>= "7.3"), 1)
|
||||||
|
ZARCH_SUPPORT_Z13 := 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(ZARCH_SUPPORT_Z13), 1)
|
||||||
DYNAMIC_CORE += Z13
|
DYNAMIC_CORE += Z13
|
||||||
else
|
else
|
||||||
$(info OpenBLAS: Not building Z13 kernels because gcc is older than 5.2 or 6.x)
|
$(info OpenBLAS: Not building Z13 kernels because gcc is older than 5.2 or 6.x)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
GCC_MAJOR_GE_7 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 7)
|
ifeq ($(GCCVERSIONGTEQ7), 1)
|
||||||
ifeq ($(GCC_MAJOR_GE_7), 1)
|
|
||||||
DYNAMIC_CORE += Z14
|
DYNAMIC_CORE += Z14
|
||||||
else
|
else
|
||||||
$(info OpenBLAS: Not building Z14 kernels because gcc is older than 7.x)
|
$(info OpenBLAS: Not building Z14 kernels because gcc is older than 7.x)
|
||||||
|
@ -597,7 +606,6 @@ ifneq ($(C_COMPILER), GCC)
|
||||||
DYNAMIC_CORE += POWER9
|
DYNAMIC_CORE += POWER9
|
||||||
endif
|
endif
|
||||||
ifeq ($(C_COMPILER), GCC)
|
ifeq ($(C_COMPILER), GCC)
|
||||||
GCCVERSIONGT5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 5)
|
|
||||||
ifeq ($(GCCVERSIONGT5), 1)
|
ifeq ($(GCCVERSIONGT5), 1)
|
||||||
DYNAMIC_CORE += POWER9
|
DYNAMIC_CORE += POWER9
|
||||||
else
|
else
|
||||||
|
@ -783,7 +791,15 @@ endif
|
||||||
|
|
||||||
ifeq ($(F_COMPILER), FLANG)
|
ifeq ($(F_COMPILER), FLANG)
|
||||||
CCOMMON_OPT += -DF_INTERFACE_FLANG
|
CCOMMON_OPT += -DF_INTERFACE_FLANG
|
||||||
FCOMMON_OPT += -frecursive
|
FCOMMON_OPT += -Mrecursive -Kieee
|
||||||
|
ifeq ($(OSNAME), Linux)
|
||||||
|
ifeq ($(ARCH), x86_64)
|
||||||
|
FLANG_VENDOR := $(shell expr `$(FC) --version|cut -f 1 -d "."|head -1`)
|
||||||
|
ifeq ($(FLANG_VENDOR),AOCC)
|
||||||
|
FCOMMON_OPT += -fno-unroll-loops
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
ifdef BINARY64
|
ifdef BINARY64
|
||||||
ifdef INTERFACE64
|
ifdef INTERFACE64
|
||||||
ifneq ($(INTERFACE64), 0)
|
ifneq ($(INTERFACE64), 0)
|
||||||
|
@ -797,11 +813,6 @@ endif
|
||||||
ifeq ($(USE_OPENMP), 1)
|
ifeq ($(USE_OPENMP), 1)
|
||||||
FCOMMON_OPT += -fopenmp
|
FCOMMON_OPT += -fopenmp
|
||||||
endif
|
endif
|
||||||
#ifeq ($(OSNAME), Linux)
|
|
||||||
#ifeq ($(ARCH), x86_64)
|
|
||||||
#FLANG_VENDOR := $(shell expr `$(FC) --version|cut -f 1 -d "."|head -1`)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(F_COMPILER), G77)
|
ifeq ($(F_COMPILER), G77)
|
||||||
|
@ -1276,12 +1287,7 @@ endif
|
||||||
|
|
||||||
override CFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR)
|
override CFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR)
|
||||||
override PFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR) -DPROFILE $(COMMON_PROF)
|
override PFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR) -DPROFILE $(COMMON_PROF)
|
||||||
#ifeq ($(FLANG_VENDOR),AOCC)
|
|
||||||
ifeq ($(F_COMPILER),FLANG)
|
|
||||||
override FFLAGS += $(filter-out -O2 -O3,$(COMMON_OPT)) -O1 $(FCOMMON_OPT)
|
|
||||||
else
|
|
||||||
override FFLAGS += $(COMMON_OPT) $(FCOMMON_OPT)
|
override FFLAGS += $(COMMON_OPT) $(FCOMMON_OPT)
|
||||||
endif
|
|
||||||
override FPFLAGS += $(FCOMMON_OPT) $(COMMON_PROF)
|
override FPFLAGS += $(FCOMMON_OPT) $(COMMON_PROF)
|
||||||
#MAKEOVERRIDES =
|
#MAKEOVERRIDES =
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ if (${F_COMPILER} STREQUAL "FLANG")
|
||||||
if (USE_OPENMP)
|
if (USE_OPENMP)
|
||||||
set(FCOMMON_OPT "${FCOMMON_OPT} -fopenmp")
|
set(FCOMMON_OPT "${FCOMMON_OPT} -fopenmp")
|
||||||
endif ()
|
endif ()
|
||||||
set(FCOMMON_OPT "${FCOMMON_OPT} -frecursive")
|
set(FCOMMON_OPT "${FCOMMON_OPT} -Mrecursive -Kieee")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (${F_COMPILER} STREQUAL "G77")
|
if (${F_COMPILER} STREQUAL "G77")
|
||||||
|
|
|
@ -419,10 +419,9 @@ endif ()
|
||||||
|
|
||||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||||
if ("${F_COMPILER}" STREQUAL "FLANG")
|
if ("${F_COMPILER}" STREQUAL "FLANG")
|
||||||
set(FILTER_FLAGS "-O2;-O3")
|
if (${CMAKE_Fortran_COMPILER_VERSION} VERSION_LESS_EQUAL 3)
|
||||||
foreach (FILTER_FLAG ${FILTER_FLAGS})
|
set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fno-unroll-loops")
|
||||||
string(REPLACE ${FILTER_FLAG} "-O1" CMAKE_Fortran_FLAGS_RELEASE ${CMAKE_Fortran_FLAGS_RELEASE})
|
endif ()
|
||||||
endforeach ()
|
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,14 @@ inline void pauser(){
|
||||||
std::getline(std::cin, dummy);
|
std::getline(std::cin, dummy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FailIfThreadsAreZero(uint32_t numConcurrentThreads) {
|
||||||
|
if(numConcurrentThreads == 0) {
|
||||||
|
std::cout<<"ERROR: Invalid parameter 0 for number of concurrent calls into OpenBLAS!"<<std::endl;
|
||||||
|
std::cout<<"CBLAS DGEMV thread safety test FAILED!"<<std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void FillMatrices(std::vector<std::vector<double>>& matBlock, std::mt19937_64& PRNG, std::uniform_real_distribution<double>& rngdist, const blasint randomMatSize, const uint32_t numConcurrentThreads, const uint32_t numMat){
|
void FillMatrices(std::vector<std::vector<double>>& matBlock, std::mt19937_64& PRNG, std::uniform_real_distribution<double>& rngdist, const blasint randomMatSize, const uint32_t numConcurrentThreads, const uint32_t numMat){
|
||||||
for(uint32_t i=0; i<numMat; i++){
|
for(uint32_t i=0; i<numMat; i++){
|
||||||
for(uint32_t j = 0; j < static_cast<uint32_t>(randomMatSize*randomMatSize); j++){
|
for(uint32_t j = 0; j < static_cast<uint32_t>(randomMatSize*randomMatSize); j++){
|
||||||
|
|
|
@ -47,6 +47,8 @@ int main(int argc, char* argv[]){
|
||||||
std::cout<<"Number of testing rounds : "<<numTestRounds<<'\n';
|
std::cout<<"Number of testing rounds : "<<numTestRounds<<'\n';
|
||||||
std::cout<<"This test will need "<<(static_cast<uint64_t>(randomMatSize*randomMatSize)*numConcurrentThreads*3*8)/static_cast<double>(1024*1024)<<" MiB of RAM\n"<<std::endl;
|
std::cout<<"This test will need "<<(static_cast<uint64_t>(randomMatSize*randomMatSize)*numConcurrentThreads*3*8)/static_cast<double>(1024*1024)<<" MiB of RAM\n"<<std::endl;
|
||||||
|
|
||||||
|
FailIfThreadsAreZero(numConcurrentThreads);
|
||||||
|
|
||||||
std::cout<<"Initializing random number generator..."<<std::flush;
|
std::cout<<"Initializing random number generator..."<<std::flush;
|
||||||
std::mt19937_64 PRNG = InitPRNG();
|
std::mt19937_64 PRNG = InitPRNG();
|
||||||
std::cout<<"done\n";
|
std::cout<<"done\n";
|
||||||
|
|
|
@ -18,7 +18,7 @@ int main(int argc, char* argv[]){
|
||||||
uint32_t maxHwThreads = omp_get_max_threads();
|
uint32_t maxHwThreads = omp_get_max_threads();
|
||||||
|
|
||||||
if (maxHwThreads < 52)
|
if (maxHwThreads < 52)
|
||||||
numConcurrentThreads = maxHwThreads -4;
|
numConcurrentThreads = maxHwThreads;
|
||||||
|
|
||||||
if (argc > 4){
|
if (argc > 4){
|
||||||
std::cout<<"ERROR: too many arguments for thread safety tester"<<std::endl;
|
std::cout<<"ERROR: too many arguments for thread safety tester"<<std::endl;
|
||||||
|
@ -48,6 +48,8 @@ int main(int argc, char* argv[]){
|
||||||
std::cout<<"Number of testing rounds : "<<numTestRounds<<'\n';
|
std::cout<<"Number of testing rounds : "<<numTestRounds<<'\n';
|
||||||
std::cout<<"This test will need "<<((static_cast<uint64_t>(randomMatSize*randomMatSize)*numConcurrentThreads*8)+(static_cast<uint64_t>(randomMatSize)*numConcurrentThreads*8*2))/static_cast<double>(1024*1024)<<" MiB of RAM\n"<<std::endl;
|
std::cout<<"This test will need "<<((static_cast<uint64_t>(randomMatSize*randomMatSize)*numConcurrentThreads*8)+(static_cast<uint64_t>(randomMatSize)*numConcurrentThreads*8*2))/static_cast<double>(1024*1024)<<" MiB of RAM\n"<<std::endl;
|
||||||
|
|
||||||
|
FailIfThreadsAreZero(numConcurrentThreads);
|
||||||
|
|
||||||
std::cout<<"Initializing random number generator..."<<std::flush;
|
std::cout<<"Initializing random number generator..."<<std::flush;
|
||||||
std::mt19937_64 PRNG = InitPRNG();
|
std::mt19937_64 PRNG = InitPRNG();
|
||||||
std::cout<<"done\n";
|
std::cout<<"done\n";
|
||||||
|
|
|
@ -764,18 +764,53 @@ char *gotoblas_corename(void) {
|
||||||
if (gotoblas == &gotoblas_NORTHWOOD) return corename[ 3];
|
if (gotoblas == &gotoblas_NORTHWOOD) return corename[ 3];
|
||||||
if (gotoblas == &gotoblas_PRESCOTT) return corename[ 4];
|
if (gotoblas == &gotoblas_PRESCOTT) return corename[ 4];
|
||||||
if (gotoblas == &gotoblas_BANIAS) return corename[ 5];
|
if (gotoblas == &gotoblas_BANIAS) return corename[ 5];
|
||||||
if (gotoblas == &gotoblas_ATOM) return corename[ 6];
|
if (gotoblas == &gotoblas_ATOM)
|
||||||
|
#ifdef DYNAMIC_OLDER
|
||||||
|
return corename[ 6];
|
||||||
|
#else
|
||||||
|
return corename[10];
|
||||||
|
#endif
|
||||||
if (gotoblas == &gotoblas_CORE2) return corename[ 7];
|
if (gotoblas == &gotoblas_CORE2) return corename[ 7];
|
||||||
if (gotoblas == &gotoblas_PENRYN) return corename[ 8];
|
if (gotoblas == &gotoblas_PENRYN)
|
||||||
if (gotoblas == &gotoblas_DUNNINGTON) return corename[ 9];
|
#ifdef DYNAMIC_OLDER
|
||||||
|
return corename[ 8];
|
||||||
|
#else
|
||||||
|
return corename[7];
|
||||||
|
#endif
|
||||||
|
if (gotoblas == &gotoblas_DUNNINGTON)
|
||||||
|
#ifdef DYNAMIC_OLDER
|
||||||
|
return corename[ 9];
|
||||||
|
#else
|
||||||
|
return corename[7];
|
||||||
|
#endif
|
||||||
if (gotoblas == &gotoblas_NEHALEM) return corename[10];
|
if (gotoblas == &gotoblas_NEHALEM) return corename[10];
|
||||||
if (gotoblas == &gotoblas_ATHLON) return corename[11];
|
if (gotoblas == &gotoblas_ATHLON) return corename[11];
|
||||||
if (gotoblas == &gotoblas_OPTERON_SSE3) return corename[12];
|
if (gotoblas == &gotoblas_OPTERON_SSE3)
|
||||||
if (gotoblas == &gotoblas_OPTERON) return corename[13];
|
#ifdef DYNAMIC_OLDER
|
||||||
|
return corename[12];
|
||||||
|
#else
|
||||||
|
return corename[7];
|
||||||
|
#endif
|
||||||
|
if (gotoblas == &gotoblas_OPTERON)
|
||||||
|
#ifdef DYNAMIC_OLDER
|
||||||
|
return corename[13];
|
||||||
|
#else
|
||||||
|
return corename[7];
|
||||||
|
#endif
|
||||||
if (gotoblas == &gotoblas_BARCELONA) return corename[14];
|
if (gotoblas == &gotoblas_BARCELONA) return corename[14];
|
||||||
if (gotoblas == &gotoblas_NANO) return corename[15];
|
if (gotoblas == &gotoblas_NANO)
|
||||||
|
#ifdef DYNAMIC_OLDER
|
||||||
|
return corename[15];
|
||||||
|
#else
|
||||||
|
return corename[10];
|
||||||
|
#endif
|
||||||
if (gotoblas == &gotoblas_SANDYBRIDGE) return corename[16];
|
if (gotoblas == &gotoblas_SANDYBRIDGE) return corename[16];
|
||||||
if (gotoblas == &gotoblas_BOBCAT) return corename[17];
|
if (gotoblas == &gotoblas_BOBCAT)
|
||||||
|
#ifdef DYNAMIC_OLDER
|
||||||
|
return corename[17];
|
||||||
|
#else
|
||||||
|
return corename[7];
|
||||||
|
#endif
|
||||||
if (gotoblas == &gotoblas_BULLDOZER) return corename[18];
|
if (gotoblas == &gotoblas_BULLDOZER) return corename[18];
|
||||||
if (gotoblas == &gotoblas_PILEDRIVER) return corename[19];
|
if (gotoblas == &gotoblas_PILEDRIVER) return corename[19];
|
||||||
if (gotoblas == &gotoblas_HASWELL) return corename[20];
|
if (gotoblas == &gotoblas_HASWELL) return corename[20];
|
||||||
|
@ -787,6 +822,7 @@ char *gotoblas_corename(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static gotoblas_t *force_coretype(char *coretype){
|
static gotoblas_t *force_coretype(char *coretype){
|
||||||
|
|
||||||
int i ;
|
int i ;
|
||||||
|
|
|
@ -40,15 +40,10 @@
|
||||||
ztbsv,ztpmv,ztpsv,ztrmm,ztrmv,ztrsm,ztrsv,
|
ztbsv,ztpmv,ztpsv,ztrmm,ztrmv,ztrsm,ztrsv,
|
||||||
xerbla,
|
xerbla,
|
||||||
saxpby,daxpby,caxpby,zaxpby,
|
saxpby,daxpby,caxpby,zaxpby,
|
||||||
|
somatcopy, domatcopy, comatcopy, zomatcopy,
|
||||||
|
simatcopy, dimatcopy, cimatcopy, zimatcopy,
|
||||||
sgeadd,dgeadd,cgeadd,zgeadd,
|
sgeadd,dgeadd,cgeadd,zgeadd,
|
||||||
somatcopy,
|
ssum, dsum, scsum, dzsum
|
||||||
simatcopy,
|
|
||||||
domatcopy,
|
|
||||||
dimatcopy,
|
|
||||||
comatcopy,
|
|
||||||
cimatcopy,
|
|
||||||
zomatcopy,
|
|
||||||
zimatcopy,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
@halfblasobjs = (shgemm);
|
@halfblasobjs = (shgemm);
|
||||||
|
@ -81,7 +76,12 @@
|
||||||
cblas_saxpby,cblas_daxpby,cblas_caxpby,cblas_zaxpby,
|
cblas_saxpby,cblas_daxpby,cblas_caxpby,cblas_zaxpby,
|
||||||
cblas_somatcopy, cblas_domatcopy, cblas_comatcopy, cblas_zomatcopy,
|
cblas_somatcopy, cblas_domatcopy, cblas_comatcopy, cblas_zomatcopy,
|
||||||
cblas_simatcopy, cblas_dimatcopy, cblas_cimatcopy, cblas_zimatcopy,
|
cblas_simatcopy, cblas_dimatcopy, cblas_cimatcopy, cblas_zimatcopy,
|
||||||
cblas_sgeadd, cblas_dgeadd,cblas_cgeadd, cblas_zgeadd
|
cblas_sgeadd, cblas_dgeadd,cblas_cgeadd, cblas_zgeadd,
|
||||||
|
cblas_isamin, cblas_idamin, cblas_icamin, cblas_izamin,
|
||||||
|
cblas_ismin, cblas_idmin, cblas_icmin, cblas_izmin,
|
||||||
|
cblas_ismax, cblas_idmax, cblas_icmax, cblas_izmax,
|
||||||
|
cblas_ssum, cblas_dsum, cblas_scsum, cblas_dzsum,
|
||||||
|
cblas_xerbla
|
||||||
);
|
);
|
||||||
|
|
||||||
@halfcblasobjs = (cblas_shgemm);
|
@halfcblasobjs = (cblas_shgemm);
|
||||||
|
@ -3501,9 +3501,12 @@ if ($ARGV[1] eq "x86") { @underscore_objs = (@underscore_objs, @gemm3mobjs);
|
||||||
if ($ARGV[1] eq "ia64") { @underscore_objs = (@underscore_objs, @gemm3mobjs); };
|
if ($ARGV[1] eq "ia64") { @underscore_objs = (@underscore_objs, @gemm3mobjs); };
|
||||||
if ($ARGV[1] eq "MIPS") { @underscore_objs = (@underscore_objs, @gemm3mobjs); };
|
if ($ARGV[1] eq "MIPS") { @underscore_objs = (@underscore_objs, @gemm3mobjs); };
|
||||||
|
|
||||||
|
|
||||||
if ($ARGV[4] == 0) {
|
if ($ARGV[4] == 0) {
|
||||||
@no_underscore_objs = (@cblasobjs, @misc_no_underscore_objs);
|
@no_underscore_objs = (@cblasobjs, @misc_no_underscore_objs);
|
||||||
|
if ($ARGV[1] eq "x86_64") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
|
||||||
|
if ($ARGV[1] eq "x86") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
|
||||||
|
if ($ARGV[1] eq "ia64") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
|
||||||
|
if ($ARGV[1] eq "MIPS") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
|
||||||
}else{
|
}else{
|
||||||
#NO_CBLAS=1
|
#NO_CBLAS=1
|
||||||
@no_underscore_objs = (@misc_no_underscore_objs);
|
@no_underscore_objs = (@misc_no_underscore_objs);
|
||||||
|
|
|
@ -1,7 +1,49 @@
|
||||||
|
*> \brief \b CBLAT1
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM CBLAT1
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the COMPLEX Level 1 BLAS.
|
||||||
|
*> Based upon the original BLAS test routine together with:
|
||||||
|
*>
|
||||||
|
*> F06GAF Example Program Text
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup complex_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM CBLAT1
|
PROGRAM CBLAT1
|
||||||
* Test program for the COMPLEX Level 1 BLAS.
|
*
|
||||||
* Based upon the original BLAS test routine together with:
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
* F06GAF Example Program Text
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NOUT
|
INTEGER NOUT
|
||||||
PARAMETER (NOUT=6)
|
PARAMETER (NOUT=6)
|
||||||
|
@ -114,8 +156,8 @@
|
||||||
+ (5.0E0,6.0E0), (5.0E0,6.0E0), (0.1E0,0.1E0),
|
+ (5.0E0,6.0E0), (5.0E0,6.0E0), (0.1E0,0.1E0),
|
||||||
+ (-0.6E0,0.1E0), (0.1E0,-0.3E0), (7.0E0,8.0E0),
|
+ (-0.6E0,0.1E0), (0.1E0,-0.3E0), (7.0E0,8.0E0),
|
||||||
+ (7.0E0,8.0E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
+ (7.0E0,8.0E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
||||||
+ (7.0E0,8.0E0), (0.3E0,0.1E0), (0.1E0,0.4E0),
|
+ (7.0E0,8.0E0), (0.3E0,0.1E0), (0.5E0,0.0E0),
|
||||||
+ (0.4E0,0.1E0), (0.1E0,0.2E0), (2.0E0,3.0E0),
|
+ (0.0E0,0.5E0), (0.0E0,0.2E0), (2.0E0,3.0E0),
|
||||||
+ (2.0E0,3.0E0), (2.0E0,3.0E0), (2.0E0,3.0E0)/
|
+ (2.0E0,3.0E0), (2.0E0,3.0E0), (2.0E0,3.0E0)/
|
||||||
DATA ((CV(I,J,2),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
DATA ((CV(I,J,2),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
||||||
+ (4.0E0,5.0E0), (4.0E0,5.0E0), (4.0E0,5.0E0),
|
+ (4.0E0,5.0E0), (4.0E0,5.0E0), (4.0E0,5.0E0),
|
||||||
|
@ -129,10 +171,10 @@
|
||||||
+ (3.0E0,6.0E0), (-0.6E0,0.1E0), (4.0E0,7.0E0),
|
+ (3.0E0,6.0E0), (-0.6E0,0.1E0), (4.0E0,7.0E0),
|
||||||
+ (0.1E0,-0.3E0), (7.0E0,2.0E0), (7.0E0,2.0E0),
|
+ (0.1E0,-0.3E0), (7.0E0,2.0E0), (7.0E0,2.0E0),
|
||||||
+ (7.0E0,2.0E0), (0.3E0,0.1E0), (5.0E0,8.0E0),
|
+ (7.0E0,2.0E0), (0.3E0,0.1E0), (5.0E0,8.0E0),
|
||||||
+ (0.1E0,0.4E0), (6.0E0,9.0E0), (0.4E0,0.1E0),
|
+ (0.5E0,0.0E0), (6.0E0,9.0E0), (0.0E0,0.5E0),
|
||||||
+ (8.0E0,3.0E0), (0.1E0,0.2E0), (9.0E0,4.0E0)/
|
+ (8.0E0,3.0E0), (0.0E0,0.2E0), (9.0E0,4.0E0)/
|
||||||
DATA STRUE2/0.0E0, 0.5E0, 0.6E0, 0.7E0, 0.7E0/
|
DATA STRUE2/0.0E0, 0.5E0, 0.6E0, 0.7E0, 0.8E0/
|
||||||
DATA STRUE4/0.0E0, 0.7E0, 1.0E0, 1.3E0, 1.7E0/
|
DATA STRUE4/0.0E0, 0.7E0, 1.0E0, 1.3E0, 1.6E0/
|
||||||
DATA ((CTRUE5(I,J,1),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
DATA ((CTRUE5(I,J,1),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
||||||
+ (1.0E0,2.0E0), (1.0E0,2.0E0), (1.0E0,2.0E0),
|
+ (1.0E0,2.0E0), (1.0E0,2.0E0), (1.0E0,2.0E0),
|
||||||
+ (1.0E0,2.0E0), (1.0E0,2.0E0), (1.0E0,2.0E0),
|
+ (1.0E0,2.0E0), (1.0E0,2.0E0), (1.0E0,2.0E0),
|
||||||
|
@ -145,8 +187,8 @@
|
||||||
+ (0.11E0,-0.03E0), (-0.17E0,0.46E0),
|
+ (0.11E0,-0.03E0), (-0.17E0,0.46E0),
|
||||||
+ (-0.17E0,-0.19E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
+ (-0.17E0,-0.19E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
||||||
+ (7.0E0,8.0E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
+ (7.0E0,8.0E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
||||||
+ (0.19E0,-0.17E0), (0.32E0,0.09E0),
|
+ (0.19E0,-0.17E0), (0.20E0,-0.35E0),
|
||||||
+ (0.23E0,-0.24E0), (0.18E0,0.01E0),
|
+ (0.35E0,0.20E0), (0.14E0,0.08E0),
|
||||||
+ (2.0E0,3.0E0), (2.0E0,3.0E0), (2.0E0,3.0E0),
|
+ (2.0E0,3.0E0), (2.0E0,3.0E0), (2.0E0,3.0E0),
|
||||||
+ (2.0E0,3.0E0)/
|
+ (2.0E0,3.0E0)/
|
||||||
DATA ((CTRUE5(I,J,2),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
DATA ((CTRUE5(I,J,2),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
||||||
|
@ -162,9 +204,9 @@
|
||||||
+ (-0.17E0,0.46E0), (4.0E0,7.0E0),
|
+ (-0.17E0,0.46E0), (4.0E0,7.0E0),
|
||||||
+ (-0.17E0,-0.19E0), (7.0E0,2.0E0), (7.0E0,2.0E0),
|
+ (-0.17E0,-0.19E0), (7.0E0,2.0E0), (7.0E0,2.0E0),
|
||||||
+ (7.0E0,2.0E0), (0.19E0,-0.17E0), (5.0E0,8.0E0),
|
+ (7.0E0,2.0E0), (0.19E0,-0.17E0), (5.0E0,8.0E0),
|
||||||
+ (0.32E0,0.09E0), (6.0E0,9.0E0),
|
+ (0.20E0,-0.35E0), (6.0E0,9.0E0),
|
||||||
+ (0.23E0,-0.24E0), (8.0E0,3.0E0),
|
+ (0.35E0,0.20E0), (8.0E0,3.0E0),
|
||||||
+ (0.18E0,0.01E0), (9.0E0,4.0E0)/
|
+ (0.14E0,0.08E0), (9.0E0,4.0E0)/
|
||||||
DATA ((CTRUE6(I,J,1),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
DATA ((CTRUE6(I,J,1),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
||||||
+ (1.0E0,2.0E0), (1.0E0,2.0E0), (1.0E0,2.0E0),
|
+ (1.0E0,2.0E0), (1.0E0,2.0E0), (1.0E0,2.0E0),
|
||||||
+ (1.0E0,2.0E0), (1.0E0,2.0E0), (1.0E0,2.0E0),
|
+ (1.0E0,2.0E0), (1.0E0,2.0E0), (1.0E0,2.0E0),
|
||||||
|
@ -177,8 +219,8 @@
|
||||||
+ (0.03E0,0.03E0), (-0.18E0,0.03E0),
|
+ (0.03E0,0.03E0), (-0.18E0,0.03E0),
|
||||||
+ (0.03E0,-0.09E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
+ (0.03E0,-0.09E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
||||||
+ (7.0E0,8.0E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
+ (7.0E0,8.0E0), (7.0E0,8.0E0), (7.0E0,8.0E0),
|
||||||
+ (0.09E0,0.03E0), (0.03E0,0.12E0),
|
+ (0.09E0,0.03E0), (0.15E0,0.00E0),
|
||||||
+ (0.12E0,0.03E0), (0.03E0,0.06E0), (2.0E0,3.0E0),
|
+ (0.00E0,0.15E0), (0.00E0,0.06E0), (2.0E0,3.0E0),
|
||||||
+ (2.0E0,3.0E0), (2.0E0,3.0E0), (2.0E0,3.0E0)/
|
+ (2.0E0,3.0E0), (2.0E0,3.0E0), (2.0E0,3.0E0)/
|
||||||
DATA ((CTRUE6(I,J,2),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
DATA ((CTRUE6(I,J,2),I=1,8),J=1,5)/(0.1E0,0.1E0),
|
||||||
+ (4.0E0,5.0E0), (4.0E0,5.0E0), (4.0E0,5.0E0),
|
+ (4.0E0,5.0E0), (4.0E0,5.0E0), (4.0E0,5.0E0),
|
||||||
|
@ -193,8 +235,8 @@
|
||||||
+ (-0.18E0,0.03E0), (4.0E0,7.0E0),
|
+ (-0.18E0,0.03E0), (4.0E0,7.0E0),
|
||||||
+ (0.03E0,-0.09E0), (7.0E0,2.0E0), (7.0E0,2.0E0),
|
+ (0.03E0,-0.09E0), (7.0E0,2.0E0), (7.0E0,2.0E0),
|
||||||
+ (7.0E0,2.0E0), (0.09E0,0.03E0), (5.0E0,8.0E0),
|
+ (7.0E0,2.0E0), (0.09E0,0.03E0), (5.0E0,8.0E0),
|
||||||
+ (0.03E0,0.12E0), (6.0E0,9.0E0), (0.12E0,0.03E0),
|
+ (0.15E0,0.00E0), (6.0E0,9.0E0), (0.00E0,0.15E0),
|
||||||
+ (8.0E0,3.0E0), (0.03E0,0.06E0), (9.0E0,4.0E0)/
|
+ (8.0E0,3.0E0), (0.00E0,0.06E0), (9.0E0,4.0E0)/
|
||||||
DATA ITRUE3/0, 1, 2, 2, 2/
|
DATA ITRUE3/0, 1, 2, 2, 2/
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
DO 60 INCX = 1, 2
|
DO 60 INCX = 1, 2
|
||||||
|
@ -529,7 +571,8 @@
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NOUT
|
INTEGER NOUT
|
||||||
PARAMETER (NOUT=6)
|
REAL ZERO
|
||||||
|
PARAMETER (NOUT=6, ZERO=0.0E0)
|
||||||
* .. Scalar Arguments ..
|
* .. Scalar Arguments ..
|
||||||
REAL SFAC
|
REAL SFAC
|
||||||
INTEGER LEN
|
INTEGER LEN
|
||||||
|
@ -552,7 +595,7 @@
|
||||||
*
|
*
|
||||||
DO 40 I = 1, LEN
|
DO 40 I = 1, LEN
|
||||||
SD = SCOMP(I) - STRUE(I)
|
SD = SCOMP(I) - STRUE(I)
|
||||||
IF (SDIFF(ABS(SSIZE(I))+ABS(SFAC*SD),ABS(SSIZE(I))).EQ.0.0E0)
|
IF (ABS(SFAC*SD) .LE. ABS(SSIZE(I))*EPSILON(ZERO))
|
||||||
+ GO TO 40
|
+ GO TO 40
|
||||||
*
|
*
|
||||||
* HERE SCOMP(I) IS NOT CLOSE TO STRUE(I).
|
* HERE SCOMP(I) IS NOT CLOSE TO STRUE(I).
|
||||||
|
|
188
test/cblat2.f
188
test/cblat2.f
|
@ -1,68 +1,114 @@
|
||||||
|
*> \brief \b CBLAT2
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM CBLAT2
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the COMPLEX Level 2 Blas.
|
||||||
|
*>
|
||||||
|
*> The program must be driven by a short data file. The first 18 records
|
||||||
|
*> of the file are read using list-directed input, the last 17 records
|
||||||
|
*> are read using the format ( A6, L2 ). An annotated example of a data
|
||||||
|
*> file can be obtained by deleting the first 3 characters from the
|
||||||
|
*> following 35 lines:
|
||||||
|
*> 'cblat2.out' NAME OF SUMMARY OUTPUT FILE
|
||||||
|
*> 6 UNIT NUMBER OF SUMMARY FILE
|
||||||
|
*> 'CBLA2T.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
||||||
|
*> -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
||||||
|
*> F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
||||||
|
*> F LOGICAL FLAG, T TO STOP ON FAILURES.
|
||||||
|
*> T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
||||||
|
*> 16.0 THRESHOLD VALUE OF TEST RATIO
|
||||||
|
*> 6 NUMBER OF VALUES OF N
|
||||||
|
*> 0 1 2 3 5 9 VALUES OF N
|
||||||
|
*> 4 NUMBER OF VALUES OF K
|
||||||
|
*> 0 1 2 4 VALUES OF K
|
||||||
|
*> 4 NUMBER OF VALUES OF INCX AND INCY
|
||||||
|
*> 1 2 -1 -2 VALUES OF INCX AND INCY
|
||||||
|
*> 3 NUMBER OF VALUES OF ALPHA
|
||||||
|
*> (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
|
||||||
|
*> 3 NUMBER OF VALUES OF BETA
|
||||||
|
*> (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
|
||||||
|
*> CGEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CGBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CTRMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CTBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CTPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CTRSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CTBSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CTPSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CGERC T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CGERU T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHER T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHPR T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHER2 T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHPR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*>
|
||||||
|
*> Further Details
|
||||||
|
*> ===============
|
||||||
|
*>
|
||||||
|
*> See:
|
||||||
|
*>
|
||||||
|
*> Dongarra J. J., Du Croz J. J., Hammarling S. and Hanson R. J..
|
||||||
|
*> An extended set of Fortran Basic Linear Algebra Subprograms.
|
||||||
|
*>
|
||||||
|
*> Technical Memoranda Nos. 41 (revision 3) and 81, Mathematics
|
||||||
|
*> and Computer Science Division, Argonne National Laboratory,
|
||||||
|
*> 9700 South Cass Avenue, Argonne, Illinois 60439, US.
|
||||||
|
*>
|
||||||
|
*> Or
|
||||||
|
*>
|
||||||
|
*> NAG Technical Reports TR3/87 and TR4/87, Numerical Algorithms
|
||||||
|
*> Group Ltd., NAG Central Office, 256 Banbury Road, Oxford
|
||||||
|
*> OX2 7DE, UK, and Numerical Algorithms Group Inc., 1101 31st
|
||||||
|
*> Street, Suite 100, Downers Grove, Illinois 60515-1263, USA.
|
||||||
|
*>
|
||||||
|
*>
|
||||||
|
*> -- Written on 10-August-1987.
|
||||||
|
*> Richard Hanson, Sandia National Labs.
|
||||||
|
*> Jeremy Du Croz, NAG Central Office.
|
||||||
|
*>
|
||||||
|
*> 10-9-00: Change STATUS='NEW' to 'UNKNOWN' so that the testers
|
||||||
|
*> can be run multiple times without deleting generated
|
||||||
|
*> output files (susan)
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup complex_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM CBLAT2
|
PROGRAM CBLAT2
|
||||||
*
|
*
|
||||||
* Test program for the COMPLEX Level 2 Blas.
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
*
|
*
|
||||||
* The program must be driven by a short data file. The first 18 records
|
* =====================================================================
|
||||||
* of the file are read using list-directed input, the last 17 records
|
|
||||||
* are read using the format ( A6, L2 ). An annotated example of a data
|
|
||||||
* file can be obtained by deleting the first 3 characters from the
|
|
||||||
* following 35 lines:
|
|
||||||
* 'CBLAT2.SUMM' NAME OF SUMMARY OUTPUT FILE
|
|
||||||
* 6 UNIT NUMBER OF SUMMARY FILE
|
|
||||||
* 'CBLA2T.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
|
||||||
* -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
|
||||||
* F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
|
||||||
* F LOGICAL FLAG, T TO STOP ON FAILURES.
|
|
||||||
* T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
|
||||||
* 16.0 THRESHOLD VALUE OF TEST RATIO
|
|
||||||
* 6 NUMBER OF VALUES OF N
|
|
||||||
* 0 1 2 3 5 9 VALUES OF N
|
|
||||||
* 4 NUMBER OF VALUES OF K
|
|
||||||
* 0 1 2 4 VALUES OF K
|
|
||||||
* 4 NUMBER OF VALUES OF INCX AND INCY
|
|
||||||
* 1 2 -1 -2 VALUES OF INCX AND INCY
|
|
||||||
* 3 NUMBER OF VALUES OF ALPHA
|
|
||||||
* (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
|
|
||||||
* 3 NUMBER OF VALUES OF BETA
|
|
||||||
* (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
|
|
||||||
* CGEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CGBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CTRMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CTBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CTPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CTRSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CTBSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CTPSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CGERC T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CGERU T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHER T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHPR T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHER2 T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHPR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
*
|
|
||||||
* Dongarra J. J., Du Croz J. J., Hammarling S. and Hanson R. J..
|
|
||||||
* An extended set of Fortran Basic Linear Algebra Subprograms.
|
|
||||||
*
|
|
||||||
* Technical Memoranda Nos. 41 (revision 3) and 81, Mathematics
|
|
||||||
* and Computer Science Division, Argonne National Laboratory,
|
|
||||||
* 9700 South Cass Avenue, Argonne, Illinois 60439, US.
|
|
||||||
*
|
|
||||||
* Or
|
|
||||||
*
|
|
||||||
* NAG Technical Reports TR3/87 and TR4/87, Numerical Algorithms
|
|
||||||
* Group Ltd., NAG Central Office, 256 Banbury Road, Oxford
|
|
||||||
* OX2 7DE, UK, and Numerical Algorithms Group Inc., 1101 31st
|
|
||||||
* Street, Suite 100, Downers Grove, Illinois 60515-1263, USA.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* -- Written on 10-August-1987.
|
|
||||||
* Richard Hanson, Sandia National Labs.
|
|
||||||
* Jeremy Du Croz, NAG Central Office.
|
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NIN
|
INTEGER NIN
|
||||||
|
@ -71,8 +117,8 @@
|
||||||
PARAMETER ( NSUBS = 17 )
|
PARAMETER ( NSUBS = 17 )
|
||||||
COMPLEX ZERO, ONE
|
COMPLEX ZERO, ONE
|
||||||
PARAMETER ( ZERO = ( 0.0, 0.0 ), ONE = ( 1.0, 0.0 ) )
|
PARAMETER ( ZERO = ( 0.0, 0.0 ), ONE = ( 1.0, 0.0 ) )
|
||||||
REAL RZERO, RHALF, RONE
|
REAL RZERO
|
||||||
PARAMETER ( RZERO = 0.0, RHALF = 0.5, RONE = 1.0 )
|
PARAMETER ( RZERO = 0.0 )
|
||||||
INTEGER NMAX, INCMAX
|
INTEGER NMAX, INCMAX
|
||||||
PARAMETER ( NMAX = 65, INCMAX = 2 )
|
PARAMETER ( NMAX = 65, INCMAX = 2 )
|
||||||
INTEGER NINMAX, NIDMAX, NKBMAX, NALMAX, NBEMAX
|
INTEGER NINMAX, NIDMAX, NKBMAX, NALMAX, NBEMAX
|
||||||
|
@ -126,7 +172,7 @@
|
||||||
*
|
*
|
||||||
READ( NIN, FMT = * )SUMMRY
|
READ( NIN, FMT = * )SUMMRY
|
||||||
READ( NIN, FMT = * )NOUT
|
READ( NIN, FMT = * )NOUT
|
||||||
OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
|
OPEN( NOUT, FILE = SUMMRY, STATUS = 'UNKNOWN' )
|
||||||
NOUTC = NOUT
|
NOUTC = NOUT
|
||||||
*
|
*
|
||||||
* Read name and unit number for snapshot output file and open file.
|
* Read name and unit number for snapshot output file and open file.
|
||||||
|
@ -135,7 +181,7 @@
|
||||||
READ( NIN, FMT = * )NTRA
|
READ( NIN, FMT = * )NTRA
|
||||||
TRACE = NTRA.GE.0
|
TRACE = NTRA.GE.0
|
||||||
IF( TRACE )THEN
|
IF( TRACE )THEN
|
||||||
OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
|
OPEN( NTRA, FILE = SNAPS, STATUS = 'UNKNOWN' )
|
||||||
END IF
|
END IF
|
||||||
* Read the flag that directs rewinding of the snapshot file.
|
* Read the flag that directs rewinding of the snapshot file.
|
||||||
READ( NIN, FMT = * )REWI
|
READ( NIN, FMT = * )REWI
|
||||||
|
@ -240,14 +286,7 @@
|
||||||
*
|
*
|
||||||
* Compute EPS (the machine precision).
|
* Compute EPS (the machine precision).
|
||||||
*
|
*
|
||||||
EPS = RONE
|
EPS = EPSILON(RZERO)
|
||||||
90 CONTINUE
|
|
||||||
IF( SDIFF( RONE + EPS, RONE ).EQ.RZERO )
|
|
||||||
$ GO TO 100
|
|
||||||
EPS = RHALF*EPS
|
|
||||||
GO TO 90
|
|
||||||
100 CONTINUE
|
|
||||||
EPS = EPS + EPS
|
|
||||||
WRITE( NOUT, FMT = 9998 )EPS
|
WRITE( NOUT, FMT = 9998 )EPS
|
||||||
*
|
*
|
||||||
* Check the reliability of CMVCH using exact data.
|
* Check the reliability of CMVCH using exact data.
|
||||||
|
@ -3079,7 +3118,6 @@
|
||||||
50 CONTINUE
|
50 CONTINUE
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
60 CONTINUE
|
|
||||||
LCERES = .TRUE.
|
LCERES = .TRUE.
|
||||||
GO TO 80
|
GO TO 80
|
||||||
70 CONTINUE
|
70 CONTINUE
|
||||||
|
|
187
test/cblat3.f
187
test/cblat3.f
|
@ -1,50 +1,96 @@
|
||||||
|
*> \brief \b CBLAT3
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM CBLAT3
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the COMPLEX Level 3 Blas.
|
||||||
|
*>
|
||||||
|
*> The program must be driven by a short data file. The first 14 records
|
||||||
|
*> of the file are read using list-directed input, the last 9 records
|
||||||
|
*> are read using the format ( A6, L2 ). An annotated example of a data
|
||||||
|
*> file can be obtained by deleting the first 3 characters from the
|
||||||
|
*> following 23 lines:
|
||||||
|
*> 'cblat3.out' NAME OF SUMMARY OUTPUT FILE
|
||||||
|
*> 6 UNIT NUMBER OF SUMMARY FILE
|
||||||
|
*> 'CBLAT3.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
||||||
|
*> -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
||||||
|
*> F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
||||||
|
*> F LOGICAL FLAG, T TO STOP ON FAILURES.
|
||||||
|
*> T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
||||||
|
*> 16.0 THRESHOLD VALUE OF TEST RATIO
|
||||||
|
*> 6 NUMBER OF VALUES OF N
|
||||||
|
*> 0 1 2 3 5 9 VALUES OF N
|
||||||
|
*> 3 NUMBER OF VALUES OF ALPHA
|
||||||
|
*> (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
|
||||||
|
*> 3 NUMBER OF VALUES OF BETA
|
||||||
|
*> (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
|
||||||
|
*> CGEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CSYMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CTRMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CTRSM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHERK T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CSYRK T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CHER2K T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> CSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*>
|
||||||
|
*> Further Details
|
||||||
|
*> ===============
|
||||||
|
*>
|
||||||
|
*> See:
|
||||||
|
*>
|
||||||
|
*> Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
|
||||||
|
*> A Set of Level 3 Basic Linear Algebra Subprograms.
|
||||||
|
*>
|
||||||
|
*> Technical Memorandum No.88 (Revision 1), Mathematics and
|
||||||
|
*> Computer Science Division, Argonne National Laboratory, 9700
|
||||||
|
*> South Cass Avenue, Argonne, Illinois 60439, US.
|
||||||
|
*>
|
||||||
|
*> -- Written on 8-February-1989.
|
||||||
|
*> Jack Dongarra, Argonne National Laboratory.
|
||||||
|
*> Iain Duff, AERE Harwell.
|
||||||
|
*> Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
||||||
|
*> Sven Hammarling, Numerical Algorithms Group Ltd.
|
||||||
|
*>
|
||||||
|
*> 10-9-00: Change STATUS='NEW' to 'UNKNOWN' so that the testers
|
||||||
|
*> can be run multiple times without deleting generated
|
||||||
|
*> output files (susan)
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup complex_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM CBLAT3
|
PROGRAM CBLAT3
|
||||||
*
|
*
|
||||||
* Test program for the COMPLEX Level 3 Blas.
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
*
|
*
|
||||||
* The program must be driven by a short data file. The first 14 records
|
* =====================================================================
|
||||||
* of the file are read using list-directed input, the last 9 records
|
|
||||||
* are read using the format ( A6, L2 ). An annotated example of a data
|
|
||||||
* file can be obtained by deleting the first 3 characters from the
|
|
||||||
* following 23 lines:
|
|
||||||
* 'CBLAT3.SUMM' NAME OF SUMMARY OUTPUT FILE
|
|
||||||
* 6 UNIT NUMBER OF SUMMARY FILE
|
|
||||||
* 'CBLAT3.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
|
||||||
* -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
|
||||||
* F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
|
||||||
* F LOGICAL FLAG, T TO STOP ON FAILURES.
|
|
||||||
* T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
|
||||||
* 16.0 THRESHOLD VALUE OF TEST RATIO
|
|
||||||
* 6 NUMBER OF VALUES OF N
|
|
||||||
* 0 1 2 3 5 9 VALUES OF N
|
|
||||||
* 3 NUMBER OF VALUES OF ALPHA
|
|
||||||
* (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
|
|
||||||
* 3 NUMBER OF VALUES OF BETA
|
|
||||||
* (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
|
|
||||||
* CGEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CSYMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CTRMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CTRSM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHERK T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CSYRK T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CHER2K T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* CSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
*
|
|
||||||
* Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
|
|
||||||
* A Set of Level 3 Basic Linear Algebra Subprograms.
|
|
||||||
*
|
|
||||||
* Technical Memorandum No.88 (Revision 1), Mathematics and
|
|
||||||
* Computer Science Division, Argonne National Laboratory, 9700
|
|
||||||
* South Cass Avenue, Argonne, Illinois 60439, US.
|
|
||||||
*
|
|
||||||
* -- Written on 8-February-1989.
|
|
||||||
* Jack Dongarra, Argonne National Laboratory.
|
|
||||||
* Iain Duff, AERE Harwell.
|
|
||||||
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
|
||||||
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NIN
|
INTEGER NIN
|
||||||
|
@ -53,8 +99,8 @@
|
||||||
PARAMETER ( NSUBS = 9 )
|
PARAMETER ( NSUBS = 9 )
|
||||||
COMPLEX ZERO, ONE
|
COMPLEX ZERO, ONE
|
||||||
PARAMETER ( ZERO = ( 0.0, 0.0 ), ONE = ( 1.0, 0.0 ) )
|
PARAMETER ( ZERO = ( 0.0, 0.0 ), ONE = ( 1.0, 0.0 ) )
|
||||||
REAL RZERO, RHALF, RONE
|
REAL RZERO
|
||||||
PARAMETER ( RZERO = 0.0, RHALF = 0.5, RONE = 1.0 )
|
PARAMETER ( RZERO = 0.0 )
|
||||||
INTEGER NMAX
|
INTEGER NMAX
|
||||||
PARAMETER ( NMAX = 65 )
|
PARAMETER ( NMAX = 65 )
|
||||||
INTEGER NIDMAX, NALMAX, NBEMAX
|
INTEGER NIDMAX, NALMAX, NBEMAX
|
||||||
|
@ -103,7 +149,7 @@
|
||||||
*
|
*
|
||||||
READ( NIN, FMT = * )SUMMRY
|
READ( NIN, FMT = * )SUMMRY
|
||||||
READ( NIN, FMT = * )NOUT
|
READ( NIN, FMT = * )NOUT
|
||||||
OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
|
OPEN( NOUT, FILE = SUMMRY )
|
||||||
NOUTC = NOUT
|
NOUTC = NOUT
|
||||||
*
|
*
|
||||||
* Read name and unit number for snapshot output file and open file.
|
* Read name and unit number for snapshot output file and open file.
|
||||||
|
@ -112,7 +158,7 @@
|
||||||
READ( NIN, FMT = * )NTRA
|
READ( NIN, FMT = * )NTRA
|
||||||
TRACE = NTRA.GE.0
|
TRACE = NTRA.GE.0
|
||||||
IF( TRACE )THEN
|
IF( TRACE )THEN
|
||||||
OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
|
OPEN( NTRA, FILE = SNAPS )
|
||||||
END IF
|
END IF
|
||||||
* Read the flag that directs rewinding of the snapshot file.
|
* Read the flag that directs rewinding of the snapshot file.
|
||||||
READ( NIN, FMT = * )REWI
|
READ( NIN, FMT = * )REWI
|
||||||
|
@ -189,14 +235,7 @@
|
||||||
*
|
*
|
||||||
* Compute EPS (the machine precision).
|
* Compute EPS (the machine precision).
|
||||||
*
|
*
|
||||||
EPS = RONE
|
EPS = EPSILON(RZERO)
|
||||||
70 CONTINUE
|
|
||||||
IF( SDIFF( RONE + EPS, RONE ).EQ.RZERO )
|
|
||||||
$ GO TO 80
|
|
||||||
EPS = RHALF*EPS
|
|
||||||
GO TO 70
|
|
||||||
80 CONTINUE
|
|
||||||
EPS = EPS + EPS
|
|
||||||
WRITE( NOUT, FMT = 9998 )EPS
|
WRITE( NOUT, FMT = 9998 )EPS
|
||||||
*
|
*
|
||||||
* Check the reliability of CMMCH using exact data.
|
* Check the reliability of CMMCH using exact data.
|
||||||
|
@ -1301,8 +1340,6 @@
|
||||||
NC = 0
|
NC = 0
|
||||||
RESET = .TRUE.
|
RESET = .TRUE.
|
||||||
ERRMAX = RZERO
|
ERRMAX = RZERO
|
||||||
RALS = RONE
|
|
||||||
RBETS = RONE
|
|
||||||
*
|
*
|
||||||
DO 100 IN = 1, NIDIM
|
DO 100 IN = 1, NIDIM
|
||||||
N = IDIM( IN )
|
N = IDIM( IN )
|
||||||
|
@ -1948,7 +1985,7 @@
|
||||||
*
|
*
|
||||||
* Tests the error exits from the Level 3 Blas.
|
* Tests the error exits from the Level 3 Blas.
|
||||||
* Requires a special version of the error-handling routine XERBLA.
|
* Requires a special version of the error-handling routine XERBLA.
|
||||||
* ALPHA, RALPHA, BETA, RBETA, A, B and C should not need to be defined.
|
* A, B and C should not need to be defined.
|
||||||
*
|
*
|
||||||
* Auxiliary routine for test program for Level 3 Blas.
|
* Auxiliary routine for test program for Level 3 Blas.
|
||||||
*
|
*
|
||||||
|
@ -1958,12 +1995,19 @@
|
||||||
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
||||||
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
||||||
*
|
*
|
||||||
|
* 3-19-92: Initialize ALPHA, BETA, RALPHA, and RBETA (eca)
|
||||||
|
* 3-19-92: Fix argument 12 in calls to CSYMM and CHEMM
|
||||||
|
* with INFOT = 9 (eca)
|
||||||
|
*
|
||||||
* .. Scalar Arguments ..
|
* .. Scalar Arguments ..
|
||||||
INTEGER ISNUM, NOUT
|
INTEGER ISNUM, NOUT
|
||||||
CHARACTER*6 SRNAMT
|
CHARACTER*6 SRNAMT
|
||||||
* .. Scalars in Common ..
|
* .. Scalars in Common ..
|
||||||
INTEGER INFOT, NOUTC
|
INTEGER INFOT, NOUTC
|
||||||
LOGICAL LERR, OK
|
LOGICAL LERR, OK
|
||||||
|
* .. Parameters ..
|
||||||
|
REAL ONE, TWO
|
||||||
|
PARAMETER ( ONE = 1.0E0, TWO = 2.0E0 )
|
||||||
* .. Local Scalars ..
|
* .. Local Scalars ..
|
||||||
COMPLEX ALPHA, BETA
|
COMPLEX ALPHA, BETA
|
||||||
REAL RALPHA, RBETA
|
REAL RALPHA, RBETA
|
||||||
|
@ -1981,6 +2025,14 @@
|
||||||
* LERR is set to .TRUE. by the special version of XERBLA each time
|
* LERR is set to .TRUE. by the special version of XERBLA each time
|
||||||
* it is called, and is then tested and re-set by CHKXER.
|
* it is called, and is then tested and re-set by CHKXER.
|
||||||
LERR = .FALSE.
|
LERR = .FALSE.
|
||||||
|
*
|
||||||
|
* Initialize ALPHA, BETA, RALPHA, and RBETA.
|
||||||
|
*
|
||||||
|
ALPHA = CMPLX( ONE, -ONE )
|
||||||
|
BETA = CMPLX( TWO, -TWO )
|
||||||
|
RALPHA = ONE
|
||||||
|
RBETA = TWO
|
||||||
|
*
|
||||||
GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
|
GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
|
||||||
$ 90 )ISNUM
|
$ 90 )ISNUM
|
||||||
10 INFOT = 1
|
10 INFOT = 1
|
||||||
|
@ -2207,16 +2259,16 @@
|
||||||
CALL CHEMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL CHEMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL CHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL CHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL CHEMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL CHEMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL CHEMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL CHEMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL CHEMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL CHEMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 12
|
INFOT = 12
|
||||||
CALL CHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
CALL CHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
||||||
|
@ -2274,16 +2326,16 @@
|
||||||
CALL CSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL CSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL CSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL CSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL CSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL CSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL CSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL CSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL CSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL CSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 12
|
INFOT = 12
|
||||||
CALL CSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
CALL CSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
||||||
|
@ -3270,7 +3322,6 @@
|
||||||
50 CONTINUE
|
50 CONTINUE
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
60 CONTINUE
|
|
||||||
LCERES = .TRUE.
|
LCERES = .TRUE.
|
||||||
GO TO 80
|
GO TO 80
|
||||||
70 CONTINUE
|
70 CONTINUE
|
||||||
|
|
186
test/dblat2.f
186
test/dblat2.f
|
@ -1,75 +1,121 @@
|
||||||
|
*> \brief \b DBLAT2
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM DBLAT2
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the DOUBLE PRECISION Level 2 Blas.
|
||||||
|
*>
|
||||||
|
*> The program must be driven by a short data file. The first 18 records
|
||||||
|
*> of the file are read using list-directed input, the last 16 records
|
||||||
|
*> are read using the format ( A6, L2 ). An annotated example of a data
|
||||||
|
*> file can be obtained by deleting the first 3 characters from the
|
||||||
|
*> following 34 lines:
|
||||||
|
*> 'dblat2.out' NAME OF SUMMARY OUTPUT FILE
|
||||||
|
*> 6 UNIT NUMBER OF SUMMARY FILE
|
||||||
|
*> 'DBLAT2.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
||||||
|
*> -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
||||||
|
*> F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
||||||
|
*> F LOGICAL FLAG, T TO STOP ON FAILURES.
|
||||||
|
*> T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
||||||
|
*> 16.0 THRESHOLD VALUE OF TEST RATIO
|
||||||
|
*> 6 NUMBER OF VALUES OF N
|
||||||
|
*> 0 1 2 3 5 9 VALUES OF N
|
||||||
|
*> 4 NUMBER OF VALUES OF K
|
||||||
|
*> 0 1 2 4 VALUES OF K
|
||||||
|
*> 4 NUMBER OF VALUES OF INCX AND INCY
|
||||||
|
*> 1 2 -1 -2 VALUES OF INCX AND INCY
|
||||||
|
*> 3 NUMBER OF VALUES OF ALPHA
|
||||||
|
*> 0.0 1.0 0.7 VALUES OF ALPHA
|
||||||
|
*> 3 NUMBER OF VALUES OF BETA
|
||||||
|
*> 0.0 1.0 0.9 VALUES OF BETAC
|
||||||
|
*> DGEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DGBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSYMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DTRMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DTBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DTPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DTRSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DTBSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DTPSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DGER T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSYR T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSPR T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSYR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSPR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*>
|
||||||
|
*> Further Details
|
||||||
|
*> ===============
|
||||||
|
*>
|
||||||
|
*> See:
|
||||||
|
*>
|
||||||
|
*> Dongarra J. J., Du Croz J. J., Hammarling S. and Hanson R. J..
|
||||||
|
*> An extended set of Fortran Basic Linear Algebra Subprograms.
|
||||||
|
*>
|
||||||
|
*> Technical Memoranda Nos. 41 (revision 3) and 81, Mathematics
|
||||||
|
*> and Computer Science Division, Argonne National Laboratory,
|
||||||
|
*> 9700 South Cass Avenue, Argonne, Illinois 60439, US.
|
||||||
|
*>
|
||||||
|
*> Or
|
||||||
|
*>
|
||||||
|
*> NAG Technical Reports TR3/87 and TR4/87, Numerical Algorithms
|
||||||
|
*> Group Ltd., NAG Central Office, 256 Banbury Road, Oxford
|
||||||
|
*> OX2 7DE, UK, and Numerical Algorithms Group Inc., 1101 31st
|
||||||
|
*> Street, Suite 100, Downers Grove, Illinois 60515-1263, USA.
|
||||||
|
*>
|
||||||
|
*>
|
||||||
|
*> -- Written on 10-August-1987.
|
||||||
|
*> Richard Hanson, Sandia National Labs.
|
||||||
|
*> Jeremy Du Croz, NAG Central Office.
|
||||||
|
*>
|
||||||
|
*> 10-9-00: Change STATUS='NEW' to 'UNKNOWN' so that the testers
|
||||||
|
*> can be run multiple times without deleting generated
|
||||||
|
*> output files (susan)
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup double_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM DBLAT2
|
PROGRAM DBLAT2
|
||||||
*
|
*
|
||||||
* Test program for the DOUBLE PRECISION Level 2 Blas.
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
*
|
*
|
||||||
* The program must be driven by a short data file. The first 18 records
|
* =====================================================================
|
||||||
* of the file are read using list-directed input, the last 16 records
|
|
||||||
* are read using the format ( A6, L2 ). An annotated example of a data
|
|
||||||
* file can be obtained by deleting the first 3 characters from the
|
|
||||||
* following 34 lines:
|
|
||||||
* 'DBLAT2.SUMM' NAME OF SUMMARY OUTPUT FILE
|
|
||||||
* 6 UNIT NUMBER OF SUMMARY FILE
|
|
||||||
* 'DBLAT2.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
|
||||||
* -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
|
||||||
* F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
|
||||||
* F LOGICAL FLAG, T TO STOP ON FAILURES.
|
|
||||||
* T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
|
||||||
* 16.0 THRESHOLD VALUE OF TEST RATIO
|
|
||||||
* 6 NUMBER OF VALUES OF N
|
|
||||||
* 0 1 2 3 5 9 VALUES OF N
|
|
||||||
* 4 NUMBER OF VALUES OF K
|
|
||||||
* 0 1 2 4 VALUES OF K
|
|
||||||
* 4 NUMBER OF VALUES OF INCX AND INCY
|
|
||||||
* 1 2 -1 -2 VALUES OF INCX AND INCY
|
|
||||||
* 3 NUMBER OF VALUES OF ALPHA
|
|
||||||
* 0.0 1.0 0.7 VALUES OF ALPHA
|
|
||||||
* 3 NUMBER OF VALUES OF BETA
|
|
||||||
* 0.0 1.0 0.9 VALUES OF BETA
|
|
||||||
* DGEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DGBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSYMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DTRMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DTBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DTPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DTRSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DTBSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DTPSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DGER T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSYR T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSPR T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSYR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSPR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
*
|
|
||||||
* Dongarra J. J., Du Croz J. J., Hammarling S. and Hanson R. J..
|
|
||||||
* An extended set of Fortran Basic Linear Algebra Subprograms.
|
|
||||||
*
|
|
||||||
* Technical Memoranda Nos. 41 (revision 3) and 81, Mathematics
|
|
||||||
* and Computer Science Division, Argonne National Laboratory,
|
|
||||||
* 9700 South Cass Avenue, Argonne, Illinois 60439, US.
|
|
||||||
*
|
|
||||||
* Or
|
|
||||||
*
|
|
||||||
* NAG Technical Reports TR3/87 and TR4/87, Numerical Algorithms
|
|
||||||
* Group Ltd., NAG Central Office, 256 Banbury Road, Oxford
|
|
||||||
* OX2 7DE, UK, and Numerical Algorithms Group Inc., 1101 31st
|
|
||||||
* Street, Suite 100, Downers Grove, Illinois 60515-1263, USA.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* -- Written on 10-August-1987.
|
|
||||||
* Richard Hanson, Sandia National Labs.
|
|
||||||
* Jeremy Du Croz, NAG Central Office.
|
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NIN
|
INTEGER NIN
|
||||||
PARAMETER ( NIN = 5 )
|
PARAMETER ( NIN = 5 )
|
||||||
INTEGER NSUBS
|
INTEGER NSUBS
|
||||||
PARAMETER ( NSUBS = 16 )
|
PARAMETER ( NSUBS = 16 )
|
||||||
DOUBLE PRECISION ZERO, HALF, ONE
|
DOUBLE PRECISION ZERO, ONE
|
||||||
PARAMETER ( ZERO = 0.0D0, HALF = 0.5D0, ONE = 1.0D0 )
|
PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 )
|
||||||
INTEGER NMAX, INCMAX
|
INTEGER NMAX, INCMAX
|
||||||
PARAMETER ( NMAX = 65, INCMAX = 2 )
|
PARAMETER ( NMAX = 65, INCMAX = 2 )
|
||||||
INTEGER NINMAX, NIDMAX, NKBMAX, NALMAX, NBEMAX
|
INTEGER NINMAX, NIDMAX, NKBMAX, NALMAX, NBEMAX
|
||||||
|
@ -121,7 +167,7 @@
|
||||||
*
|
*
|
||||||
READ( NIN, FMT = * )SUMMRY
|
READ( NIN, FMT = * )SUMMRY
|
||||||
READ( NIN, FMT = * )NOUT
|
READ( NIN, FMT = * )NOUT
|
||||||
OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
|
OPEN( NOUT, FILE = SUMMRY, STATUS = 'UNKNOWN' )
|
||||||
NOUTC = NOUT
|
NOUTC = NOUT
|
||||||
*
|
*
|
||||||
* Read name and unit number for snapshot output file and open file.
|
* Read name and unit number for snapshot output file and open file.
|
||||||
|
@ -130,7 +176,7 @@
|
||||||
READ( NIN, FMT = * )NTRA
|
READ( NIN, FMT = * )NTRA
|
||||||
TRACE = NTRA.GE.0
|
TRACE = NTRA.GE.0
|
||||||
IF( TRACE )THEN
|
IF( TRACE )THEN
|
||||||
OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
|
OPEN( NTRA, FILE = SNAPS, STATUS = 'UNKNOWN' )
|
||||||
END IF
|
END IF
|
||||||
* Read the flag that directs rewinding of the snapshot file.
|
* Read the flag that directs rewinding of the snapshot file.
|
||||||
READ( NIN, FMT = * )REWI
|
READ( NIN, FMT = * )REWI
|
||||||
|
@ -235,14 +281,7 @@
|
||||||
*
|
*
|
||||||
* Compute EPS (the machine precision).
|
* Compute EPS (the machine precision).
|
||||||
*
|
*
|
||||||
EPS = ONE
|
EPS = EPSILON(ZERO)
|
||||||
90 CONTINUE
|
|
||||||
IF( DDIFF( ONE + EPS, ONE ).EQ.ZERO )
|
|
||||||
$ GO TO 100
|
|
||||||
EPS = HALF*EPS
|
|
||||||
GO TO 90
|
|
||||||
100 CONTINUE
|
|
||||||
EPS = EPS + EPS
|
|
||||||
WRITE( NOUT, FMT = 9998 )EPS
|
WRITE( NOUT, FMT = 9998 )EPS
|
||||||
*
|
*
|
||||||
* Check the reliability of DMVCH using exact data.
|
* Check the reliability of DMVCH using exact data.
|
||||||
|
@ -2982,7 +3021,6 @@
|
||||||
50 CONTINUE
|
50 CONTINUE
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
60 CONTINUE
|
|
||||||
LDERES = .TRUE.
|
LDERES = .TRUE.
|
||||||
GO TO 80
|
GO TO 80
|
||||||
70 CONTINUE
|
70 CONTINUE
|
||||||
|
|
168
test/dblat3.f
168
test/dblat3.f
|
@ -1,55 +1,101 @@
|
||||||
|
*> \brief \b DBLAT3
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM DBLAT3
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the DOUBLE PRECISION Level 3 Blas.
|
||||||
|
*>
|
||||||
|
*> The program must be driven by a short data file. The first 14 records
|
||||||
|
*> of the file are read using list-directed input, the last 6 records
|
||||||
|
*> are read using the format ( A6, L2 ). An annotated example of a data
|
||||||
|
*> file can be obtained by deleting the first 3 characters from the
|
||||||
|
*> following 20 lines:
|
||||||
|
*> 'dblat3.out' NAME OF SUMMARY OUTPUT FILE
|
||||||
|
*> 6 UNIT NUMBER OF SUMMARY FILE
|
||||||
|
*> 'DBLAT3.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
||||||
|
*> -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
||||||
|
*> F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
||||||
|
*> F LOGICAL FLAG, T TO STOP ON FAILURES.
|
||||||
|
*> T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
||||||
|
*> 16.0 THRESHOLD VALUE OF TEST RATIO
|
||||||
|
*> 6 NUMBER OF VALUES OF N
|
||||||
|
*> 0 1 2 3 5 9 VALUES OF N
|
||||||
|
*> 3 NUMBER OF VALUES OF ALPHA
|
||||||
|
*> 0.0 1.0 0.7 VALUES OF ALPHA
|
||||||
|
*> 3 NUMBER OF VALUES OF BETA
|
||||||
|
*> 0.0 1.0 1.3 VALUES OF BETA
|
||||||
|
*> DGEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSYMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DTRMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DTRSM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSYRK T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> DSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*>
|
||||||
|
*> Further Details
|
||||||
|
*> ===============
|
||||||
|
*>
|
||||||
|
*> See:
|
||||||
|
*>
|
||||||
|
*> Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
|
||||||
|
*> A Set of Level 3 Basic Linear Algebra Subprograms.
|
||||||
|
*>
|
||||||
|
*> Technical Memorandum No.88 (Revision 1), Mathematics and
|
||||||
|
*> Computer Science Division, Argonne National Laboratory, 9700
|
||||||
|
*> South Cass Avenue, Argonne, Illinois 60439, US.
|
||||||
|
*>
|
||||||
|
*> -- Written on 8-February-1989.
|
||||||
|
*> Jack Dongarra, Argonne National Laboratory.
|
||||||
|
*> Iain Duff, AERE Harwell.
|
||||||
|
*> Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
||||||
|
*> Sven Hammarling, Numerical Algorithms Group Ltd.
|
||||||
|
*>
|
||||||
|
*> 10-9-00: Change STATUS='NEW' to 'UNKNOWN' so that the testers
|
||||||
|
*> can be run multiple times without deleting generated
|
||||||
|
*> output files (susan)
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup double_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM DBLAT3
|
PROGRAM DBLAT3
|
||||||
*
|
*
|
||||||
* Test program for the DOUBLE PRECISION Level 3 Blas.
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
*
|
*
|
||||||
* The program must be driven by a short data file. The first 14 records
|
* =====================================================================
|
||||||
* of the file are read using list-directed input, the last 6 records
|
|
||||||
* are read using the format ( A6, L2 ). An annotated example of a data
|
|
||||||
* file can be obtained by deleting the first 3 characters from the
|
|
||||||
* following 20 lines:
|
|
||||||
* 'DBLAT3.SUMM' NAME OF SUMMARY OUTPUT FILE
|
|
||||||
* 6 UNIT NUMBER OF SUMMARY FILE
|
|
||||||
* 'DBLAT3.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
|
||||||
* -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
|
||||||
* F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
|
||||||
* F LOGICAL FLAG, T TO STOP ON FAILURES.
|
|
||||||
* T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
|
||||||
* 16.0 THRESHOLD VALUE OF TEST RATIO
|
|
||||||
* 6 NUMBER OF VALUES OF N
|
|
||||||
* 0 1 2 3 5 9 VALUES OF N
|
|
||||||
* 3 NUMBER OF VALUES OF ALPHA
|
|
||||||
* 0.0 1.0 0.7 VALUES OF ALPHA
|
|
||||||
* 3 NUMBER OF VALUES OF BETA
|
|
||||||
* 0.0 1.0 1.3 VALUES OF BETA
|
|
||||||
* DGEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSYMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DTRMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DTRSM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSYRK T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* DSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
*
|
|
||||||
* Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
|
|
||||||
* A Set of Level 3 Basic Linear Algebra Subprograms.
|
|
||||||
*
|
|
||||||
* Technical Memorandum No.88 (Revision 1), Mathematics and
|
|
||||||
* Computer Science Division, Argonne National Laboratory, 9700
|
|
||||||
* South Cass Avenue, Argonne, Illinois 60439, US.
|
|
||||||
*
|
|
||||||
* -- Written on 8-February-1989.
|
|
||||||
* Jack Dongarra, Argonne National Laboratory.
|
|
||||||
* Iain Duff, AERE Harwell.
|
|
||||||
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
|
||||||
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NIN
|
INTEGER NIN
|
||||||
PARAMETER ( NIN = 5 )
|
PARAMETER ( NIN = 5 )
|
||||||
INTEGER NSUBS
|
INTEGER NSUBS
|
||||||
PARAMETER ( NSUBS = 6 )
|
PARAMETER ( NSUBS = 6 )
|
||||||
DOUBLE PRECISION ZERO, HALF, ONE
|
DOUBLE PRECISION ZERO, ONE
|
||||||
PARAMETER ( ZERO = 0.0D0, HALF = 0.5D0, ONE = 1.0D0 )
|
PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 )
|
||||||
INTEGER NMAX
|
INTEGER NMAX
|
||||||
PARAMETER ( NMAX = 65 )
|
PARAMETER ( NMAX = 65 )
|
||||||
INTEGER NIDMAX, NALMAX, NBEMAX
|
INTEGER NIDMAX, NALMAX, NBEMAX
|
||||||
|
@ -96,7 +142,7 @@
|
||||||
*
|
*
|
||||||
READ( NIN, FMT = * )SUMMRY
|
READ( NIN, FMT = * )SUMMRY
|
||||||
READ( NIN, FMT = * )NOUT
|
READ( NIN, FMT = * )NOUT
|
||||||
OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
|
OPEN( NOUT, FILE = SUMMRY, STATUS = 'UNKNOWN' )
|
||||||
NOUTC = NOUT
|
NOUTC = NOUT
|
||||||
*
|
*
|
||||||
* Read name and unit number for snapshot output file and open file.
|
* Read name and unit number for snapshot output file and open file.
|
||||||
|
@ -105,7 +151,7 @@
|
||||||
READ( NIN, FMT = * )NTRA
|
READ( NIN, FMT = * )NTRA
|
||||||
TRACE = NTRA.GE.0
|
TRACE = NTRA.GE.0
|
||||||
IF( TRACE )THEN
|
IF( TRACE )THEN
|
||||||
OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
|
OPEN( NTRA, FILE = SNAPS, STATUS = 'UNKNOWN' )
|
||||||
END IF
|
END IF
|
||||||
* Read the flag that directs rewinding of the snapshot file.
|
* Read the flag that directs rewinding of the snapshot file.
|
||||||
READ( NIN, FMT = * )REWI
|
READ( NIN, FMT = * )REWI
|
||||||
|
@ -182,14 +228,7 @@
|
||||||
*
|
*
|
||||||
* Compute EPS (the machine precision).
|
* Compute EPS (the machine precision).
|
||||||
*
|
*
|
||||||
EPS = ONE
|
EPS = EPSILON(ZERO)
|
||||||
70 CONTINUE
|
|
||||||
IF( DDIFF( ONE + EPS, ONE ).EQ.ZERO )
|
|
||||||
$ GO TO 80
|
|
||||||
EPS = HALF*EPS
|
|
||||||
GO TO 70
|
|
||||||
80 CONTINUE
|
|
||||||
EPS = EPS + EPS
|
|
||||||
WRITE( NOUT, FMT = 9998 )EPS
|
WRITE( NOUT, FMT = 9998 )EPS
|
||||||
*
|
*
|
||||||
* Check the reliability of DMMCH using exact data.
|
* Check the reliability of DMMCH using exact data.
|
||||||
|
@ -1802,7 +1841,7 @@
|
||||||
*
|
*
|
||||||
* Tests the error exits from the Level 3 Blas.
|
* Tests the error exits from the Level 3 Blas.
|
||||||
* Requires a special version of the error-handling routine XERBLA.
|
* Requires a special version of the error-handling routine XERBLA.
|
||||||
* ALPHA, BETA, A, B and C should not need to be defined.
|
* A, B and C should not need to be defined.
|
||||||
*
|
*
|
||||||
* Auxiliary routine for test program for Level 3 Blas.
|
* Auxiliary routine for test program for Level 3 Blas.
|
||||||
*
|
*
|
||||||
|
@ -1812,12 +1851,18 @@
|
||||||
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
||||||
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
||||||
*
|
*
|
||||||
|
* 3-19-92: Initialize ALPHA and BETA (eca)
|
||||||
|
* 3-19-92: Fix argument 12 in calls to SSYMM with INFOT = 9 (eca)
|
||||||
|
*
|
||||||
* .. Scalar Arguments ..
|
* .. Scalar Arguments ..
|
||||||
INTEGER ISNUM, NOUT
|
INTEGER ISNUM, NOUT
|
||||||
CHARACTER*6 SRNAMT
|
CHARACTER*6 SRNAMT
|
||||||
* .. Scalars in Common ..
|
* .. Scalars in Common ..
|
||||||
INTEGER INFOT, NOUTC
|
INTEGER INFOT, NOUTC
|
||||||
LOGICAL LERR, OK
|
LOGICAL LERR, OK
|
||||||
|
* .. Parameters ..
|
||||||
|
DOUBLE PRECISION ONE, TWO
|
||||||
|
PARAMETER ( ONE = 1.0D0, TWO = 2.0D0 )
|
||||||
* .. Local Scalars ..
|
* .. Local Scalars ..
|
||||||
DOUBLE PRECISION ALPHA, BETA
|
DOUBLE PRECISION ALPHA, BETA
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
|
@ -1834,6 +1879,12 @@
|
||||||
* LERR is set to .TRUE. by the special version of XERBLA each time
|
* LERR is set to .TRUE. by the special version of XERBLA each time
|
||||||
* it is called, and is then tested and re-set by CHKXER.
|
* it is called, and is then tested and re-set by CHKXER.
|
||||||
LERR = .FALSE.
|
LERR = .FALSE.
|
||||||
|
*
|
||||||
|
* Initialize ALPHA and BETA.
|
||||||
|
*
|
||||||
|
ALPHA = ONE
|
||||||
|
BETA = TWO
|
||||||
|
*
|
||||||
GO TO ( 10, 20, 30, 40, 50, 60 )ISNUM
|
GO TO ( 10, 20, 30, 40, 50, 60 )ISNUM
|
||||||
10 INFOT = 1
|
10 INFOT = 1
|
||||||
CALL DGEMM( '/', 'N', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL DGEMM( '/', 'N', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
||||||
|
@ -1963,16 +2014,16 @@
|
||||||
CALL DSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL DSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL DSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL DSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL DSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL DSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL DSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL DSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL DSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL DSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 12
|
INFOT = 12
|
||||||
CALL DSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
CALL DSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
||||||
|
@ -2660,7 +2711,6 @@
|
||||||
50 CONTINUE
|
50 CONTINUE
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
60 CONTINUE
|
|
||||||
LDERES = .TRUE.
|
LDERES = .TRUE.
|
||||||
GO TO 80
|
GO TO 80
|
||||||
70 CONTINUE
|
70 CONTINUE
|
||||||
|
|
186
test/sblat2.f
186
test/sblat2.f
|
@ -1,75 +1,121 @@
|
||||||
|
*> \brief \b SBLAT2
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM SBLAT2
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the REAL Level 2 Blas.
|
||||||
|
*>
|
||||||
|
*> The program must be driven by a short data file. The first 18 records
|
||||||
|
*> of the file are read using list-directed input, the last 16 records
|
||||||
|
*> are read using the format ( A6, L2 ). An annotated example of a data
|
||||||
|
*> file can be obtained by deleting the first 3 characters from the
|
||||||
|
*> following 34 lines:
|
||||||
|
*> 'sblat2.out' NAME OF SUMMARY OUTPUT FILE
|
||||||
|
*> 6 UNIT NUMBER OF SUMMARY FILE
|
||||||
|
*> 'SBLAT2.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
||||||
|
*> -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
||||||
|
*> F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
||||||
|
*> F LOGICAL FLAG, T TO STOP ON FAILURES.
|
||||||
|
*> T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
||||||
|
*> 16.0 THRESHOLD VALUE OF TEST RATIO
|
||||||
|
*> 6 NUMBER OF VALUES OF N
|
||||||
|
*> 0 1 2 3 5 9 VALUES OF N
|
||||||
|
*> 4 NUMBER OF VALUES OF K
|
||||||
|
*> 0 1 2 4 VALUES OF K
|
||||||
|
*> 4 NUMBER OF VALUES OF INCX AND INCY
|
||||||
|
*> 1 2 -1 -2 VALUES OF INCX AND INCY
|
||||||
|
*> 3 NUMBER OF VALUES OF ALPHA
|
||||||
|
*> 0.0 1.0 0.7 VALUES OF ALPHA
|
||||||
|
*> 3 NUMBER OF VALUES OF BETA
|
||||||
|
*> 0.0 1.0 0.9 VALUES OF BETA
|
||||||
|
*> SGEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SGBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSYMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> STRMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> STBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> STPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> STRSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> STBSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> STPSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SGER T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSYR T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSPR T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSYR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSPR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*>
|
||||||
|
*> Further Details
|
||||||
|
*> ===============
|
||||||
|
*>
|
||||||
|
*> See:
|
||||||
|
*>
|
||||||
|
*> Dongarra J. J., Du Croz J. J., Hammarling S. and Hanson R. J..
|
||||||
|
*> An extended set of Fortran Basic Linear Algebra Subprograms.
|
||||||
|
*>
|
||||||
|
*> Technical Memoranda Nos. 41 (revision 3) and 81, Mathematics
|
||||||
|
*> and Computer Science Division, Argonne National Laboratory,
|
||||||
|
*> 9700 South Cass Avenue, Argonne, Illinois 60439, US.
|
||||||
|
*>
|
||||||
|
*> Or
|
||||||
|
*>
|
||||||
|
*> NAG Technical Reports TR3/87 and TR4/87, Numerical Algorithms
|
||||||
|
*> Group Ltd., NAG Central Office, 256 Banbury Road, Oxford
|
||||||
|
*> OX2 7DE, UK, and Numerical Algorithms Group Inc., 1101 31st
|
||||||
|
*> Street, Suite 100, Downers Grove, Illinois 60515-1263, USA.
|
||||||
|
*>
|
||||||
|
*>
|
||||||
|
*> -- Written on 10-August-1987.
|
||||||
|
*> Richard Hanson, Sandia National Labs.
|
||||||
|
*> Jeremy Du Croz, NAG Central Office.
|
||||||
|
*>
|
||||||
|
*> 10-9-00: Change STATUS='NEW' to 'UNKNOWN' so that the testers
|
||||||
|
*> can be run multiple times without deleting generated
|
||||||
|
*> output files (susan)
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup single_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM SBLAT2
|
PROGRAM SBLAT2
|
||||||
*
|
*
|
||||||
* Test program for the REAL Level 2 Blas.
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
*
|
*
|
||||||
* The program must be driven by a short data file. The first 18 records
|
* =====================================================================
|
||||||
* of the file are read using list-directed input, the last 16 records
|
|
||||||
* are read using the format ( A6, L2 ). An annotated example of a data
|
|
||||||
* file can be obtained by deleting the first 3 characters from the
|
|
||||||
* following 34 lines:
|
|
||||||
* 'SBLAT2.SUMM' NAME OF SUMMARY OUTPUT FILE
|
|
||||||
* 6 UNIT NUMBER OF SUMMARY FILE
|
|
||||||
* 'SBLAT2.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
|
||||||
* -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
|
||||||
* F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
|
||||||
* F LOGICAL FLAG, T TO STOP ON FAILURES.
|
|
||||||
* T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
|
||||||
* 16.0 THRESHOLD VALUE OF TEST RATIO
|
|
||||||
* 6 NUMBER OF VALUES OF N
|
|
||||||
* 0 1 2 3 5 9 VALUES OF N
|
|
||||||
* 4 NUMBER OF VALUES OF K
|
|
||||||
* 0 1 2 4 VALUES OF K
|
|
||||||
* 4 NUMBER OF VALUES OF INCX AND INCY
|
|
||||||
* 1 2 -1 -2 VALUES OF INCX AND INCY
|
|
||||||
* 3 NUMBER OF VALUES OF ALPHA
|
|
||||||
* 0.0 1.0 0.7 VALUES OF ALPHA
|
|
||||||
* 3 NUMBER OF VALUES OF BETA
|
|
||||||
* 0.0 1.0 0.9 VALUES OF BETA
|
|
||||||
* SGEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SGBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSYMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* STRMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* STBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* STPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* STRSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* STBSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* STPSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SGER T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSYR T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSPR T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSYR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSPR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
*
|
|
||||||
* Dongarra J. J., Du Croz J. J., Hammarling S. and Hanson R. J..
|
|
||||||
* An extended set of Fortran Basic Linear Algebra Subprograms.
|
|
||||||
*
|
|
||||||
* Technical Memoranda Nos. 41 (revision 3) and 81, Mathematics
|
|
||||||
* and Computer Science Division, Argonne National Laboratory,
|
|
||||||
* 9700 South Cass Avenue, Argonne, Illinois 60439, US.
|
|
||||||
*
|
|
||||||
* Or
|
|
||||||
*
|
|
||||||
* NAG Technical Reports TR3/87 and TR4/87, Numerical Algorithms
|
|
||||||
* Group Ltd., NAG Central Office, 256 Banbury Road, Oxford
|
|
||||||
* OX2 7DE, UK, and Numerical Algorithms Group Inc., 1101 31st
|
|
||||||
* Street, Suite 100, Downers Grove, Illinois 60515-1263, USA.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* -- Written on 10-August-1987.
|
|
||||||
* Richard Hanson, Sandia National Labs.
|
|
||||||
* Jeremy Du Croz, NAG Central Office.
|
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NIN
|
INTEGER NIN
|
||||||
PARAMETER ( NIN = 5 )
|
PARAMETER ( NIN = 5 )
|
||||||
INTEGER NSUBS
|
INTEGER NSUBS
|
||||||
PARAMETER ( NSUBS = 16 )
|
PARAMETER ( NSUBS = 16 )
|
||||||
REAL ZERO, HALF, ONE
|
REAL ZERO, ONE
|
||||||
PARAMETER ( ZERO = 0.0, HALF = 0.5, ONE = 1.0 )
|
PARAMETER ( ZERO = 0.0, ONE = 1.0 )
|
||||||
INTEGER NMAX, INCMAX
|
INTEGER NMAX, INCMAX
|
||||||
PARAMETER ( NMAX = 65, INCMAX = 2 )
|
PARAMETER ( NMAX = 65, INCMAX = 2 )
|
||||||
INTEGER NINMAX, NIDMAX, NKBMAX, NALMAX, NBEMAX
|
INTEGER NINMAX, NIDMAX, NKBMAX, NALMAX, NBEMAX
|
||||||
|
@ -121,7 +167,7 @@
|
||||||
*
|
*
|
||||||
READ( NIN, FMT = * )SUMMRY
|
READ( NIN, FMT = * )SUMMRY
|
||||||
READ( NIN, FMT = * )NOUT
|
READ( NIN, FMT = * )NOUT
|
||||||
OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
|
OPEN( NOUT, FILE = SUMMRY, STATUS = 'UNKNOWN' )
|
||||||
NOUTC = NOUT
|
NOUTC = NOUT
|
||||||
*
|
*
|
||||||
* Read name and unit number for snapshot output file and open file.
|
* Read name and unit number for snapshot output file and open file.
|
||||||
|
@ -130,7 +176,7 @@
|
||||||
READ( NIN, FMT = * )NTRA
|
READ( NIN, FMT = * )NTRA
|
||||||
TRACE = NTRA.GE.0
|
TRACE = NTRA.GE.0
|
||||||
IF( TRACE )THEN
|
IF( TRACE )THEN
|
||||||
OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
|
OPEN( NTRA, FILE = SNAPS, STATUS = 'UNKNOWN' )
|
||||||
END IF
|
END IF
|
||||||
* Read the flag that directs rewinding of the snapshot file.
|
* Read the flag that directs rewinding of the snapshot file.
|
||||||
READ( NIN, FMT = * )REWI
|
READ( NIN, FMT = * )REWI
|
||||||
|
@ -235,14 +281,7 @@
|
||||||
*
|
*
|
||||||
* Compute EPS (the machine precision).
|
* Compute EPS (the machine precision).
|
||||||
*
|
*
|
||||||
EPS = ONE
|
EPS = EPSILON(ZERO)
|
||||||
90 CONTINUE
|
|
||||||
IF( SDIFF( ONE + EPS, ONE ).EQ.ZERO )
|
|
||||||
$ GO TO 100
|
|
||||||
EPS = HALF*EPS
|
|
||||||
GO TO 90
|
|
||||||
100 CONTINUE
|
|
||||||
EPS = EPS + EPS
|
|
||||||
WRITE( NOUT, FMT = 9998 )EPS
|
WRITE( NOUT, FMT = 9998 )EPS
|
||||||
*
|
*
|
||||||
* Check the reliability of SMVCH using exact data.
|
* Check the reliability of SMVCH using exact data.
|
||||||
|
@ -2982,7 +3021,6 @@
|
||||||
50 CONTINUE
|
50 CONTINUE
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
60 CONTINUE
|
|
||||||
LSERES = .TRUE.
|
LSERES = .TRUE.
|
||||||
GO TO 80
|
GO TO 80
|
||||||
70 CONTINUE
|
70 CONTINUE
|
||||||
|
|
168
test/sblat3.f
168
test/sblat3.f
|
@ -1,55 +1,101 @@
|
||||||
|
*> \brief \b SBLAT3
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM SBLAT3
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the REAL Level 3 Blas.
|
||||||
|
*>
|
||||||
|
*> The program must be driven by a short data file. The first 14 records
|
||||||
|
*> of the file are read using list-directed input, the last 6 records
|
||||||
|
*> are read using the format ( A6, L2 ). An annotated example of a data
|
||||||
|
*> file can be obtained by deleting the first 3 characters from the
|
||||||
|
*> following 20 lines:
|
||||||
|
*> 'sblat3.out' NAME OF SUMMARY OUTPUT FILE
|
||||||
|
*> 6 UNIT NUMBER OF SUMMARY FILE
|
||||||
|
*> 'SBLAT3.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
||||||
|
*> -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
||||||
|
*> F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
||||||
|
*> F LOGICAL FLAG, T TO STOP ON FAILURES.
|
||||||
|
*> T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
||||||
|
*> 16.0 THRESHOLD VALUE OF TEST RATIO
|
||||||
|
*> 6 NUMBER OF VALUES OF N
|
||||||
|
*> 0 1 2 3 5 9 VALUES OF N
|
||||||
|
*> 3 NUMBER OF VALUES OF ALPHA
|
||||||
|
*> 0.0 1.0 0.7 VALUES OF ALPHA
|
||||||
|
*> 3 NUMBER OF VALUES OF BETA
|
||||||
|
*> 0.0 1.0 1.3 VALUES OF BETA
|
||||||
|
*> SGEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSYMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> STRMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> STRSM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSYRK T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> SSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*>
|
||||||
|
*> Further Details
|
||||||
|
*> ===============
|
||||||
|
*>
|
||||||
|
*> See:
|
||||||
|
*>
|
||||||
|
*> Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
|
||||||
|
*> A Set of Level 3 Basic Linear Algebra Subprograms.
|
||||||
|
*>
|
||||||
|
*> Technical Memorandum No.88 (Revision 1), Mathematics and
|
||||||
|
*> Computer Science Division, Argonne National Laboratory, 9700
|
||||||
|
*> South Cass Avenue, Argonne, Illinois 60439, US.
|
||||||
|
*>
|
||||||
|
*> -- Written on 8-February-1989.
|
||||||
|
*> Jack Dongarra, Argonne National Laboratory.
|
||||||
|
*> Iain Duff, AERE Harwell.
|
||||||
|
*> Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
||||||
|
*> Sven Hammarling, Numerical Algorithms Group Ltd.
|
||||||
|
*>
|
||||||
|
*> 10-9-00: Change STATUS='NEW' to 'UNKNOWN' so that the testers
|
||||||
|
*> can be run multiple times without deleting generated
|
||||||
|
*> output files (susan)
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup single_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM SBLAT3
|
PROGRAM SBLAT3
|
||||||
*
|
*
|
||||||
* Test program for the REAL Level 3 Blas.
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
*
|
*
|
||||||
* The program must be driven by a short data file. The first 14 records
|
* =====================================================================
|
||||||
* of the file are read using list-directed input, the last 6 records
|
|
||||||
* are read using the format ( A6, L2 ). An annotated example of a data
|
|
||||||
* file can be obtained by deleting the first 3 characters from the
|
|
||||||
* following 20 lines:
|
|
||||||
* 'SBLAT3.SUMM' NAME OF SUMMARY OUTPUT FILE
|
|
||||||
* 6 UNIT NUMBER OF SUMMARY FILE
|
|
||||||
* 'SBLAT3.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
|
||||||
* -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
|
||||||
* F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
|
||||||
* F LOGICAL FLAG, T TO STOP ON FAILURES.
|
|
||||||
* T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
|
||||||
* 16.0 THRESHOLD VALUE OF TEST RATIO
|
|
||||||
* 6 NUMBER OF VALUES OF N
|
|
||||||
* 0 1 2 3 5 9 VALUES OF N
|
|
||||||
* 3 NUMBER OF VALUES OF ALPHA
|
|
||||||
* 0.0 1.0 0.7 VALUES OF ALPHA
|
|
||||||
* 3 NUMBER OF VALUES OF BETA
|
|
||||||
* 0.0 1.0 1.3 VALUES OF BETA
|
|
||||||
* SGEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSYMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* STRMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* STRSM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSYRK T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* SSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
*
|
|
||||||
* Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
|
|
||||||
* A Set of Level 3 Basic Linear Algebra Subprograms.
|
|
||||||
*
|
|
||||||
* Technical Memorandum No.88 (Revision 1), Mathematics and
|
|
||||||
* Computer Science Division, Argonne National Laboratory, 9700
|
|
||||||
* South Cass Avenue, Argonne, Illinois 60439, US.
|
|
||||||
*
|
|
||||||
* -- Written on 8-February-1989.
|
|
||||||
* Jack Dongarra, Argonne National Laboratory.
|
|
||||||
* Iain Duff, AERE Harwell.
|
|
||||||
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
|
||||||
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NIN
|
INTEGER NIN
|
||||||
PARAMETER ( NIN = 5 )
|
PARAMETER ( NIN = 5 )
|
||||||
INTEGER NSUBS
|
INTEGER NSUBS
|
||||||
PARAMETER ( NSUBS = 6 )
|
PARAMETER ( NSUBS = 6 )
|
||||||
REAL ZERO, HALF, ONE
|
REAL ZERO, ONE
|
||||||
PARAMETER ( ZERO = 0.0, HALF = 0.5, ONE = 1.0 )
|
PARAMETER ( ZERO = 0.0, ONE = 1.0 )
|
||||||
INTEGER NMAX
|
INTEGER NMAX
|
||||||
PARAMETER ( NMAX = 65 )
|
PARAMETER ( NMAX = 65 )
|
||||||
INTEGER NIDMAX, NALMAX, NBEMAX
|
INTEGER NIDMAX, NALMAX, NBEMAX
|
||||||
|
@ -96,7 +142,7 @@
|
||||||
*
|
*
|
||||||
READ( NIN, FMT = * )SUMMRY
|
READ( NIN, FMT = * )SUMMRY
|
||||||
READ( NIN, FMT = * )NOUT
|
READ( NIN, FMT = * )NOUT
|
||||||
OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
|
OPEN( NOUT, FILE = SUMMRY )
|
||||||
NOUTC = NOUT
|
NOUTC = NOUT
|
||||||
*
|
*
|
||||||
* Read name and unit number for snapshot output file and open file.
|
* Read name and unit number for snapshot output file and open file.
|
||||||
|
@ -105,7 +151,7 @@
|
||||||
READ( NIN, FMT = * )NTRA
|
READ( NIN, FMT = * )NTRA
|
||||||
TRACE = NTRA.GE.0
|
TRACE = NTRA.GE.0
|
||||||
IF( TRACE )THEN
|
IF( TRACE )THEN
|
||||||
OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
|
OPEN( NTRA, FILE = SNAPS )
|
||||||
END IF
|
END IF
|
||||||
* Read the flag that directs rewinding of the snapshot file.
|
* Read the flag that directs rewinding of the snapshot file.
|
||||||
READ( NIN, FMT = * )REWI
|
READ( NIN, FMT = * )REWI
|
||||||
|
@ -182,14 +228,7 @@
|
||||||
*
|
*
|
||||||
* Compute EPS (the machine precision).
|
* Compute EPS (the machine precision).
|
||||||
*
|
*
|
||||||
EPS = ONE
|
EPS = EPSILON(ZERO)
|
||||||
70 CONTINUE
|
|
||||||
IF( SDIFF( ONE + EPS, ONE ).EQ.ZERO )
|
|
||||||
$ GO TO 80
|
|
||||||
EPS = HALF*EPS
|
|
||||||
GO TO 70
|
|
||||||
80 CONTINUE
|
|
||||||
EPS = EPS + EPS
|
|
||||||
WRITE( NOUT, FMT = 9998 )EPS
|
WRITE( NOUT, FMT = 9998 )EPS
|
||||||
*
|
*
|
||||||
* Check the reliability of SMMCH using exact data.
|
* Check the reliability of SMMCH using exact data.
|
||||||
|
@ -1802,7 +1841,7 @@
|
||||||
*
|
*
|
||||||
* Tests the error exits from the Level 3 Blas.
|
* Tests the error exits from the Level 3 Blas.
|
||||||
* Requires a special version of the error-handling routine XERBLA.
|
* Requires a special version of the error-handling routine XERBLA.
|
||||||
* ALPHA, BETA, A, B and C should not need to be defined.
|
* A, B and C should not need to be defined.
|
||||||
*
|
*
|
||||||
* Auxiliary routine for test program for Level 3 Blas.
|
* Auxiliary routine for test program for Level 3 Blas.
|
||||||
*
|
*
|
||||||
|
@ -1812,12 +1851,18 @@
|
||||||
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
||||||
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
||||||
*
|
*
|
||||||
|
* 3-19-92: Initialize ALPHA and BETA (eca)
|
||||||
|
* 3-19-92: Fix argument 12 in calls to SSYMM with INFOT = 9 (eca)
|
||||||
|
*
|
||||||
* .. Scalar Arguments ..
|
* .. Scalar Arguments ..
|
||||||
INTEGER ISNUM, NOUT
|
INTEGER ISNUM, NOUT
|
||||||
CHARACTER*6 SRNAMT
|
CHARACTER*6 SRNAMT
|
||||||
* .. Scalars in Common ..
|
* .. Scalars in Common ..
|
||||||
INTEGER INFOT, NOUTC
|
INTEGER INFOT, NOUTC
|
||||||
LOGICAL LERR, OK
|
LOGICAL LERR, OK
|
||||||
|
* .. Parameters ..
|
||||||
|
REAL ONE, TWO
|
||||||
|
PARAMETER ( ONE = 1.0E0, TWO = 2.0E0 )
|
||||||
* .. Local Scalars ..
|
* .. Local Scalars ..
|
||||||
REAL ALPHA, BETA
|
REAL ALPHA, BETA
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
|
@ -1834,6 +1879,12 @@
|
||||||
* LERR is set to .TRUE. by the special version of XERBLA each time
|
* LERR is set to .TRUE. by the special version of XERBLA each time
|
||||||
* it is called, and is then tested and re-set by CHKXER.
|
* it is called, and is then tested and re-set by CHKXER.
|
||||||
LERR = .FALSE.
|
LERR = .FALSE.
|
||||||
|
*
|
||||||
|
* Initialize ALPHA and BETA.
|
||||||
|
*
|
||||||
|
ALPHA = ONE
|
||||||
|
BETA = TWO
|
||||||
|
*
|
||||||
GO TO ( 10, 20, 30, 40, 50, 60 )ISNUM
|
GO TO ( 10, 20, 30, 40, 50, 60 )ISNUM
|
||||||
10 INFOT = 1
|
10 INFOT = 1
|
||||||
CALL SGEMM( '/', 'N', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL SGEMM( '/', 'N', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
||||||
|
@ -1963,16 +2014,16 @@
|
||||||
CALL SSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL SSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL SSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL SSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL SSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL SSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL SSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL SSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL SSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL SSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 12
|
INFOT = 12
|
||||||
CALL SSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
CALL SSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
||||||
|
@ -2660,7 +2711,6 @@
|
||||||
50 CONTINUE
|
50 CONTINUE
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
60 CONTINUE
|
|
||||||
LSERES = .TRUE.
|
LSERES = .TRUE.
|
||||||
GO TO 80
|
GO TO 80
|
||||||
70 CONTINUE
|
70 CONTINUE
|
||||||
|
|
|
@ -1,7 +1,49 @@
|
||||||
|
*> \brief \b ZBLAT1
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM ZBLAT1
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the COMPLEX*16 Level 1 BLAS.
|
||||||
|
*>
|
||||||
|
*> Based upon the original BLAS test routine together with:
|
||||||
|
*> F06GAF Example Program Text
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup complex16_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM ZBLAT1
|
PROGRAM ZBLAT1
|
||||||
* Test program for the COMPLEX*16 Level 1 BLAS.
|
*
|
||||||
* Based upon the original BLAS test routine together with:
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
* F06GAF Example Program Text
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NOUT
|
INTEGER NOUT
|
||||||
PARAMETER (NOUT=6)
|
PARAMETER (NOUT=6)
|
||||||
|
@ -114,8 +156,8 @@
|
||||||
+ (5.0D0,6.0D0), (5.0D0,6.0D0), (0.1D0,0.1D0),
|
+ (5.0D0,6.0D0), (5.0D0,6.0D0), (0.1D0,0.1D0),
|
||||||
+ (-0.6D0,0.1D0), (0.1D0,-0.3D0), (7.0D0,8.0D0),
|
+ (-0.6D0,0.1D0), (0.1D0,-0.3D0), (7.0D0,8.0D0),
|
||||||
+ (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
+ (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
||||||
+ (7.0D0,8.0D0), (0.3D0,0.1D0), (0.1D0,0.4D0),
|
+ (7.0D0,8.0D0), (0.3D0,0.1D0), (0.5D0,0.0D0),
|
||||||
+ (0.4D0,0.1D0), (0.1D0,0.2D0), (2.0D0,3.0D0),
|
+ (0.0D0,0.5D0), (0.0D0,0.2D0), (2.0D0,3.0D0),
|
||||||
+ (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0)/
|
+ (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0)/
|
||||||
DATA ((CV(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
DATA ((CV(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
||||||
+ (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0),
|
+ (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0),
|
||||||
|
@ -129,10 +171,10 @@
|
||||||
+ (3.0D0,6.0D0), (-0.6D0,0.1D0), (4.0D0,7.0D0),
|
+ (3.0D0,6.0D0), (-0.6D0,0.1D0), (4.0D0,7.0D0),
|
||||||
+ (0.1D0,-0.3D0), (7.0D0,2.0D0), (7.0D0,2.0D0),
|
+ (0.1D0,-0.3D0), (7.0D0,2.0D0), (7.0D0,2.0D0),
|
||||||
+ (7.0D0,2.0D0), (0.3D0,0.1D0), (5.0D0,8.0D0),
|
+ (7.0D0,2.0D0), (0.3D0,0.1D0), (5.0D0,8.0D0),
|
||||||
+ (0.1D0,0.4D0), (6.0D0,9.0D0), (0.4D0,0.1D0),
|
+ (0.5D0,0.0D0), (6.0D0,9.0D0), (0.0D0,0.5D0),
|
||||||
+ (8.0D0,3.0D0), (0.1D0,0.2D0), (9.0D0,4.0D0)/
|
+ (8.0D0,3.0D0), (0.0D0,0.2D0), (9.0D0,4.0D0)/
|
||||||
DATA STRUE2/0.0D0, 0.5D0, 0.6D0, 0.7D0, 0.7D0/
|
DATA STRUE2/0.0D0, 0.5D0, 0.6D0, 0.7D0, 0.8D0/
|
||||||
DATA STRUE4/0.0D0, 0.7D0, 1.0D0, 1.3D0, 1.7D0/
|
DATA STRUE4/0.0D0, 0.7D0, 1.0D0, 1.3D0, 1.6D0/
|
||||||
DATA ((CTRUE5(I,J,1),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
DATA ((CTRUE5(I,J,1),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
||||||
+ (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0),
|
+ (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0),
|
||||||
+ (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0),
|
+ (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0),
|
||||||
|
@ -145,8 +187,8 @@
|
||||||
+ (0.11D0,-0.03D0), (-0.17D0,0.46D0),
|
+ (0.11D0,-0.03D0), (-0.17D0,0.46D0),
|
||||||
+ (-0.17D0,-0.19D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
+ (-0.17D0,-0.19D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
||||||
+ (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
+ (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
||||||
+ (0.19D0,-0.17D0), (0.32D0,0.09D0),
|
+ (0.19D0,-0.17D0), (0.20D0,-0.35D0),
|
||||||
+ (0.23D0,-0.24D0), (0.18D0,0.01D0),
|
+ (0.35D0,0.20D0), (0.14D0,0.08D0),
|
||||||
+ (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0),
|
+ (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0),
|
||||||
+ (2.0D0,3.0D0)/
|
+ (2.0D0,3.0D0)/
|
||||||
DATA ((CTRUE5(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
DATA ((CTRUE5(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
||||||
|
@ -162,9 +204,9 @@
|
||||||
+ (-0.17D0,0.46D0), (4.0D0,7.0D0),
|
+ (-0.17D0,0.46D0), (4.0D0,7.0D0),
|
||||||
+ (-0.17D0,-0.19D0), (7.0D0,2.0D0), (7.0D0,2.0D0),
|
+ (-0.17D0,-0.19D0), (7.0D0,2.0D0), (7.0D0,2.0D0),
|
||||||
+ (7.0D0,2.0D0), (0.19D0,-0.17D0), (5.0D0,8.0D0),
|
+ (7.0D0,2.0D0), (0.19D0,-0.17D0), (5.0D0,8.0D0),
|
||||||
+ (0.32D0,0.09D0), (6.0D0,9.0D0),
|
+ (0.20D0,-0.35D0), (6.0D0,9.0D0),
|
||||||
+ (0.23D0,-0.24D0), (8.0D0,3.0D0),
|
+ (0.35D0,0.20D0), (8.0D0,3.0D0),
|
||||||
+ (0.18D0,0.01D0), (9.0D0,4.0D0)/
|
+ (0.14D0,0.08D0), (9.0D0,4.0D0)/
|
||||||
DATA ((CTRUE6(I,J,1),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
DATA ((CTRUE6(I,J,1),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
||||||
+ (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0),
|
+ (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0),
|
||||||
+ (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0),
|
+ (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0),
|
||||||
|
@ -177,8 +219,8 @@
|
||||||
+ (0.03D0,0.03D0), (-0.18D0,0.03D0),
|
+ (0.03D0,0.03D0), (-0.18D0,0.03D0),
|
||||||
+ (0.03D0,-0.09D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
+ (0.03D0,-0.09D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
||||||
+ (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
+ (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0),
|
||||||
+ (0.09D0,0.03D0), (0.03D0,0.12D0),
|
+ (0.09D0,0.03D0), (0.15D0,0.00D0),
|
||||||
+ (0.12D0,0.03D0), (0.03D0,0.06D0), (2.0D0,3.0D0),
|
+ (0.00D0,0.15D0), (0.00D0,0.06D0), (2.0D0,3.0D0),
|
||||||
+ (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0)/
|
+ (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0)/
|
||||||
DATA ((CTRUE6(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
DATA ((CTRUE6(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0),
|
||||||
+ (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0),
|
+ (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0),
|
||||||
|
@ -193,8 +235,8 @@
|
||||||
+ (-0.18D0,0.03D0), (4.0D0,7.0D0),
|
+ (-0.18D0,0.03D0), (4.0D0,7.0D0),
|
||||||
+ (0.03D0,-0.09D0), (7.0D0,2.0D0), (7.0D0,2.0D0),
|
+ (0.03D0,-0.09D0), (7.0D0,2.0D0), (7.0D0,2.0D0),
|
||||||
+ (7.0D0,2.0D0), (0.09D0,0.03D0), (5.0D0,8.0D0),
|
+ (7.0D0,2.0D0), (0.09D0,0.03D0), (5.0D0,8.0D0),
|
||||||
+ (0.03D0,0.12D0), (6.0D0,9.0D0), (0.12D0,0.03D0),
|
+ (0.15D0,0.00D0), (6.0D0,9.0D0), (0.00D0,0.15D0),
|
||||||
+ (8.0D0,3.0D0), (0.03D0,0.06D0), (9.0D0,4.0D0)/
|
+ (8.0D0,3.0D0), (0.00D0,0.06D0), (9.0D0,4.0D0)/
|
||||||
DATA ITRUE3/0, 1, 2, 2, 2/
|
DATA ITRUE3/0, 1, 2, 2, 2/
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
DO 60 INCX = 1, 2
|
DO 60 INCX = 1, 2
|
||||||
|
@ -529,7 +571,8 @@
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NOUT
|
INTEGER NOUT
|
||||||
PARAMETER (NOUT=6)
|
DOUBLE PRECISION ZERO
|
||||||
|
PARAMETER (NOUT=6, ZERO=0.0D0)
|
||||||
* .. Scalar Arguments ..
|
* .. Scalar Arguments ..
|
||||||
DOUBLE PRECISION SFAC
|
DOUBLE PRECISION SFAC
|
||||||
INTEGER LEN
|
INTEGER LEN
|
||||||
|
@ -552,7 +595,7 @@
|
||||||
*
|
*
|
||||||
DO 40 I = 1, LEN
|
DO 40 I = 1, LEN
|
||||||
SD = SCOMP(I) - STRUE(I)
|
SD = SCOMP(I) - STRUE(I)
|
||||||
IF (SDIFF(ABS(SSIZE(I))+ABS(SFAC*SD),ABS(SSIZE(I))).EQ.0.0D0)
|
IF (ABS(SFAC*SD) .LE. ABS(SSIZE(I))*EPSILON(ZERO))
|
||||||
+ GO TO 40
|
+ GO TO 40
|
||||||
*
|
*
|
||||||
* HERE SCOMP(I) IS NOT CLOSE TO STRUE(I).
|
* HERE SCOMP(I) IS NOT CLOSE TO STRUE(I).
|
||||||
|
|
188
test/zblat2.f
188
test/zblat2.f
|
@ -1,68 +1,114 @@
|
||||||
|
*> \brief \b ZBLAT2
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM ZBLAT2
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the COMPLEX*16 Level 2 Blas.
|
||||||
|
*>
|
||||||
|
*> The program must be driven by a short data file. The first 18 records
|
||||||
|
*> of the file are read using list-directed input, the last 17 records
|
||||||
|
*> are read using the format ( A6, L2 ). An annotated example of a data
|
||||||
|
*> file can be obtained by deleting the first 3 characters from the
|
||||||
|
*> following 35 lines:
|
||||||
|
*> 'zblat2.out' NAME OF SUMMARY OUTPUT FILE
|
||||||
|
*> 6 UNIT NUMBER OF SUMMARY FILE
|
||||||
|
*> 'CBLA2T.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
||||||
|
*> -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
||||||
|
*> F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
||||||
|
*> F LOGICAL FLAG, T TO STOP ON FAILURES.
|
||||||
|
*> T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
||||||
|
*> 16.0 THRESHOLD VALUE OF TEST RATIO
|
||||||
|
*> 6 NUMBER OF VALUES OF N
|
||||||
|
*> 0 1 2 3 5 9 VALUES OF N
|
||||||
|
*> 4 NUMBER OF VALUES OF K
|
||||||
|
*> 0 1 2 4 VALUES OF K
|
||||||
|
*> 4 NUMBER OF VALUES OF INCX AND INCY
|
||||||
|
*> 1 2 -1 -2 VALUES OF INCX AND INCY
|
||||||
|
*> 3 NUMBER OF VALUES OF ALPHA
|
||||||
|
*> (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
|
||||||
|
*> 3 NUMBER OF VALUES OF BETA
|
||||||
|
*> (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
|
||||||
|
*> ZGEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZGBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZTRMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZTBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZTPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZTRSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZTBSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZTPSV T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZGERC T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZGERU T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHER T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHPR T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHER2 T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHPR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*>
|
||||||
|
*> Further Details
|
||||||
|
*> ===============
|
||||||
|
*>
|
||||||
|
*> See:
|
||||||
|
*>
|
||||||
|
*> Dongarra J. J., Du Croz J. J., Hammarling S. and Hanson R. J..
|
||||||
|
*> An extended set of Fortran Basic Linear Algebra Subprograms.
|
||||||
|
*>
|
||||||
|
*> Technical Memoranda Nos. 41 (revision 3) and 81, Mathematics
|
||||||
|
*> and Computer Science Division, Argonne National Laboratory,
|
||||||
|
*> 9700 South Cass Avenue, Argonne, Illinois 60439, US.
|
||||||
|
*>
|
||||||
|
*> Or
|
||||||
|
*>
|
||||||
|
*> NAG Technical Reports TR3/87 and TR4/87, Numerical Algorithms
|
||||||
|
*> Group Ltd., NAG Central Office, 256 Banbury Road, Oxford
|
||||||
|
*> OX2 7DE, UK, and Numerical Algorithms Group Inc., 1101 31st
|
||||||
|
*> Street, Suite 100, Downers Grove, Illinois 60515-1263, USA.
|
||||||
|
*>
|
||||||
|
*>
|
||||||
|
*> -- Written on 10-August-1987.
|
||||||
|
*> Richard Hanson, Sandia National Labs.
|
||||||
|
*> Jeremy Du Croz, NAG Central Office.
|
||||||
|
*>
|
||||||
|
*> 10-9-00: Change STATUS='NEW' to 'UNKNOWN' so that the testers
|
||||||
|
*> can be run multiple times without deleting generated
|
||||||
|
*> output files (susan)
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup complex16_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM ZBLAT2
|
PROGRAM ZBLAT2
|
||||||
*
|
*
|
||||||
* Test program for the COMPLEX*16 Level 2 Blas.
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
*
|
*
|
||||||
* The program must be driven by a short data file. The first 18 records
|
* =====================================================================
|
||||||
* of the file are read using list-directed input, the last 17 records
|
|
||||||
* are read using the format ( A6, L2 ). An annotated example of a data
|
|
||||||
* file can be obtained by deleting the first 3 characters from the
|
|
||||||
* following 35 lines:
|
|
||||||
* 'ZBLAT2.SUMM' NAME OF SUMMARY OUTPUT FILE
|
|
||||||
* 6 UNIT NUMBER OF SUMMARY FILE
|
|
||||||
* 'CBLA2T.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
|
||||||
* -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
|
||||||
* F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
|
||||||
* F LOGICAL FLAG, T TO STOP ON FAILURES.
|
|
||||||
* T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
|
||||||
* 16.0 THRESHOLD VALUE OF TEST RATIO
|
|
||||||
* 6 NUMBER OF VALUES OF N
|
|
||||||
* 0 1 2 3 5 9 VALUES OF N
|
|
||||||
* 4 NUMBER OF VALUES OF K
|
|
||||||
* 0 1 2 4 VALUES OF K
|
|
||||||
* 4 NUMBER OF VALUES OF INCX AND INCY
|
|
||||||
* 1 2 -1 -2 VALUES OF INCX AND INCY
|
|
||||||
* 3 NUMBER OF VALUES OF ALPHA
|
|
||||||
* (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
|
|
||||||
* 3 NUMBER OF VALUES OF BETA
|
|
||||||
* (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
|
|
||||||
* ZGEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZGBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHEMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZTRMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZTBMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZTPMV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZTRSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZTBSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZTPSV T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZGERC T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZGERU T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHER T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHPR T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHER2 T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHPR2 T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
*
|
|
||||||
* Dongarra J. J., Du Croz J. J., Hammarling S. and Hanson R. J..
|
|
||||||
* An extended set of Fortran Basic Linear Algebra Subprograms.
|
|
||||||
*
|
|
||||||
* Technical Memoranda Nos. 41 (revision 3) and 81, Mathematics
|
|
||||||
* and Computer Science Division, Argonne National Laboratory,
|
|
||||||
* 9700 South Cass Avenue, Argonne, Illinois 60439, US.
|
|
||||||
*
|
|
||||||
* Or
|
|
||||||
*
|
|
||||||
* NAG Technical Reports TR3/87 and TR4/87, Numerical Algorithms
|
|
||||||
* Group Ltd., NAG Central Office, 256 Banbury Road, Oxford
|
|
||||||
* OX2 7DE, UK, and Numerical Algorithms Group Inc., 1101 31st
|
|
||||||
* Street, Suite 100, Downers Grove, Illinois 60515-1263, USA.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* -- Written on 10-August-1987.
|
|
||||||
* Richard Hanson, Sandia National Labs.
|
|
||||||
* Jeremy Du Croz, NAG Central Office.
|
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NIN
|
INTEGER NIN
|
||||||
|
@ -72,8 +118,8 @@
|
||||||
COMPLEX*16 ZERO, ONE
|
COMPLEX*16 ZERO, ONE
|
||||||
PARAMETER ( ZERO = ( 0.0D0, 0.0D0 ),
|
PARAMETER ( ZERO = ( 0.0D0, 0.0D0 ),
|
||||||
$ ONE = ( 1.0D0, 0.0D0 ) )
|
$ ONE = ( 1.0D0, 0.0D0 ) )
|
||||||
DOUBLE PRECISION RZERO, RHALF, RONE
|
DOUBLE PRECISION RZERO
|
||||||
PARAMETER ( RZERO = 0.0D0, RHALF = 0.5D0, RONE = 1.0D0 )
|
PARAMETER ( RZERO = 0.0D0 )
|
||||||
INTEGER NMAX, INCMAX
|
INTEGER NMAX, INCMAX
|
||||||
PARAMETER ( NMAX = 65, INCMAX = 2 )
|
PARAMETER ( NMAX = 65, INCMAX = 2 )
|
||||||
INTEGER NINMAX, NIDMAX, NKBMAX, NALMAX, NBEMAX
|
INTEGER NINMAX, NIDMAX, NKBMAX, NALMAX, NBEMAX
|
||||||
|
@ -127,7 +173,7 @@
|
||||||
*
|
*
|
||||||
READ( NIN, FMT = * )SUMMRY
|
READ( NIN, FMT = * )SUMMRY
|
||||||
READ( NIN, FMT = * )NOUT
|
READ( NIN, FMT = * )NOUT
|
||||||
OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
|
OPEN( NOUT, FILE = SUMMRY, STATUS = 'UNKNOWN' )
|
||||||
NOUTC = NOUT
|
NOUTC = NOUT
|
||||||
*
|
*
|
||||||
* Read name and unit number for snapshot output file and open file.
|
* Read name and unit number for snapshot output file and open file.
|
||||||
|
@ -136,7 +182,7 @@
|
||||||
READ( NIN, FMT = * )NTRA
|
READ( NIN, FMT = * )NTRA
|
||||||
TRACE = NTRA.GE.0
|
TRACE = NTRA.GE.0
|
||||||
IF( TRACE )THEN
|
IF( TRACE )THEN
|
||||||
OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
|
OPEN( NTRA, FILE = SNAPS, STATUS = 'UNKNOWN' )
|
||||||
END IF
|
END IF
|
||||||
* Read the flag that directs rewinding of the snapshot file.
|
* Read the flag that directs rewinding of the snapshot file.
|
||||||
READ( NIN, FMT = * )REWI
|
READ( NIN, FMT = * )REWI
|
||||||
|
@ -241,14 +287,7 @@
|
||||||
*
|
*
|
||||||
* Compute EPS (the machine precision).
|
* Compute EPS (the machine precision).
|
||||||
*
|
*
|
||||||
EPS = RONE
|
EPS = EPSILON(RZERO)
|
||||||
90 CONTINUE
|
|
||||||
IF( DDIFF( RONE + EPS, RONE ).EQ.RZERO )
|
|
||||||
$ GO TO 100
|
|
||||||
EPS = RHALF*EPS
|
|
||||||
GO TO 90
|
|
||||||
100 CONTINUE
|
|
||||||
EPS = EPS + EPS
|
|
||||||
WRITE( NOUT, FMT = 9998 )EPS
|
WRITE( NOUT, FMT = 9998 )EPS
|
||||||
*
|
*
|
||||||
* Check the reliability of ZMVCH using exact data.
|
* Check the reliability of ZMVCH using exact data.
|
||||||
|
@ -3087,7 +3126,6 @@
|
||||||
50 CONTINUE
|
50 CONTINUE
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
60 CONTINUE
|
|
||||||
LZERES = .TRUE.
|
LZERES = .TRUE.
|
||||||
GO TO 80
|
GO TO 80
|
||||||
70 CONTINUE
|
70 CONTINUE
|
||||||
|
|
191
test/zblat3.f
191
test/zblat3.f
|
@ -1,50 +1,97 @@
|
||||||
|
*> \brief \b ZBLAT3
|
||||||
|
*
|
||||||
|
* =========== DOCUMENTATION ===========
|
||||||
|
*
|
||||||
|
* Online html documentation available at
|
||||||
|
* http://www.netlib.org/lapack/explore-html/
|
||||||
|
*
|
||||||
|
* Definition:
|
||||||
|
* ===========
|
||||||
|
*
|
||||||
|
* PROGRAM ZBLAT3
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*> \par Purpose:
|
||||||
|
* =============
|
||||||
|
*>
|
||||||
|
*> \verbatim
|
||||||
|
*>
|
||||||
|
*> Test program for the COMPLEX*16 Level 3 Blas.
|
||||||
|
*>
|
||||||
|
*> The program must be driven by a short data file. The first 14 records
|
||||||
|
*> of the file are read using list-directed input, the last 9 records
|
||||||
|
*> are read using the format ( A6, L2 ). An annotated example of a data
|
||||||
|
*> file can be obtained by deleting the first 3 characters from the
|
||||||
|
*> following 23 lines:
|
||||||
|
*> 'zblat3.out' NAME OF SUMMARY OUTPUT FILE
|
||||||
|
*> 6 UNIT NUMBER OF SUMMARY FILE
|
||||||
|
*> 'ZBLAT3.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
||||||
|
*> -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
||||||
|
*> F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
||||||
|
*> F LOGICAL FLAG, T TO STOP ON FAILURES.
|
||||||
|
*> T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
||||||
|
*> 16.0 THRESHOLD VALUE OF TEST RATIO
|
||||||
|
*> 6 NUMBER OF VALUES OF N
|
||||||
|
*> 0 1 2 3 5 9 VALUES OF N
|
||||||
|
*> 3 NUMBER OF VALUES OF ALPHA
|
||||||
|
*> (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
|
||||||
|
*> 3 NUMBER OF VALUES OF BETA
|
||||||
|
*> (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
|
||||||
|
*> ZGEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZSYMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZTRMM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZTRSM T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHERK T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZSYRK T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZHER2K T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*> ZSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
|
||||||
|
*>
|
||||||
|
*>
|
||||||
|
*> Further Details
|
||||||
|
*> ===============
|
||||||
|
*>
|
||||||
|
*> See:
|
||||||
|
*>
|
||||||
|
*> Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
|
||||||
|
*> A Set of Level 3 Basic Linear Algebra Subprograms.
|
||||||
|
*>
|
||||||
|
*> Technical Memorandum No.88 (Revision 1), Mathematics and
|
||||||
|
*> Computer Science Division, Argonne National Laboratory, 9700
|
||||||
|
*> South Cass Avenue, Argonne, Illinois 60439, US.
|
||||||
|
*>
|
||||||
|
*> -- Written on 8-February-1989.
|
||||||
|
*> Jack Dongarra, Argonne National Laboratory.
|
||||||
|
*> Iain Duff, AERE Harwell.
|
||||||
|
*> Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
||||||
|
*> Sven Hammarling, Numerical Algorithms Group Ltd.
|
||||||
|
*>
|
||||||
|
*> 10-9-00: Change STATUS='NEW' to 'UNKNOWN' so that the testers
|
||||||
|
*> can be run multiple times without deleting generated
|
||||||
|
*> output files (susan)
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* ========
|
||||||
|
*
|
||||||
|
*> \author Univ. of Tennessee
|
||||||
|
*> \author Univ. of California Berkeley
|
||||||
|
*> \author Univ. of Colorado Denver
|
||||||
|
*> \author NAG Ltd.
|
||||||
|
*
|
||||||
|
*> \date April 2012
|
||||||
|
*
|
||||||
|
*> \ingroup complex16_blas_testing
|
||||||
|
*
|
||||||
|
* =====================================================================
|
||||||
PROGRAM ZBLAT3
|
PROGRAM ZBLAT3
|
||||||
*
|
*
|
||||||
* Test program for the COMPLEX*16 Level 3 Blas.
|
* -- Reference BLAS test routine (version 3.7.0) --
|
||||||
|
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
|
||||||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
* April 2012
|
||||||
*
|
*
|
||||||
* The program must be driven by a short data file. The first 14 records
|
* =====================================================================
|
||||||
* of the file are read using list-directed input, the last 9 records
|
|
||||||
* are read using the format ( A6, L2 ). An annotated example of a data
|
|
||||||
* file can be obtained by deleting the first 3 characters from the
|
|
||||||
* following 23 lines:
|
|
||||||
* 'ZBLAT3.SUMM' NAME OF SUMMARY OUTPUT FILE
|
|
||||||
* 6 UNIT NUMBER OF SUMMARY FILE
|
|
||||||
* 'ZBLAT3.SNAP' NAME OF SNAPSHOT OUTPUT FILE
|
|
||||||
* -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
|
|
||||||
* F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
|
|
||||||
* F LOGICAL FLAG, T TO STOP ON FAILURES.
|
|
||||||
* T LOGICAL FLAG, T TO TEST ERROR EXITS.
|
|
||||||
* 16.0 THRESHOLD VALUE OF TEST RATIO
|
|
||||||
* 6 NUMBER OF VALUES OF N
|
|
||||||
* 0 1 2 3 5 9 VALUES OF N
|
|
||||||
* 3 NUMBER OF VALUES OF ALPHA
|
|
||||||
* (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
|
|
||||||
* 3 NUMBER OF VALUES OF BETA
|
|
||||||
* (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
|
|
||||||
* ZGEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHEMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZSYMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZTRMM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZTRSM T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHERK T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZSYRK T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZHER2K T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
* ZSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
*
|
|
||||||
* Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
|
|
||||||
* A Set of Level 3 Basic Linear Algebra Subprograms.
|
|
||||||
*
|
|
||||||
* Technical Memorandum No.88 (Revision 1), Mathematics and
|
|
||||||
* Computer Science Division, Argonne National Laboratory, 9700
|
|
||||||
* South Cass Avenue, Argonne, Illinois 60439, US.
|
|
||||||
*
|
|
||||||
* -- Written on 8-February-1989.
|
|
||||||
* Jack Dongarra, Argonne National Laboratory.
|
|
||||||
* Iain Duff, AERE Harwell.
|
|
||||||
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
|
||||||
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
|
||||||
*
|
*
|
||||||
* .. Parameters ..
|
* .. Parameters ..
|
||||||
INTEGER NIN
|
INTEGER NIN
|
||||||
|
@ -54,8 +101,8 @@
|
||||||
COMPLEX*16 ZERO, ONE
|
COMPLEX*16 ZERO, ONE
|
||||||
PARAMETER ( ZERO = ( 0.0D0, 0.0D0 ),
|
PARAMETER ( ZERO = ( 0.0D0, 0.0D0 ),
|
||||||
$ ONE = ( 1.0D0, 0.0D0 ) )
|
$ ONE = ( 1.0D0, 0.0D0 ) )
|
||||||
DOUBLE PRECISION RZERO, RHALF, RONE
|
DOUBLE PRECISION RZERO
|
||||||
PARAMETER ( RZERO = 0.0D0, RHALF = 0.5D0, RONE = 1.0D0 )
|
PARAMETER ( RZERO = 0.0D0 )
|
||||||
INTEGER NMAX
|
INTEGER NMAX
|
||||||
PARAMETER ( NMAX = 65 )
|
PARAMETER ( NMAX = 65 )
|
||||||
INTEGER NIDMAX, NALMAX, NBEMAX
|
INTEGER NIDMAX, NALMAX, NBEMAX
|
||||||
|
@ -104,7 +151,7 @@
|
||||||
*
|
*
|
||||||
READ( NIN, FMT = * )SUMMRY
|
READ( NIN, FMT = * )SUMMRY
|
||||||
READ( NIN, FMT = * )NOUT
|
READ( NIN, FMT = * )NOUT
|
||||||
OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
|
OPEN( NOUT, FILE = SUMMRY, STATUS = 'UNKNOWN' )
|
||||||
NOUTC = NOUT
|
NOUTC = NOUT
|
||||||
*
|
*
|
||||||
* Read name and unit number for snapshot output file and open file.
|
* Read name and unit number for snapshot output file and open file.
|
||||||
|
@ -113,7 +160,7 @@
|
||||||
READ( NIN, FMT = * )NTRA
|
READ( NIN, FMT = * )NTRA
|
||||||
TRACE = NTRA.GE.0
|
TRACE = NTRA.GE.0
|
||||||
IF( TRACE )THEN
|
IF( TRACE )THEN
|
||||||
OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
|
OPEN( NTRA, FILE = SNAPS, STATUS = 'UNKNOWN' )
|
||||||
END IF
|
END IF
|
||||||
* Read the flag that directs rewinding of the snapshot file.
|
* Read the flag that directs rewinding of the snapshot file.
|
||||||
READ( NIN, FMT = * )REWI
|
READ( NIN, FMT = * )REWI
|
||||||
|
@ -190,14 +237,7 @@
|
||||||
*
|
*
|
||||||
* Compute EPS (the machine precision).
|
* Compute EPS (the machine precision).
|
||||||
*
|
*
|
||||||
EPS = RONE
|
EPS = EPSILON(RZERO)
|
||||||
70 CONTINUE
|
|
||||||
IF( DDIFF( RONE + EPS, RONE ).EQ.RZERO )
|
|
||||||
$ GO TO 80
|
|
||||||
EPS = RHALF*EPS
|
|
||||||
GO TO 70
|
|
||||||
80 CONTINUE
|
|
||||||
EPS = EPS + EPS
|
|
||||||
WRITE( NOUT, FMT = 9998 )EPS
|
WRITE( NOUT, FMT = 9998 )EPS
|
||||||
*
|
*
|
||||||
* Check the reliability of ZMMCH using exact data.
|
* Check the reliability of ZMMCH using exact data.
|
||||||
|
@ -1303,8 +1343,6 @@
|
||||||
NC = 0
|
NC = 0
|
||||||
RESET = .TRUE.
|
RESET = .TRUE.
|
||||||
ERRMAX = RZERO
|
ERRMAX = RZERO
|
||||||
RALS = RONE
|
|
||||||
RBETS = RONE
|
|
||||||
*
|
*
|
||||||
DO 100 IN = 1, NIDIM
|
DO 100 IN = 1, NIDIM
|
||||||
N = IDIM( IN )
|
N = IDIM( IN )
|
||||||
|
@ -1951,7 +1989,7 @@
|
||||||
*
|
*
|
||||||
* Tests the error exits from the Level 3 Blas.
|
* Tests the error exits from the Level 3 Blas.
|
||||||
* Requires a special version of the error-handling routine XERBLA.
|
* Requires a special version of the error-handling routine XERBLA.
|
||||||
* ALPHA, RALPHA, BETA, RBETA, A, B and C should not need to be defined.
|
* A, B and C should not need to be defined.
|
||||||
*
|
*
|
||||||
* Auxiliary routine for test program for Level 3 Blas.
|
* Auxiliary routine for test program for Level 3 Blas.
|
||||||
*
|
*
|
||||||
|
@ -1961,12 +1999,20 @@
|
||||||
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
|
||||||
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
* Sven Hammarling, Numerical Algorithms Group Ltd.
|
||||||
*
|
*
|
||||||
|
* 3-19-92: Initialize ALPHA, BETA, RALPHA, and RBETA (eca)
|
||||||
|
* 3-19-92: Fix argument 12 in calls to ZSYMM and ZHEMM
|
||||||
|
* with INFOT = 9 (eca)
|
||||||
|
* 10-9-00: Declared INTRINSIC DCMPLX (susan)
|
||||||
|
*
|
||||||
* .. Scalar Arguments ..
|
* .. Scalar Arguments ..
|
||||||
INTEGER ISNUM, NOUT
|
INTEGER ISNUM, NOUT
|
||||||
CHARACTER*6 SRNAMT
|
CHARACTER*6 SRNAMT
|
||||||
* .. Scalars in Common ..
|
* .. Scalars in Common ..
|
||||||
INTEGER INFOT, NOUTC
|
INTEGER INFOT, NOUTC
|
||||||
LOGICAL LERR, OK
|
LOGICAL LERR, OK
|
||||||
|
* .. Parameters ..
|
||||||
|
REAL ONE, TWO
|
||||||
|
PARAMETER ( ONE = 1.0D0, TWO = 2.0D0 )
|
||||||
* .. Local Scalars ..
|
* .. Local Scalars ..
|
||||||
COMPLEX*16 ALPHA, BETA
|
COMPLEX*16 ALPHA, BETA
|
||||||
DOUBLE PRECISION RALPHA, RBETA
|
DOUBLE PRECISION RALPHA, RBETA
|
||||||
|
@ -1975,6 +2021,8 @@
|
||||||
* .. External Subroutines ..
|
* .. External Subroutines ..
|
||||||
EXTERNAL ZGEMM, ZHEMM, ZHER2K, ZHERK, CHKXER, ZSYMM,
|
EXTERNAL ZGEMM, ZHEMM, ZHER2K, ZHERK, CHKXER, ZSYMM,
|
||||||
$ ZSYR2K, ZSYRK, ZTRMM, ZTRSM
|
$ ZSYR2K, ZSYRK, ZTRMM, ZTRSM
|
||||||
|
* .. Intrinsic Functions ..
|
||||||
|
INTRINSIC DCMPLX
|
||||||
* .. Common blocks ..
|
* .. Common blocks ..
|
||||||
COMMON /INFOC/INFOT, NOUTC, OK, LERR
|
COMMON /INFOC/INFOT, NOUTC, OK, LERR
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
|
@ -1984,6 +2032,14 @@
|
||||||
* LERR is set to .TRUE. by the special version of XERBLA each time
|
* LERR is set to .TRUE. by the special version of XERBLA each time
|
||||||
* it is called, and is then tested and re-set by CHKXER.
|
* it is called, and is then tested and re-set by CHKXER.
|
||||||
LERR = .FALSE.
|
LERR = .FALSE.
|
||||||
|
*
|
||||||
|
* Initialize ALPHA, BETA, RALPHA, and RBETA.
|
||||||
|
*
|
||||||
|
ALPHA = DCMPLX( ONE, -ONE )
|
||||||
|
BETA = DCMPLX( TWO, -TWO )
|
||||||
|
RALPHA = ONE
|
||||||
|
RBETA = TWO
|
||||||
|
*
|
||||||
GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
|
GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
|
||||||
$ 90 )ISNUM
|
$ 90 )ISNUM
|
||||||
10 INFOT = 1
|
10 INFOT = 1
|
||||||
|
@ -2210,16 +2266,16 @@
|
||||||
CALL ZHEMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL ZHEMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL ZHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL ZHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL ZHEMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL ZHEMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL ZHEMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL ZHEMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL ZHEMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL ZHEMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 12
|
INFOT = 12
|
||||||
CALL ZHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
CALL ZHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
||||||
|
@ -2277,16 +2333,16 @@
|
||||||
CALL ZSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL ZSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL ZSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL ZSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL ZSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL ZSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL ZSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
|
CALL ZSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 9
|
INFOT = 9
|
||||||
CALL ZSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
|
CALL ZSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
|
||||||
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
|
||||||
INFOT = 12
|
INFOT = 12
|
||||||
CALL ZSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
CALL ZSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
|
||||||
|
@ -3276,7 +3332,6 @@
|
||||||
50 CONTINUE
|
50 CONTINUE
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
60 CONTINUE
|
|
||||||
LZERES = .TRUE.
|
LZERES = .TRUE.
|
||||||
GO TO 80
|
GO TO 80
|
||||||
70 CONTINUE
|
70 CONTINUE
|
||||||
|
|
Loading…
Reference in New Issue