| @@ -1,4 +1,15 @@ | |||
| OpenBLAS ChangeLog | |||
| ==================================================================== | |||
| Version 0.2.9 | |||
| 10-Jun-2014 | |||
| common: | |||
| * Improved the result for LAPACK testing. (#372) | |||
| * Installed DLL to prefix/bin instead of prefix/lib. (#366) | |||
| * Build import library on Windows.(#374) | |||
| x86/x86-64: | |||
| * To improve LAPACK testing, we fallback some kernels. (#372) | |||
| https://github.com/xianyi/OpenBLAS/wiki/Fixed-optimized-kernels-To-do-List | |||
| ==================================================================== | |||
| Version 0.2.9.rc2 | |||
| 06-Mar-2014 | |||
| @@ -51,7 +62,7 @@ common: | |||
| parallelization model is used by OpenBLAS. (Thank grisuthedragon) | |||
| * Detect LLVM/Clang compiler. The default compiler is Clang on Mac OS X. | |||
| * Change LIBSUFFIX from .lib to .a on windows. | |||
| * A walk round for dtrti_U single thread bug. Replace it with LAPACK codes. (#191) | |||
| * A work-around for dtrti_U single thread bug. Replace it with LAPACK codes. (#191) | |||
| x86/x86-64: | |||
| * Optimize c/zgemm, trsm, dgemv_n, ddot, daxpy, dcopy on | |||
| @@ -284,7 +295,7 @@ x86/x86_64: | |||
| * Fixed #28 a wrong result of dsdot on x86_64. | |||
| * Fixed #32 a SEGFAULT bug of zdotc with gcc-4.6. | |||
| * Fixed #33 ztrmm bug on Nehalem. | |||
| * Walk round #27 the low performance axpy issue with small imput size & multithreads. | |||
| * Work-around #27 the low performance axpy issue with small imput size & multithreads. | |||
| MIPS64: | |||
| * Fixed #28 a wrong result of dsdot on Loongson3A/MIPS64. | |||
| @@ -308,7 +319,7 @@ common: | |||
| x86/x86_64: | |||
| * On x86 32bits, fixed a bug in zdot_sse2.S line 191. This would casue | |||
| zdotu & zdotc failures.Instead,Walk around it. (Refs issue #8 #9 on github) | |||
| zdotu & zdotc failures. Instead, work-around it. (Refs issue #8 #9 on github) | |||
| * Modified ?axpy functions to return same netlib BLAS results | |||
| when incx==0 or incy==0 (Refs issue #7 on github) | |||
| * Modified ?swap functions to return same netlib BLAS results | |||
| @@ -57,7 +57,7 @@ endif | |||
| ifeq ($(USE_OPENMP), 1) | |||
| @echo | |||
| @echo " Use OpenMP in the multithreading. Becasue of ignoring OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS flags, " | |||
| @echo " Use OpenMP in the multithreading. Because of ignoring OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS flags, " | |||
| @echo " you should use OMP_NUM_THREADS environment variable to control the number of threads." | |||
| @echo | |||
| endif | |||
| @@ -128,6 +128,11 @@ ifeq ($(CORE), UNKOWN) | |||
| endif | |||
| ifeq ($(NOFORTRAN), 1) | |||
| $(error OpenBLAS: Detecting fortran compiler failed. Please install fortran compiler, e.g. gfortran, ifort, openf90.) | |||
| endif | |||
| ifeq ($(NO_STATIC), 1) | |||
| ifeq ($(NO_SHARED), 1) | |||
| $(error OpenBLAS: neither static nor shared are enabled.) | |||
| endif | |||
| endif | |||
| @-ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) | |||
| @for d in $(SUBDIRS) ; \ | |||
| @@ -207,6 +212,7 @@ else | |||
| netlib : lapack_prebuild | |||
| ifndef NOFORTRAN | |||
| @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib | |||
| @$(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib | |||
| endif | |||
| ifndef NO_LAPACKE | |||
| @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapackelib | |||
| @@ -230,43 +236,19 @@ ifndef NOFORTRAN | |||
| -@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "TMGLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "BLASLIB = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "LAPACKELIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "SUFFIX = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "PSUFFIX = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@echo "CEXTRALIB = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| -@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| endif | |||
| lapack-3.4.2 : lapack-3.4.2.tgz | |||
| ifndef NOFORTRAN | |||
| ifndef NO_LAPACK | |||
| @if test `$(MD5SUM) $< | $(AWK) '{print $$1}'` = 61bf1a8a4469d4bdb7604f5897179478; then \ | |||
| echo $(TAR) zxf $< ;\ | |||
| $(TAR) zxf $< && (cd $(NETLIB_LAPACK_DIR); $(PATCH) -p1 < ../patch.for_lapack-3.4.2) ;\ | |||
| rm -f $(NETLIB_LAPACK_DIR)/lapacke/make.inc ;\ | |||
| else \ | |||
| rm -rf $(NETLIB_LAPACK_DIR) ;\ | |||
| echo " Cannot download lapack-3.4.2.tgz or the MD5 check sum is wrong (Please use orignal)."; \ | |||
| exit 1; \ | |||
| fi | |||
| endif | |||
| endif | |||
| LAPACK_URL=http://www.netlib.org/lapack/lapack-3.4.2.tgz | |||
| lapack-3.4.2.tgz : | |||
| ifndef NOFORTRAN | |||
| #http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or | |||
| ifeq ($(OSNAME), $(filter $(OSNAME),Darwin NetBSD)) | |||
| curl -O $(LAPACK_URL); | |||
| else | |||
| ifeq ($(OSNAME), FreeBSD) | |||
| fetch $(LAPACK_URL); | |||
| ifeq ($(F_COMPILER), GFORTRAN) | |||
| -@echo "TIMER = INT_ETIME" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| else | |||
| wget -O $@ $(LAPACK_URL); | |||
| endif | |||
| -@echo "TIMER = NONE" >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| endif | |||
| -@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc | |||
| endif | |||
| large.tgz : | |||
| @@ -287,17 +269,15 @@ lapack-timing : large.tgz timing.tgz | |||
| ifndef NOFORTRAN | |||
| (cd $(NETLIB_LAPACK_DIR); $(TAR) zxf ../timing.tgz TIMING) | |||
| (cd $(NETLIB_LAPACK_DIR)/TIMING; $(TAR) zxf ../../large.tgz ) | |||
| make -C $(NETLIB_LAPACK_DIR) tmglib | |||
| make -C $(NETLIB_LAPACK_DIR)/TIMING | |||
| endif | |||
| lapack-test : | |||
| $(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib | |||
| $(MAKE) -C $(NETLIB_LAPACK_DIR)/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintsts xlintstz xlintstzc | |||
| @rm -f $(NETLIB_LAPACK_DIR)/TESTING/*.out | |||
| $(MAKE) -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING | |||
| $(GREP) failed $(NETLIB_LAPACK_DIR)/TESTING/*.out | |||
| (cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out) | |||
| make -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintstrfd xlintstrfz xlintsts xlintstz xlintstzc xlintstrfs xlintstrfc | |||
| (cd $(NETLIB_LAPACK_DIR); ./lapack_testing.py -r ) | |||
| dummy : | |||
| @@ -323,4 +303,5 @@ endif | |||
| @$(MAKE) -C $(NETLIB_LAPACK_DIR) clean | |||
| @rm -f $(NETLIB_LAPACK_DIR)/make.inc $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling.h | |||
| @rm -f *.grd Makefile.conf_last config_last.h | |||
| @(cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out testing_results.txt) | |||
| @echo Done. | |||
| @@ -10,3 +10,9 @@ FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6 | |||
| endif | |||
| ifeq ($(CORE), ARMV5) | |||
| CCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6 | |||
| FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6 | |||
| endif | |||
| @@ -7,6 +7,7 @@ PREFIX ?= /opt/OpenBLAS | |||
| OPENBLAS_INCLUDE_DIR := $(PREFIX)/include | |||
| OPENBLAS_LIBRARY_DIR := $(PREFIX)/lib | |||
| OPENBLAS_BINARY_DIR := $(PREFIX)/bin | |||
| OPENBLAS_BUILD_DIR := $(CURDIR) | |||
| .PHONY : install | |||
| @@ -19,6 +20,7 @@ install : lib.grd | |||
| @-mkdir -p $(DESTDIR)$(PREFIX) | |||
| @-mkdir -p $(DESTDIR)$(OPENBLAS_INCLUDE_DIR) | |||
| @-mkdir -p $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) | |||
| @-mkdir -p $(DESTDIR)$(OPENBLAS_BINARY_DIR) | |||
| @echo Generating openblas_config.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR) | |||
| #for inc | |||
| @echo \#ifndef OPENBLAS_CONFIG_H > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h | |||
| @@ -49,10 +51,12 @@ ifndef NO_LAPACKE | |||
| endif | |||
| #for install static library | |||
| ifndef NO_STATIC | |||
| @echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) | |||
| @install -pm644 $(LIBNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) | |||
| @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \ | |||
| ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) | |||
| endif | |||
| #for install shared library | |||
| ifndef NO_SHARED | |||
| @echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) | |||
| @@ -78,10 +82,11 @@ ifeq ($(OSNAME), Darwin) | |||
| @-ln -fs $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dylib | |||
| endif | |||
| ifeq ($(OSNAME), WINNT) | |||
| @-cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR) | |||
| @-cp $(LIBDLLNAME) $(OPENBLAS_BINARY_DIR) | |||
| @-cp $(LIBPREFIX).lib $(OPENBLAS_LIBRARY_DIR) | |||
| endif | |||
| ifeq ($(OSNAME), CYGWIN_NT) | |||
| @-cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR) | |||
| @-cp $(LIBDLLNAME) $(OPENBLAS_BINARY_DIR) | |||
| endif | |||
| endif | |||
| @@ -3,7 +3,7 @@ | |||
| # | |||
| # This library's version | |||
| VERSION = 0.2.9.rc2 | |||
| VERSION = 0.2.9 | |||
| # If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a | |||
| # and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library | |||
| @@ -48,6 +48,9 @@ VERSION = 0.2.9.rc2 | |||
| # automatically detected by the the script. | |||
| # NUM_THREADS = 24 | |||
| # if you don't need to install the static library, please comment it in. | |||
| # NO_STATIC = 1 | |||
| # if you don't need generate the shared library, please comment it in. | |||
| # NO_SHARED = 1 | |||
| @@ -76,10 +79,10 @@ VERSION = 0.2.9.rc2 | |||
| # Unfortunately most of kernel won't give us high quality buffer. | |||
| # BLAS tries to find the best region before entering main function, | |||
| # but it will consume time. If you don't like it, you can disable one. | |||
| # NO_WARMUP = 1 | |||
| NO_WARMUP = 1 | |||
| # If you want to disable CPU/Memory affinity on Linux. | |||
| # NO_AFFINITY = 1 | |||
| NO_AFFINITY = 1 | |||
| # Don't use AVX kernel on Sandy Bridge. It is compatible with old compilers | |||
| # and OS. However, the performance is low. | |||
| @@ -129,6 +132,9 @@ VERSION = 0.2.9.rc2 | |||
| # The default -O2 is enough. | |||
| # COMMON_OPT = -O2 | |||
| # gfortran option for LAPACK | |||
| FCOMMON_OPT = -frecursive | |||
| # Profiling flags | |||
| COMMON_PROF = -pg | |||
| @@ -158,6 +158,7 @@ endif | |||
| ifeq ($(OSNAME), Linux) | |||
| EXTRALIB += -lm | |||
| NO_EXPRECISION = 1 | |||
| endif | |||
| ifeq ($(OSNAME), AIX) | |||
| @@ -846,19 +847,6 @@ ifeq ($(DEBUG), 1) | |||
| COMMON_OPT += -g | |||
| endif | |||
| ifndef COMMON_OPT | |||
| ifeq ($(ARCH), arm) | |||
| COMMON_OPT = -O3 | |||
| endif | |||
| endif | |||
| ifndef COMMON_OPT | |||
| ifeq ($(ARCH), arm64) | |||
| COMMON_OPT = -O3 | |||
| endif | |||
| endif | |||
| ifndef COMMON_OPT | |||
| COMMON_OPT = -O2 | |||
| endif | |||
| @@ -310,10 +310,17 @@ typedef int blasint; | |||
| #define YIELDING SwitchToThread() | |||
| #endif | |||
| #if defined(ARMV7) || defined(ARMV6) || defined(ARMV8) | |||
| #if defined(ARMV7) || defined(ARMV6) || defined(ARMV8) || defined(ARMV5) | |||
| #define YIELDING asm volatile ("nop;nop;nop;nop;nop;nop;nop;nop; \n"); | |||
| #endif | |||
| #ifdef BULLDOZER | |||
| #ifndef YIELDING | |||
| #define YIELDING __asm__ __volatile__ ("nop;nop;nop;nop;nop;nop;nop;nop;\n"); | |||
| #endif | |||
| #endif | |||
| #ifdef PILEDRIVER | |||
| #ifndef YIELDING | |||
| #define YIELDING __asm__ __volatile__ ("nop;nop;nop;nop;nop;nop;nop;nop;\n"); | |||
| @@ -125,7 +125,7 @@ ARCH_IA64 | |||
| BINARY_64 | |||
| #endif | |||
| #if defined(__ARM_ARCH) || defined(__ARM_ARCH_7A__) | |||
| #if defined(__ARM_ARCH) || defined(__ARM_ARCH_7A__) || defined(__arm__) | |||
| ARCH_ARM | |||
| #endif | |||
| @@ -3,7 +3,7 @@ include ../../Makefile.system | |||
| COMMONOBJS = memory.$(SUFFIX) xerbla.$(SUFFIX) c_abs.$(SUFFIX) z_abs.$(SUFFIX) openblas_set_num_threads.$(SUFFIX) openblas_get_config.$(SUFFIX) openblas_get_parallel.$(SUFFIX) openblas_error_handle.$(SUFFIX) | |||
| COMMONOBJS += slamch.$(SUFFIX) slamc3.$(SUFFIX) dlamch.$(SUFFIX) dlamc3.$(SUFFIX) | |||
| #COMMONOBJS += slamch.$(SUFFIX) slamc3.$(SUFFIX) dlamch.$(SUFFIX) dlamc3.$(SUFFIX) | |||
| ifdef SMP | |||
| COMMONOBJS += blas_server.$(SUFFIX) divtable.$(SUFFIX) blasL1thread.$(SUFFIX) | |||
| @@ -75,9 +75,6 @@ zip : dll | |||
| zip $(LIBZIPNAME) $(LIBDLLNAME) $(LIBNAME) | |||
| dll : ../$(LIBDLLNAME) | |||
| #libgoto2.dll | |||
| dll2 : libgoto2_shared.dll | |||
| # On Windows, we only generate a DLL without a version suffix. This is because | |||
| # applications which link against the dynamic library reference a fixed DLL name | |||
| @@ -86,36 +83,19 @@ dll2 : libgoto2_shared.dll | |||
| # For more details see: https://github.com/xianyi/OpenBLAS/issues/127. | |||
| ../$(LIBDLLNAME) : ../$(LIBNAME) libopenblas.def dllinit.$(SUFFIX) | |||
| $(RANLIB) ../$(LIBNAME) | |||
| ifeq ($(BINARY32), 1) | |||
| $(DLLWRAP) -o ../$(LIBDLLNAME) --def libopenblas.def \ | |||
| --entry _dllinit@12 -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(EXTRALIB) | |||
| -lib /machine:i386 /def:libopenblas.def | |||
| else | |||
| $(DLLWRAP) -o ../$(LIBDLLNAME) --def libopenblas.def \ | |||
| --entry $(FU)dllinit -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(EXTRALIB) | |||
| -lib /machine:X64 /def:libopenblas.def | |||
| endif | |||
| libgoto2_shared.dll : ../$(LIBNAME) libgoto2_shared.def | |||
| $(CC) $(CFLAGS) $(LDFLAGS) libgoto2_shared.def -shared -o $(@F) \ | |||
| -Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \ | |||
| -Wl,--out-implib,libgoto2_shared.lib $(FEXTRALIB) | |||
| $(CC) $(CFLAGS) $(LDFLAGS) libopenblas.def dllinit.$(SUFFIX) \ | |||
| -shared -o ../$(LIBDLLNAME) -Wl,--out-implib,../$(LIBPREFIX).lib \ | |||
| -Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive $(FEXTRALIB) | |||
| libopenblas.def : gensymbol | |||
| perl ./gensymbol win2k $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) > $(@F) | |||
| libgoto2_shared.def : gensymbol | |||
| perl ./gensymbol win2k $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) > $(@F) | |||
| libgoto_hpl.def : gensymbol | |||
| perl ./gensymbol win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) > $(@F) | |||
| $(LIBDYNNAME) : ../$(LIBNAME) osx.def | |||
| $(FC) $(FFLAGS) -all_load -headerpad_max_install_names -install_name $(CURDIR)/../$(LIBDYNNAME) -dynamiclib -o ../$(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def $(FEXTRALIB) | |||
| symbol.$(SUFFIX) : symbol.S | |||
| $(CC) $(CFLAGS) -c -o $(@F) $^ | |||
| dllinit.$(SUFFIX) : dllinit.c | |||
| $(CC) $(CFLAGS) -c -o $(@F) -s $< | |||
| @@ -123,7 +103,7 @@ ifeq ($(OSNAME), Linux) | |||
| so : ../$(LIBSONAME) | |||
| ../$(LIBSONAME) : ../$(LIBNAME) linux.def linktest.c | |||
| ../$(LIBSONAME) : ../$(LIBNAME) linktest.c | |||
| ifneq ($(C_COMPILER), LSB) | |||
| $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \ | |||
| -Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \ | |||
| @@ -145,7 +125,7 @@ ifeq ($(OSNAME), $(filter $(OSNAME),FreeBSD NetBSD)) | |||
| so : ../$(LIBSONAME) | |||
| ../$(LIBSONAME) : ../$(LIBNAME) linux.def linktest.c | |||
| ../$(LIBSONAME) : ../$(LIBNAME) linktest.c | |||
| $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \ | |||
| -Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \ | |||
| $(FEXTRALIB) $(EXTRALIB) | |||
| @@ -197,18 +177,12 @@ static : ../$(LIBNAME) | |||
| $(AR) -cq ../$(LIBNAME) goto.$(SUFFIX) | |||
| rm -f goto.$(SUFFIX) | |||
| linux.def : gensymbol ../Makefile.system ../getarch.c | |||
| perl ./gensymbol linux $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) > $(@F) | |||
| osx.def : gensymbol ../Makefile.system ../getarch.c | |||
| perl ./gensymbol osx $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) > $(@F) | |||
| aix.def : gensymbol ../Makefile.system ../getarch.c | |||
| perl ./gensymbol aix $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) > $(@F) | |||
| symbol.S : gensymbol | |||
| perl ./gensymbol win2kasm noarch dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) > symbol.S | |||
| test : linktest.c | |||
| $(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) -lm && echo OK. | |||
| rm -f linktest | |||
| @@ -41,7 +41,7 @@ | |||
| void gotoblas_init(void); | |||
| void gotoblas_quit(void); | |||
| BOOL APIENTRY dllinit(HINSTANCE hInst, DWORD reason, LPVOID reserved) { | |||
| BOOL APIENTRY DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserved) { | |||
| if (reason == DLL_PROCESS_ATTACH) { | |||
| gotoblas_init(); | |||
| @@ -2667,34 +2667,34 @@ | |||
| ## @(MATGEN_OBJ) from `lapack-3.4.1/lapacke/src/Makefile` | |||
| ## Not exported: requires LAPACKE_TESTING to be set and depends on libtmg | |||
| ## (see `lapack-3.4.1/TESTING/MATGEN`). | |||
| #LAPACKE_clatms, | |||
| #LAPACKE_clatms_work, | |||
| #LAPACKE_dlatms, | |||
| #LAPACKE_dlatms_work, | |||
| #LAPACKE_slatms, | |||
| #LAPACKE_slatms_work, | |||
| #LAPACKE_zlatms, | |||
| #LAPACKE_zlatms_work, | |||
| #LAPACKE_clagge, | |||
| #LAPACKE_clagge_work, | |||
| #LAPACKE_dlagge, | |||
| #LAPACKE_dlagge_work, | |||
| #LAPACKE_slagge, | |||
| #LAPACKE_slagge_work, | |||
| #LAPACKE_zlagge, | |||
| #LAPACKE_zlagge_work, | |||
| #LAPACKE_claghe, | |||
| #LAPACKE_claghe_work, | |||
| #LAPACKE_zlaghe, | |||
| #LAPACKE_zlaghe_work, | |||
| #LAPACKE_clagsy, | |||
| #LAPACKE_clagsy_work, | |||
| #LAPACKE_dlagsy, | |||
| #LAPACKE_dlagsy_work, | |||
| #LAPACKE_slagsy, | |||
| #LAPACKE_slagsy_work, | |||
| #LAPACKE_zlagsy, | |||
| #LAPACKE_zlagsy_work, | |||
| LAPACKE_clatms, | |||
| LAPACKE_clatms_work, | |||
| LAPACKE_dlatms, | |||
| LAPACKE_dlatms_work, | |||
| LAPACKE_slatms, | |||
| LAPACKE_slatms_work, | |||
| LAPACKE_zlatms, | |||
| LAPACKE_zlatms_work, | |||
| LAPACKE_clagge, | |||
| LAPACKE_clagge_work, | |||
| LAPACKE_dlagge, | |||
| LAPACKE_dlagge_work, | |||
| LAPACKE_slagge, | |||
| LAPACKE_slagge_work, | |||
| LAPACKE_zlagge, | |||
| LAPACKE_zlagge_work, | |||
| LAPACKE_claghe, | |||
| LAPACKE_claghe_work, | |||
| LAPACKE_zlaghe, | |||
| LAPACKE_zlaghe_work, | |||
| LAPACKE_clagsy, | |||
| LAPACKE_clagsy_work, | |||
| LAPACKE_dlagsy, | |||
| LAPACKE_dlagsy_work, | |||
| LAPACKE_slagsy, | |||
| LAPACKE_slagsy_work, | |||
| LAPACKE_zlagsy, | |||
| LAPACKE_zlagsy_work, | |||
| ); | |||
| #These function may need 2 underscores. | |||
| @@ -2725,8 +2725,7 @@ if ($ARGV[8] == 1) { | |||
| } elsif ($ARGV[5] == 1) { | |||
| #NO_LAPACK=1 | |||
| @underscore_objs = (@blasobjs, @misc_underscore_objs); | |||
| } elsif (-d "../lapack-3.1.1" || -d "../lapack-3.4.0" || -d "../lapack-3.4.1" || | |||
| -d "../lapack-3.4.2" || -d "../lapack-netlib") { | |||
| } elsif (-d "../lapack-netlib") { | |||
| if ($ARGV[7] == 0){ | |||
| # NEED2UNDERSCORES=0 | |||
| @@ -2771,14 +2770,6 @@ if ($ARGV[6] == 1) { | |||
| @no_underscore_objs = (@no_underscore_objs, @lapackeobjs); | |||
| } | |||
| @linuxobjs = ('__strtol_internal', 'exit', 'free', 'getenv', 'malloc', | |||
| 'mmap', 'printf', 'sqrt', | |||
| 'pthread_cond_broadcast', 'pthread_cond_destroy', | |||
| 'pthread_cond_init', 'pthread_cond_signal', 'pthread_cond_wait', | |||
| 'pthread_create', 'pthread_exit', 'pthread_join', | |||
| 'pthread_mutex_destroy', 'pthread_mutex_init', | |||
| 'pthread_mutex_lock', 'pthread_mutex_unlock'); | |||
| @hplobjs = (daxpy, dcopy, dscal, idamax, dgemv, dtrsv, dger, dgemm, dtrsm); | |||
| @hplobjs2 = (HPL_dlaswp00N, HPL_dlaswp01N, HPL_dlaswp01T); | |||
| @@ -2786,31 +2777,6 @@ $bu = $ARGV[2]; | |||
| $bu = "" if (($bu eq "0") || ($bu eq "1")); | |||
| if ($ARGV[0] eq "linux"){ | |||
| @underscore_objs = (@underscore_objs, @misc_common_objs); | |||
| @no_underscore_objs = (@no_underscore_objs, @misc_common_objs); | |||
| foreach $objs (@underscore_objs) { | |||
| print $objs, $bu, "\n"; | |||
| } | |||
| foreach $objs (@need_2underscore_objs) { | |||
| print $objs, $bu, $bu, "\n"; | |||
| } | |||
| # if ($ARGV[4] == 0) { | |||
| foreach $objs (@no_underscore_objs) { | |||
| print $objs, "\n"; | |||
| } | |||
| # } | |||
| foreach $objs (@linuxobjs) { | |||
| print $objs, "\n"; | |||
| } | |||
| exit(0); | |||
| } | |||
| if ($ARGV[0] eq "osx"){ | |||
| @underscore_objs = (@underscore_objs, @misc_common_objs); | |||
| @@ -2956,32 +2922,6 @@ if ($ARGV[0] eq "microsoft"){ | |||
| exit(0); | |||
| } | |||
| if ($ARGV[0] eq "win2kasm"){ | |||
| @underscore_objs = (@underscore_objs, @misc_common_objs); | |||
| print "\t.text\n"; | |||
| foreach $objs (@underscore_objs) { | |||
| $uppercase = $objs; | |||
| $uppercase =~ tr/[a-z]/[A-Z]/; | |||
| print "\t.align 16\n"; | |||
| print "\t.globl _", $uppercase, "_\n"; | |||
| print "_", $uppercase, "_:\n"; | |||
| print "\tjmp\t_", $objs, "_\n"; | |||
| } | |||
| foreach $objs (@need_2underscore_objs) { | |||
| $uppercase = $objs; | |||
| $uppercase =~ tr/[a-z]/[A-Z]/; | |||
| print "\t.align 16\n"; | |||
| print "\t.globl _", $uppercase, "__\n"; | |||
| print "_", $uppercase, "__:\n"; | |||
| print "\tjmp\t_", $objs, "__\n"; | |||
| } | |||
| exit(0); | |||
| } | |||
| if ($ARGV[0] eq "linktest"){ | |||
| @underscore_objs = (@underscore_objs, @misc_common_objs); | |||
| @@ -724,6 +724,22 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| #else | |||
| #endif | |||
| #ifdef FORCE_ARMV5 | |||
| #define FORCE | |||
| #define ARCHITECTURE "ARM" | |||
| #define SUBARCHITECTURE "ARMV5" | |||
| #define SUBDIRNAME "arm" | |||
| #define ARCHCONFIG "-DARMV5 " \ | |||
| "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ | |||
| "-DL2_SIZE=512488 -DL2_LINESIZE=32 " \ | |||
| "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " \ | |||
| "-DHAVE_VFP" | |||
| #define LIBNAME "armv5" | |||
| #define CORENAME "ARMV5" | |||
| #else | |||
| #endif | |||
| #ifdef FORCE_ARMV8 | |||
| #define FORCE | |||
| #define ARCHITECTURE "ARM64" | |||
| @@ -2,11 +2,11 @@ TOPDIR = .. | |||
| include $(TOPDIR)/Makefile.system | |||
| ifeq ($(ARCH), x86) | |||
| SUPPORT_GEMM3M = 1 | |||
| SUPPORT_GEMM3M = 0 | |||
| endif | |||
| ifeq ($(ARCH), x86_64) | |||
| SUPPORT_GEMM3M = 1 | |||
| SUPPORT_GEMM3M = 0 | |||
| endif | |||
| ifeq ($(ARCH), ia64) | |||
| @@ -342,30 +342,56 @@ CBLASOBJS = $(CBLAS1OBJS) $(CBLAS2OBJS) $(CBLAS3OBJS) | |||
| ZBLASOBJS = $(ZBLAS1OBJS) $(ZBLAS2OBJS) $(ZBLAS3OBJS) | |||
| XBLASOBJS = $(XBLAS1OBJS) $(XBLAS2OBJS) $(XBLAS3OBJS) | |||
| #SLAPACKOBJS = \ | |||
| # sgetf2.$(SUFFIX) sgetrf.$(SUFFIX) slauu2.$(SUFFIX) slauum.$(SUFFIX) \ | |||
| # spotf2.$(SUFFIX) spotrf.$(SUFFIX) strti2.$(SUFFIX) strtri.$(SUFFIX) \ | |||
| # slaswp.$(SUFFIX) sgetrs.$(SUFFIX) sgesv.$(SUFFIX) spotri.$(SUFFIX) \ | |||
| SLAPACKOBJS = \ | |||
| sgetf2.$(SUFFIX) sgetrf.$(SUFFIX) slauu2.$(SUFFIX) slauum.$(SUFFIX) \ | |||
| spotf2.$(SUFFIX) spotrf.$(SUFFIX) strti2.$(SUFFIX) strtri.$(SUFFIX) \ | |||
| slaswp.$(SUFFIX) sgetrs.$(SUFFIX) sgesv.$(SUFFIX) spotri.$(SUFFIX) \ | |||
| sgetrf.$(SUFFIX) sgetrs.$(SUFFIX) spotrf.$(SUFFIX) sgetf2.$(SUFFIX) \ | |||
| spotf2.$(SUFFIX) slaswp.$(SUFFIX) sgesv.$(SUFFIX) slauu2.$(SUFFIX) \ | |||
| slauum.$(SUFFIX) strti2.$(SUFFIX) strtri.$(SUFFIX) spotri.$(SUFFIX) | |||
| #DLAPACKOBJS = \ | |||
| # dgetf2.$(SUFFIX) dgetrf.$(SUFFIX) dlauu2.$(SUFFIX) dlauum.$(SUFFIX) \ | |||
| # dpotf2.$(SUFFIX) dpotrf.$(SUFFIX) dtrti2.$(SUFFIX) dtrtri.$(SUFFIX) \ | |||
| # dlaswp.$(SUFFIX) dgetrs.$(SUFFIX) dgesv.$(SUFFIX) dpotri.$(SUFFIX) \ | |||
| DLAPACKOBJS = \ | |||
| dgetf2.$(SUFFIX) dgetrf.$(SUFFIX) dlauu2.$(SUFFIX) dlauum.$(SUFFIX) \ | |||
| dpotf2.$(SUFFIX) dpotrf.$(SUFFIX) dtrti2.$(SUFFIX) dtrtri.$(SUFFIX) \ | |||
| dlaswp.$(SUFFIX) dgetrs.$(SUFFIX) dgesv.$(SUFFIX) dpotri.$(SUFFIX) \ | |||
| dgetrf.$(SUFFIX) dgetrs.$(SUFFIX) dpotrf.$(SUFFIX) dgetf2.$(SUFFIX) \ | |||
| dpotf2.$(SUFFIX) dlaswp.$(SUFFIX) dgesv.$(SUFFIX) dlauu2.$(SUFFIX) \ | |||
| dlauum.$(SUFFIX) dtrti2.$(SUFFIX) dtrtri.$(SUFFIX) dpotri.$(SUFFIX) | |||
| QLAPACKOBJS = \ | |||
| qgetf2.$(SUFFIX) qgetrf.$(SUFFIX) qlauu2.$(SUFFIX) qlauum.$(SUFFIX) \ | |||
| qpotf2.$(SUFFIX) qpotrf.$(SUFFIX) qtrti2.$(SUFFIX) qtrtri.$(SUFFIX) \ | |||
| qlaswp.$(SUFFIX) qgetrs.$(SUFFIX) qgesv.$(SUFFIX) qpotri.$(SUFFIX) \ | |||
| #CLAPACKOBJS = \ | |||
| # cgetf2.$(SUFFIX) cgetrf.$(SUFFIX) clauu2.$(SUFFIX) clauum.$(SUFFIX) \ | |||
| # cpotf2.$(SUFFIX) cpotrf.$(SUFFIX) ctrti2.$(SUFFIX) ctrtri.$(SUFFIX) \ | |||
| # claswp.$(SUFFIX) cgetrs.$(SUFFIX) cgesv.$(SUFFIX) cpotri.$(SUFFIX) \ | |||
| CLAPACKOBJS = \ | |||
| cgetf2.$(SUFFIX) cgetrf.$(SUFFIX) clauu2.$(SUFFIX) clauum.$(SUFFIX) \ | |||
| cpotf2.$(SUFFIX) cpotrf.$(SUFFIX) ctrti2.$(SUFFIX) ctrtri.$(SUFFIX) \ | |||
| claswp.$(SUFFIX) cgetrs.$(SUFFIX) cgesv.$(SUFFIX) cpotri.$(SUFFIX) \ | |||
| cgetrf.$(SUFFIX) cgetrs.$(SUFFIX) cpotrf.$(SUFFIX) cgetf2.$(SUFFIX) \ | |||
| cpotf2.$(SUFFIX) claswp.$(SUFFIX) cgesv.$(SUFFIX) clauu2.$(SUFFIX) \ | |||
| clauum.$(SUFFIX) ctrti2.$(SUFFIX) ctrtri.$(SUFFIX) cpotri.$(SUFFIX) | |||
| #ZLAPACKOBJS = \ | |||
| # zgetf2.$(SUFFIX) zgetrf.$(SUFFIX) zlauu2.$(SUFFIX) zlauum.$(SUFFIX) \ | |||
| # zpotf2.$(SUFFIX) zpotrf.$(SUFFIX) ztrti2.$(SUFFIX) ztrtri.$(SUFFIX) \ | |||
| # zlaswp.$(SUFFIX) zgetrs.$(SUFFIX) zgesv.$(SUFFIX) zpotri.$(SUFFIX) \ | |||
| ZLAPACKOBJS = \ | |||
| zgetf2.$(SUFFIX) zgetrf.$(SUFFIX) zlauu2.$(SUFFIX) zlauum.$(SUFFIX) \ | |||
| zpotf2.$(SUFFIX) zpotrf.$(SUFFIX) ztrti2.$(SUFFIX) ztrtri.$(SUFFIX) \ | |||
| zlaswp.$(SUFFIX) zgetrs.$(SUFFIX) zgesv.$(SUFFIX) zpotri.$(SUFFIX) \ | |||
| zgetrf.$(SUFFIX) zgetrs.$(SUFFIX) zpotrf.$(SUFFIX) zgetf2.$(SUFFIX) \ | |||
| zpotf2.$(SUFFIX) zlaswp.$(SUFFIX) zgesv.$(SUFFIX) zlauu2.$(SUFFIX) \ | |||
| zlauum.$(SUFFIX) ztrti2.$(SUFFIX) ztrtri.$(SUFFIX) zpotri.$(SUFFIX) | |||
| XLAPACKOBJS = \ | |||
| xgetf2.$(SUFFIX) xgetrf.$(SUFFIX) xlauu2.$(SUFFIX) xlauum.$(SUFFIX) \ | |||
| @@ -375,10 +401,10 @@ XLAPACKOBJS = \ | |||
| ifneq ($(NO_LAPACK), 1) | |||
| SBLASOBJS += $(SLAPACKOBJS) | |||
| DBLASOBJS += $(DLAPACKOBJS) | |||
| QBLASOBJS += $(QLAPACKOBJS) | |||
| #QBLASOBJS += $(QLAPACKOBJS) | |||
| CBLASOBJS += $(CLAPACKOBJS) | |||
| ZBLASOBJS += $(ZLAPACKOBJS) | |||
| XBLASOBJS += $(XLAPACKOBJS) | |||
| #XBLASOBJS += $(XLAPACKOBJS) | |||
| endif | |||
| @@ -1731,217 +1757,217 @@ cblas_cher2k.$(SUFFIX) cblas_cher2k.$(PSUFFIX) : syr2k.c | |||
| cblas_zher2k.$(SUFFIX) cblas_zher2k.$(PSUFFIX) : syr2k.c | |||
| $(CC) -DCBLAS -c $(CFLAGS) -DHEMM $< -o $(@F) | |||
| sgetf2.$(SUFFIX) sgetf2.$(PSUFFIX) : getf2.c | |||
| sgetf2.$(SUFFIX) sgetf2.$(PSUFFIX) : lapack/getf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dgetf2.$(SUFFIX) dgetf2.$(PSUFFIX) : getf2.c | |||
| dgetf2.$(SUFFIX) dgetf2.$(PSUFFIX) : lapack/getf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qgetf2.$(SUFFIX) qgetf2.$(PSUFFIX) : getf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| cgetf2.$(SUFFIX) cgetf2.$(PSUFFIX) : zgetf2.c | |||
| cgetf2.$(SUFFIX) cgetf2.$(PSUFFIX) : lapack/zgetf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zgetf2.$(SUFFIX) zgetf2.$(PSUFFIX) : zgetf2.c | |||
| zgetf2.$(SUFFIX) zgetf2.$(PSUFFIX) : lapack/zgetf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xgetf2.$(SUFFIX) xgetf2.$(PSUFFIX) : zgetf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| sgetrf.$(SUFFIX) sgetrf.$(PSUFFIX) : getrf.c | |||
| sgetrf.$(SUFFIX) sgetrf.$(PSUFFIX) : lapack/getrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dgetrf.$(SUFFIX) dgetrf.$(PSUFFIX) : getrf.c | |||
| dgetrf.$(SUFFIX) dgetrf.$(PSUFFIX) : lapack/getrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qgetrf.$(SUFFIX) qgetrf.$(PSUFFIX) : getrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| cgetrf.$(SUFFIX) cgetrf.$(PSUFFIX) : zgetrf.c | |||
| cgetrf.$(SUFFIX) cgetrf.$(PSUFFIX) : lapack/zgetrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zgetrf.$(SUFFIX) zgetrf.$(PSUFFIX) : zgetrf.c | |||
| zgetrf.$(SUFFIX) zgetrf.$(PSUFFIX) : lapack/zgetrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xgetrf.$(SUFFIX) xgetrf.$(PSUFFIX) : zgetrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| slauu2.$(SUFFIX) slauu2.$(PSUFFIX) : lauu2.c | |||
| slauu2.$(SUFFIX) slauu2.$(PSUFFIX) : lapack/lauu2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dlauu2.$(SUFFIX) dlauu2.$(PSUFFIX) : lauu2.c | |||
| dlauu2.$(SUFFIX) dlauu2.$(PSUFFIX) : lapack/lauu2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qlauu2.$(SUFFIX) qlauu2.$(PSUFFIX) : lauu2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| clauu2.$(SUFFIX) clauu2.$(PSUFFIX) : zlauu2.c | |||
| clauu2.$(SUFFIX) clauu2.$(PSUFFIX) : lapack/zlauu2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zlauu2.$(SUFFIX) zlauu2.$(PSUFFIX) : zlauu2.c | |||
| zlauu2.$(SUFFIX) zlauu2.$(PSUFFIX) : lapack/zlauu2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xlauu2.$(SUFFIX) xlauu2.$(PSUFFIX) : zlauu2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| slauum.$(SUFFIX) slauum.$(PSUFFIX) : lauum.c | |||
| slauum.$(SUFFIX) slauum.$(PSUFFIX) : lapack/lauum.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dlauum.$(SUFFIX) dlauum.$(PSUFFIX) : lauum.c | |||
| dlauum.$(SUFFIX) dlauum.$(PSUFFIX) : lapack/lauum.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qlauum.$(SUFFIX) qlauum.$(PSUFFIX) : lauum.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| clauum.$(SUFFIX) clauum.$(PSUFFIX) : zlauum.c | |||
| clauum.$(SUFFIX) clauum.$(PSUFFIX) : lapack/zlauum.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zlauum.$(SUFFIX) zlauum.$(PSUFFIX) : zlauum.c | |||
| zlauum.$(SUFFIX) zlauum.$(PSUFFIX) : lapack/zlauum.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xlauum.$(SUFFIX) xlauum.$(PSUFFIX) : zlauum.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| spotf2.$(SUFFIX) spotf2.$(PSUFFIX) : potf2.c | |||
| spotf2.$(SUFFIX) spotf2.$(PSUFFIX) : lapack/potf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dpotf2.$(SUFFIX) dpotf2.$(PSUFFIX) : potf2.c | |||
| dpotf2.$(SUFFIX) dpotf2.$(PSUFFIX) : lapack/potf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qpotf2.$(SUFFIX) qpotf2.$(PSUFFIX) : potf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| cpotf2.$(SUFFIX) cpotf2.$(PSUFFIX) : zpotf2.c | |||
| cpotf2.$(SUFFIX) cpotf2.$(PSUFFIX) : lapack/zpotf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zpotf2.$(SUFFIX) zpotf2.$(PSUFFIX) : zpotf2.c | |||
| zpotf2.$(SUFFIX) zpotf2.$(PSUFFIX) : lapack/zpotf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xpotf2.$(SUFFIX) xpotf2.$(PSUFFIX) : zpotf2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| spotrf.$(SUFFIX) spotrf.$(PSUFFIX) : potrf.c | |||
| spotrf.$(SUFFIX) spotrf.$(PSUFFIX) : lapack/potrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dpotrf.$(SUFFIX) dpotrf.$(PSUFFIX) : potrf.c | |||
| dpotrf.$(SUFFIX) dpotrf.$(PSUFFIX) : lapack/potrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qpotrf.$(SUFFIX) qpotrf.$(PSUFFIX) : potrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| cpotrf.$(SUFFIX) cpotrf.$(PSUFFIX) : zpotrf.c | |||
| cpotrf.$(SUFFIX) cpotrf.$(PSUFFIX) : lapack/zpotrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zpotrf.$(SUFFIX) zpotrf.$(PSUFFIX) : zpotrf.c | |||
| zpotrf.$(SUFFIX) zpotrf.$(PSUFFIX) : lapack/zpotrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xpotrf.$(SUFFIX) xpotrf.$(PSUFFIX) : zpotrf.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| strti2.$(SUFFIX) strti2.$(PSUFFIX) : trti2.c | |||
| strti2.$(SUFFIX) strti2.$(PSUFFIX) : lapack/trti2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dtrti2.$(SUFFIX) dtrti2.$(PSUFFIX) : trti2.c | |||
| dtrti2.$(SUFFIX) dtrti2.$(PSUFFIX) : lapack/trti2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qtrti2.$(SUFFIX) qtrti2.$(PSUFFIX) : trti2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| ctrti2.$(SUFFIX) ctrti2.$(PSUFFIX) : ztrti2.c | |||
| ctrti2.$(SUFFIX) ctrti2.$(PSUFFIX) : lapack/ztrti2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| ztrti2.$(SUFFIX) ztrti2.$(PSUFFIX) : ztrti2.c | |||
| ztrti2.$(SUFFIX) ztrti2.$(PSUFFIX) : lapack/ztrti2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xtrti2.$(SUFFIX) xtrti2.$(PSUFFIX) : ztrti2.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| strtri.$(SUFFIX) strtri.$(PSUFFIX) : trtri.c | |||
| strtri.$(SUFFIX) strtri.$(PSUFFIX) : lapack/trtri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dtrtri.$(SUFFIX) dtrtri.$(PSUFFIX) : trtri.c | |||
| dtrtri.$(SUFFIX) dtrtri.$(PSUFFIX) : lapack/trtri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qtrtri.$(SUFFIX) qtrtri.$(PSUFFIX) : trtri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| ctrtri.$(SUFFIX) ctrtri.$(PSUFFIX) : ztrtri.c | |||
| ctrtri.$(SUFFIX) ctrtri.$(PSUFFIX) : lapack/ztrtri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| ztrtri.$(SUFFIX) ztrtri.$(PSUFFIX) : ztrtri.c | |||
| ztrtri.$(SUFFIX) ztrtri.$(PSUFFIX) : lapack/ztrtri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xtrtri.$(SUFFIX) xtrtri.$(PSUFFIX) : ztrtri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| slaswp.$(SUFFIX) slaswp.$(PSUFFIX) : laswp.c | |||
| slaswp.$(SUFFIX) slaswp.$(PSUFFIX) : lapack/laswp.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dlaswp.$(SUFFIX) dlaswp.$(PSUFFIX) : laswp.c | |||
| dlaswp.$(SUFFIX) dlaswp.$(PSUFFIX) : lapack/laswp.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qlaswp.$(SUFFIX) qlaswp.$(PSUFFIX) : laswp.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| claswp.$(SUFFIX) claswp.$(PSUFFIX) : zlaswp.c | |||
| claswp.$(SUFFIX) claswp.$(PSUFFIX) : lapack/zlaswp.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zlaswp.$(SUFFIX) zlaswp.$(PSUFFIX) : zlaswp.c | |||
| zlaswp.$(SUFFIX) zlaswp.$(PSUFFIX) : lapack/zlaswp.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xlaswp.$(SUFFIX) xlaswp.$(PSUFFIX) : zlaswp.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| sgetrs.$(SUFFIX) sgetrs.$(PSUFFIX) : getrs.c | |||
| sgetrs.$(SUFFIX) sgetrs.$(PSUFFIX) : lapack/getrs.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dgetrs.$(SUFFIX) dgetrs.$(PSUFFIX) : getrs.c | |||
| dgetrs.$(SUFFIX) dgetrs.$(PSUFFIX) : lapack/getrs.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qgetrs.$(SUFFIX) qgetrs.$(PSUFFIX) : getrs.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| cgetrs.$(SUFFIX) cgetrs.$(PSUFFIX) : zgetrs.c | |||
| cgetrs.$(SUFFIX) cgetrs.$(PSUFFIX) : lapack/zgetrs.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zgetrs.$(SUFFIX) zgetrs.$(PSUFFIX) : zgetrs.c | |||
| zgetrs.$(SUFFIX) zgetrs.$(PSUFFIX) : lapack/zgetrs.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xgetrs.$(SUFFIX) xgetrs.$(PSUFFIX) : zgetrs.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| sgesv.$(SUFFIX) sgesv.$(PSUFFIX) : gesv.c | |||
| sgesv.$(SUFFIX) sgesv.$(PSUFFIX) : lapack/gesv.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dgesv.$(SUFFIX) dgesv.$(PSUFFIX) : gesv.c | |||
| dgesv.$(SUFFIX) dgesv.$(PSUFFIX) : lapack/gesv.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qgesv.$(SUFFIX) qgesv.$(PSUFFIX) : gesv.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| cgesv.$(SUFFIX) cgesv.$(PSUFFIX) : gesv.c | |||
| cgesv.$(SUFFIX) cgesv.$(PSUFFIX) : lapack/gesv.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zgesv.$(SUFFIX) zgesv.$(PSUFFIX) : gesv.c | |||
| zgesv.$(SUFFIX) zgesv.$(PSUFFIX) : lapack/gesv.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xgesv.$(SUFFIX) xgesv.$(PSUFFIX) : gesv.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| spotri.$(SUFFIX) spotri.$(PSUFFIX) : potri.c | |||
| spotri.$(SUFFIX) spotri.$(PSUFFIX) : lapack/potri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| dpotri.$(SUFFIX) dpotri.$(PSUFFIX) : potri.c | |||
| dpotri.$(SUFFIX) dpotri.$(PSUFFIX) : lapack/potri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| qpotri.$(SUFFIX) qpotri.$(PSUFFIX) : potri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| cpotri.$(SUFFIX) cpotri.$(PSUFFIX) : zpotri.c | |||
| cpotri.$(SUFFIX) cpotri.$(PSUFFIX) : lapack/zpotri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| zpotri.$(SUFFIX) zpotri.$(PSUFFIX) : zpotri.c | |||
| zpotri.$(SUFFIX) zpotri.$(PSUFFIX) : lapack/zpotri.c | |||
| $(CC) -c $(CFLAGS) $< -o $(@F) | |||
| xpotri.$(SUFFIX) xpotri.$(PSUFFIX) : zpotri.c | |||
| @@ -86,7 +86,8 @@ void CNAME(blasint n, FLOAT alpha, FLOAT *x, blasint incx, FLOAT *y, blasint inc | |||
| if (incx == 0 || incy == 0) | |||
| nthreads = 1; | |||
| //Temporarily walk around the low performance issue with small imput size & multithreads. | |||
| //Temporarily work-around the low performance issue with small imput size & | |||
| //multithreads. | |||
| if (n <= 10000) | |||
| nthreads = 1; | |||
| @@ -149,7 +149,10 @@ int NAME(char *UPLO, blasint *N, FLOAT *a, blasint *ldA, blasint *Info){ | |||
| blas_memory_free(buffer); | |||
| #endif | |||
| FUNCTION_PROFILE_END(COMPSIZE * COMPSIZE, args.m * args.n, 2. / 3. * args.m * args.n * args.n); | |||
| FUNCTION_PROFILE_END(COMPSIZE * COMPSIZE, .5 * args.n * args.n, | |||
| args.n * (1./3. + args.n * ( 1./2. + args.n * 1./6.)) | |||
| + args.n * (1./3. + args.n * (-1./2. + args.n * 1./6.))); | |||
| IDEBUG_END; | |||
| @@ -26,7 +26,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| *****************************************************************************/ | |||
| /************************************************************************************** | |||
| * 2014/02/28 Saar | |||
| * 2014/05/02 Saar | |||
| * fixed two bugs as reported by Brendan Tracey | |||
| * Test with lapack-3.5.0 : OK | |||
| * | |||
| **************************************************************************************/ | |||
| @@ -145,9 +146,12 @@ void CNAME(FLOAT *dd1, FLOAT *dd2, FLOAT *dx1, FLOAT dy1, FLOAT *dparam){ | |||
| } | |||
| else | |||
| { | |||
| dh21 = -ONE; | |||
| dh12 = ONE; | |||
| dflag = -ONE; | |||
| if(dflag == ONE) | |||
| { | |||
| dh21 = -ONE; | |||
| dh12 = ONE; | |||
| dflag = -ONE; | |||
| } | |||
| } | |||
| if( *dd1 <= RGAMSQ ) | |||
| { | |||
| @@ -178,9 +182,12 @@ void CNAME(FLOAT *dd1, FLOAT *dd2, FLOAT *dx1, FLOAT dy1, FLOAT *dparam){ | |||
| } | |||
| else | |||
| { | |||
| dh21 = -ONE; | |||
| dh12 = ONE; | |||
| dflag = -ONE; | |||
| if(dflag == ONE) | |||
| { | |||
| dh21 = -ONE; | |||
| dh12 = ONE; | |||
| dflag = -ONE; | |||
| } | |||
| } | |||
| if( ABS(*dd2) <= RGAMSQ ) | |||
| { | |||
| @@ -61,7 +61,7 @@ static int (*sbmv[])(BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLA | |||
| #endif | |||
| }; | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| static int (*sbmv_thread[])(BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = { | |||
| #ifdef XDOUBLE | |||
| qsbmv_thread_U, qsbmv_thread_L, | |||
| @@ -90,7 +90,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint * | |||
| blasint info; | |||
| int uplo; | |||
| FLOAT *buffer; | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| int nthreads; | |||
| #endif | |||
| @@ -130,7 +130,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| FLOAT *buffer; | |||
| int uplo; | |||
| blasint info; | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| int nthreads; | |||
| #endif | |||
| @@ -189,7 +189,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| buffer = (FLOAT *)blas_memory_alloc(1); | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| nthreads = num_cpu_avail(2); | |||
| if (nthreads == 1) { | |||
| @@ -197,7 +197,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| (sbmv[uplo])(n, k, alpha, a, lda, x, incx, y, incy, buffer); | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| } else { | |||
| (sbmv_thread[uplo])(n, k, alpha, a, lda, x, incx, y, incy, buffer, nthreads); | |||
| @@ -61,7 +61,7 @@ static int (*spmv[])(BLASLONG, FLOAT, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLAS | |||
| #endif | |||
| }; | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| static int (*spmv_thread[])(BLASLONG, FLOAT, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = { | |||
| #ifdef XDOUBLE | |||
| qspmv_thread_U, qspmv_thread_L, | |||
| @@ -88,7 +88,7 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, | |||
| blasint info; | |||
| int uplo; | |||
| FLOAT *buffer; | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| int nthreads; | |||
| #endif | |||
| @@ -126,7 +126,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| FLOAT *buffer; | |||
| int uplo; | |||
| blasint info; | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| int nthreads; | |||
| #endif | |||
| @@ -181,7 +181,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| buffer = (FLOAT *)blas_memory_alloc(1); | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| nthreads = num_cpu_avail(2); | |||
| if (nthreads == 1) { | |||
| @@ -189,7 +189,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| (spmv[uplo])(n, alpha, a, x, incx, y, incy, buffer); | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| } else { | |||
| (spmv_thread[uplo])(n, alpha, a, x, incx, y, incy, buffer, nthreads); | |||
| @@ -145,12 +145,21 @@ void NAME(char *UPLO, char *TRANS, | |||
| if (uplo_arg == 'U') uplo = 0; | |||
| if (uplo_arg == 'L') uplo = 1; | |||
| #ifndef COMPLEX | |||
| if (trans_arg == 'N') trans = 0; | |||
| #ifndef HEMM | |||
| if (trans_arg == 'T') trans = 1; | |||
| if (trans_arg == 'R') trans = 0; | |||
| #endif | |||
| if (trans_arg == 'C') trans = 1; | |||
| #else | |||
| #ifdef HEMM | |||
| if (trans_arg == 'N') trans = 0; | |||
| if (trans_arg == 'C') trans = 1; | |||
| #else | |||
| if (trans_arg == 'N') trans = 0; | |||
| if (trans_arg == 'T') trans = 1; | |||
| #endif | |||
| #endif | |||
| nrowa = args.n; | |||
| if (trans & 1) nrowa = args.k; | |||
| @@ -148,12 +148,21 @@ void NAME(char *UPLO, char *TRANS, | |||
| if (uplo_arg == 'U') uplo = 0; | |||
| if (uplo_arg == 'L') uplo = 1; | |||
| #ifndef COMPLEX | |||
| if (trans_arg == 'N') trans = 0; | |||
| #ifndef HEMM | |||
| if (trans_arg == 'T') trans = 1; | |||
| if (trans_arg == 'R') trans = 0; | |||
| #endif | |||
| if (trans_arg == 'C') trans = 1; | |||
| #else | |||
| #ifdef HEMM | |||
| if (trans_arg == 'N') trans = 0; | |||
| if (trans_arg == 'C') trans = 1; | |||
| #else | |||
| if (trans_arg == 'N') trans = 0; | |||
| if (trans_arg == 'T') trans = 1; | |||
| #endif | |||
| #endif | |||
| nrowa = args.n; | |||
| if (trans & 1) nrowa = args.k; | |||
| @@ -61,7 +61,7 @@ static int (*hbmv[])(BLASLONG, BLASLONG, FLOAT, FLOAT, FLOAT *, BLASLONG, FLOAT | |||
| #endif | |||
| }; | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| static int (*hbmv_thread[])(BLASLONG, BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = { | |||
| #ifdef XDOUBLE | |||
| xhbmv_thread_U, xhbmv_thread_L, xhbmv_thread_V, xhbmv_thread_M, | |||
| @@ -92,7 +92,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint * | |||
| blasint info; | |||
| int uplo; | |||
| FLOAT *buffer; | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| int nthreads; | |||
| #endif | |||
| @@ -138,7 +138,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| FLOAT *buffer; | |||
| int uplo; | |||
| blasint info; | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| int nthreads; | |||
| #endif | |||
| @@ -197,7 +197,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| buffer = (FLOAT *)blas_memory_alloc(1); | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| nthreads = num_cpu_avail(2); | |||
| if (nthreads == 1) { | |||
| @@ -205,7 +205,7 @@ void CNAME(enum CBLAS_ORDER order, | |||
| (hbmv[uplo])(n, k, alpha_r, alpha_i, a, lda, x, incx, y, incy, buffer); | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| } else { | |||
| (hbmv_thread[uplo])(n, k, ALPHA, a, lda, x, incx, y, incy, buffer, nthreads); | |||
| @@ -61,7 +61,7 @@ static int (*sbmv[])(BLASLONG, BLASLONG, FLOAT, FLOAT, FLOAT *, BLASLONG, FLOAT | |||
| #endif | |||
| }; | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| static int (*sbmv_thread[])(BLASLONG, BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = { | |||
| #ifdef XDOUBLE | |||
| xsbmv_thread_U, xsbmv_thread_L, | |||
| @@ -90,7 +90,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint * | |||
| blasint info; | |||
| int uplo; | |||
| FLOAT *buffer; | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| int nthreads; | |||
| #endif | |||
| @@ -131,7 +131,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint * | |||
| buffer = (FLOAT *)blas_memory_alloc(1); | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| nthreads = num_cpu_avail(2); | |||
| if (nthreads == 1) { | |||
| @@ -139,7 +139,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint * | |||
| (sbmv[uplo])(n, k, alpha_r, alpha_i, a, lda, b, incx, c, incy, buffer); | |||
| #ifdef SMP | |||
| #ifdef SMPBUG | |||
| } else { | |||
| (sbmv_thread[uplo])(n, k, ALPHA, a, lda, b, incx, c, incy, buffer, nthreads); | |||
| @@ -61,7 +61,7 @@ static int (*spmv[])(BLASLONG, FLOAT, FLOAT, FLOAT *, FLOAT *, BLASLONG, FLOAT | |||
| #endif | |||
| }; | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| static int (*spmv_thread[])(BLASLONG, FLOAT *, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = { | |||
| #ifdef XDOUBLE | |||
| xspmv_thread_U, xspmv_thread_L, | |||
| @@ -88,7 +88,7 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, | |||
| blasint info; | |||
| int uplo; | |||
| FLOAT *buffer; | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| int nthreads; | |||
| #endif | |||
| @@ -127,7 +127,7 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, | |||
| buffer = (FLOAT *)blas_memory_alloc(1); | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| nthreads = num_cpu_avail(2); | |||
| if (nthreads == 1) { | |||
| @@ -135,7 +135,7 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, | |||
| (spmv[uplo])(n, alpha_r, alpha_i, a, b, incx, c, incy, buffer); | |||
| #ifdef SMP | |||
| #ifdef SMPTEST | |||
| } else { | |||
| @@ -0,0 +1,134 @@ | |||
| SAMAXKERNEL = ../arm/amax.c | |||
| DAMAXKERNEL = ../arm/amax.c | |||
| CAMAXKERNEL = ../arm/zamax.c | |||
| ZAMAXKERNEL = ../arm/zamax.c | |||
| SAMINKERNEL = ../arm/amin.c | |||
| DAMINKERNEL = ../arm/amin.c | |||
| CAMINKERNEL = ../arm/zamin.c | |||
| ZAMINKERNEL = ../arm/zamin.c | |||
| SMAXKERNEL = ../arm/max.c | |||
| DMAXKERNEL = ../arm/max.c | |||
| SMINKERNEL = ../arm/min.c | |||
| DMINKERNEL = ../arm/min.c | |||
| ISAMAXKERNEL = ../arm/iamax.c | |||
| IDAMAXKERNEL = ../arm/iamax.c | |||
| ICAMAXKERNEL = ../arm/izamax.c | |||
| IZAMAXKERNEL = ../arm/izamax.c | |||
| ISAMINKERNEL = ../arm/iamin.c | |||
| IDAMINKERNEL = ../arm/iamin.c | |||
| ICAMINKERNEL = ../arm/izamin.c | |||
| IZAMINKERNEL = ../arm/izamin.c | |||
| ISMAXKERNEL = ../arm/imax.c | |||
| IDMAXKERNEL = ../arm/imax.c | |||
| ISMINKERNEL = ../arm/imin.c | |||
| IDMINKERNEL = ../arm/imin.c | |||
| SASUMKERNEL = ../arm/asum.c | |||
| DASUMKERNEL = ../arm/asum.c | |||
| CASUMKERNEL = ../arm/zasum.c | |||
| ZASUMKERNEL = ../arm/zasum.c | |||
| SAXPYKERNEL = ../arm/axpy.c | |||
| DAXPYKERNEL = ../arm/axpy.c | |||
| CAXPYKERNEL = ../arm/zaxpy.c | |||
| ZAXPYKERNEL = ../arm/zaxpy.c | |||
| SCOPYKERNEL = ../arm/copy.c | |||
| DCOPYKERNEL = ../arm/copy.c | |||
| CCOPYKERNEL = ../arm/zcopy.c | |||
| ZCOPYKERNEL = ../arm/zcopy.c | |||
| SDOTKERNEL = ../arm/dot.c | |||
| DDOTKERNEL = ../arm/dot.c | |||
| CDOTKERNEL = ../arm/zdot.c | |||
| ZDOTKERNEL = ../arm/zdot.c | |||
| SNRM2KERNEL = ../arm/nrm2.c | |||
| DNRM2KERNEL = ../arm/nrm2.c | |||
| CNRM2KERNEL = ../arm/znrm2.c | |||
| ZNRM2KERNEL = ../arm/znrm2.c | |||
| SROTKERNEL = ../arm/rot.c | |||
| DROTKERNEL = ../arm/rot.c | |||
| CROTKERNEL = ../arm/zrot.c | |||
| ZROTKERNEL = ../arm/zrot.c | |||
| SSCALKERNEL = ../arm/scal.c | |||
| DSCALKERNEL = ../arm/scal.c | |||
| CSCALKERNEL = ../arm/zscal.c | |||
| ZSCALKERNEL = ../arm/zscal.c | |||
| SSWAPKERNEL = ../arm/swap.c | |||
| DSWAPKERNEL = ../arm/swap.c | |||
| CSWAPKERNEL = ../arm/zswap.c | |||
| ZSWAPKERNEL = ../arm/zswap.c | |||
| SGEMVNKERNEL = ../arm/gemv_n.c | |||
| DGEMVNKERNEL = ../arm/gemv_n.c | |||
| CGEMVNKERNEL = ../arm/zgemv_n.c | |||
| ZGEMVNKERNEL = ../arm/zgemv_n.c | |||
| SGEMVTKERNEL = ../arm/gemv_t.c | |||
| DGEMVTKERNEL = ../arm/gemv_t.c | |||
| CGEMVTKERNEL = ../arm/zgemv_t.c | |||
| ZGEMVTKERNEL = ../arm/zgemv_t.c | |||
| STRMMKERNEL = ../generic/trmmkernel_2x2.c | |||
| DTRMMKERNEL = ../generic/trmmkernel_2x2.c | |||
| CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c | |||
| ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c | |||
| SGEMMKERNEL = ../generic/gemmkernel_2x2.c | |||
| SGEMMONCOPY = ../generic/gemm_ncopy_2.c | |||
| SGEMMOTCOPY = ../generic/gemm_tcopy_2.c | |||
| SGEMMONCOPYOBJ = sgemm_oncopy.o | |||
| SGEMMOTCOPYOBJ = sgemm_otcopy.o | |||
| DGEMMKERNEL = ../generic/gemmkernel_2x2.c | |||
| DGEMMONCOPY = ../generic/gemm_ncopy_2.c | |||
| DGEMMOTCOPY = ../generic/gemm_tcopy_2.c | |||
| DGEMMONCOPYOBJ = dgemm_oncopy.o | |||
| DGEMMOTCOPYOBJ = dgemm_otcopy.o | |||
| CGEMMKERNEL = ../generic/zgemmkernel_2x2.c | |||
| CGEMMONCOPY = ../generic/zgemm_ncopy_2.c | |||
| CGEMMOTCOPY = ../generic/zgemm_tcopy_2.c | |||
| CGEMMONCOPYOBJ = cgemm_oncopy.o | |||
| CGEMMOTCOPYOBJ = cgemm_otcopy.o | |||
| ZGEMMKERNEL = ../generic/zgemmkernel_2x2.c | |||
| ZGEMMONCOPY = ../generic/zgemm_ncopy_2.c | |||
| ZGEMMOTCOPY = ../generic/zgemm_tcopy_2.c | |||
| ZGEMMONCOPYOBJ = zgemm_oncopy.o | |||
| ZGEMMOTCOPYOBJ = zgemm_otcopy.o | |||
| STRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
| STRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
| STRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
| STRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||
| DTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
| DTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
| DTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
| DTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||
| CTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
| CTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
| CTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
| CTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||
| ZTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
| ZTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
| ZTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
| ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||
| @@ -1,3 +1,27 @@ | |||
| SGEMVNKERNEL = ../arm/gemv_n.c | |||
| SGEMVTKERNEL = ../arm/gemv_t.c | |||
| DGEMVNKERNEL = ../arm/gemv_n.c | |||
| DGEMVTKERNEL = ../arm/gemv_t.c | |||
| CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c | |||
| CGEMMKERNEL = ../generic/zgemmkernel_2x2.c | |||
| CGEMMONCOPY = ../generic/zgemm_ncopy_2.c | |||
| CGEMMOTCOPY = ../generic/zgemm_tcopy_2.c | |||
| #ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c | |||
| #ZGEMMKERNEL = ../generic/zgemmkernel_2x2.c | |||
| #ZGEMMONCOPY = ../generic/zgemm_ncopy_2.c | |||
| #ZGEMMOTCOPY = ../generic/zgemm_tcopy_2.c | |||
| #STRMMKERNEL = ../generic/trmmkernel_2x2.c | |||
| #SGEMMKERNEL = ../generic/gemmkernel_2x2.c | |||
| #SGEMMONCOPY = ../generic/gemm_ncopy_2.c | |||
| #SGEMMOTCOPY = ../generic/gemm_tcopy_2.c | |||
| ############################################################################### | |||
| SAMAXKERNEL = iamax_vfp.S | |||
| DAMAXKERNEL = iamax_vfp.S | |||
| CAMAXKERNEL = iamax_vfp.S | |||
| @@ -60,29 +84,29 @@ DROTKERNEL = rot_vfp.S | |||
| CROTKERNEL = rot_vfp.S | |||
| ZROTKERNEL = rot_vfp.S | |||
| SSCALKERNEL = scal_vfp.S | |||
| DSCALKERNEL = scal_vfp.S | |||
| CSCALKERNEL = scal_vfp.S | |||
| ZSCALKERNEL = scal_vfp.S | |||
| SSCALKERNEL = scal.c | |||
| DSCALKERNEL = scal.c | |||
| CSCALKERNEL = zscal.c | |||
| ZSCALKERNEL = zscal.c | |||
| SSWAPKERNEL = swap_vfp.S | |||
| DSWAPKERNEL = swap_vfp.S | |||
| CSWAPKERNEL = swap_vfp.S | |||
| ZSWAPKERNEL = swap_vfp.S | |||
| SGEMVNKERNEL = gemv_n_vfp.S | |||
| DGEMVNKERNEL = gemv_n_vfp.S | |||
| # BAD SGEMVNKERNEL = gemv_n_vfp.S | |||
| # BAD DGEMVNKERNEL = gemv_n_vfp.S | |||
| CGEMVNKERNEL = cgemv_n_vfp.S | |||
| ZGEMVNKERNEL = zgemv_n_vfp.S | |||
| SGEMVTKERNEL = gemv_t_vfp.S | |||
| DGEMVTKERNEL = gemv_t_vfp.S | |||
| # BAD SGEMVTKERNEL = gemv_t_vfp.S | |||
| # BAD DGEMVTKERNEL = gemv_t_vfp.S | |||
| CGEMVTKERNEL = cgemv_t_vfp.S | |||
| ZGEMVTKERNEL = zgemv_t_vfp.S | |||
| STRMMKERNEL = strmm_kernel_4x2_vfp.S | |||
| DTRMMKERNEL = dtrmm_kernel_4x2_vfp.S | |||
| CTRMMKERNEL = ctrmm_kernel_2x2_vfp.S | |||
| #CTRMMKERNEL = ctrmm_kernel_2x2_vfp.S | |||
| ZTRMMKERNEL = ztrmm_kernel_2x2_vfp.S | |||
| SGEMMKERNEL = sgemm_kernel_4x2_vfp.S | |||
| @@ -105,9 +129,9 @@ DGEMMOTCOPY = ../generic/gemm_tcopy_2.c | |||
| DGEMMONCOPYOBJ = dgemm_oncopy.o | |||
| DGEMMOTCOPYOBJ = dgemm_otcopy.o | |||
| CGEMMKERNEL = cgemm_kernel_2x2_vfp.S | |||
| CGEMMONCOPY = cgemm_ncopy_2_vfp.S | |||
| CGEMMOTCOPY = cgemm_tcopy_2_vfp.S | |||
| #CGEMMKERNEL = cgemm_kernel_2x2_vfp.S | |||
| #CGEMMONCOPY = cgemm_ncopy_2_vfp.S | |||
| #CGEMMOTCOPY = cgemm_tcopy_2_vfp.S | |||
| CGEMMONCOPYOBJ = cgemm_oncopy.o | |||
| CGEMMOTCOPYOBJ = cgemm_otcopy.o | |||
| @@ -1,3 +1,8 @@ | |||
| SGEMVNKERNEL = ../arm/gemv_n.c | |||
| SGEMVTKERNEL = ../arm/gemv_t.c | |||
| ################################################################################# | |||
| SAMAXKERNEL = iamax_vfp.S | |||
| DAMAXKERNEL = iamax_vfp.S | |||
| CAMAXKERNEL = iamax_vfp.S | |||
| @@ -65,17 +70,17 @@ DROTKERNEL = rot_vfp.S | |||
| CROTKERNEL = rot_vfp.S | |||
| ZROTKERNEL = rot_vfp.S | |||
| SSCALKERNEL = scal_vfp.S | |||
| SSCALKERNEL = scal.c | |||
| DSCALKERNEL = scal.c | |||
| CSCALKERNEL = scal_vfp.S | |||
| ZSCALKERNEL = scal_vfp.S | |||
| CSCALKERNEL = zscal.c | |||
| ZSCALKERNEL = zscal.c | |||
| SGEMVNKERNEL = gemv_n_vfp.S | |||
| DGEMVNKERNEL = gemv_n.c | |||
| # BAD SGEMVNKERNEL = gemv_n_vfp.S | |||
| DGEMVNKERNEL = gemv_n_vfp.S | |||
| CGEMVNKERNEL = cgemv_n_vfp.S | |||
| ZGEMVNKERNEL = zgemv_n_vfp.S | |||
| SGEMVTKERNEL = gemv_t_vfp.S | |||
| # BAD SGEMVTKERNEL = gemv_t_vfp.S | |||
| DGEMVTKERNEL = gemv_t_vfp.S | |||
| CGEMVTKERNEL = cgemv_t_vfp.S | |||
| ZGEMVTKERNEL = zgemv_t_vfp.S | |||
| @@ -38,20 +38,21 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2) | |||
| { | |||
| BLASLONG i=0; | |||
| BLASLONG i=0,j=0; | |||
| if ( n < 0 || inc_x < 1 ) return(0); | |||
| if ( da == 1.0 ) return(0); | |||
| n *= inc_x; | |||
| while(i < n) | |||
| while(j < n) | |||
| { | |||
| x[i] = da * x[i] ; | |||
| if ( da == 0.0 ) | |||
| x[i]=0.0; | |||
| else | |||
| x[i] = da * x[i] ; | |||
| i += inc_x ; | |||
| j++; | |||
| } | |||
| return(0); | |||
| return; | |||
| } | |||
| @@ -43,19 +43,39 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r,FLOAT da_i, F | |||
| BLASLONG ip = 0; | |||
| FLOAT temp; | |||
| if ( n < 0 || inc_x < 1 ) return(0); | |||
| inc_x2 = 2 * inc_x; | |||
| for ( i=0; i<n; i++ ) | |||
| { | |||
| temp = da_r * x[ip] - da_i * x[ip+1] ; | |||
| x[ip+1] = da_r * x[ip+1] + da_i * x[ip] ; | |||
| if ( da_r == 0.0 ) | |||
| { | |||
| if ( da_i == 0.0 ) | |||
| { | |||
| temp = 0.0; | |||
| x[ip+1] = 0.0 ; | |||
| } | |||
| else | |||
| { | |||
| temp = - da_i * x[ip+1] ; | |||
| x[ip+1] = da_i * x[ip] ; | |||
| } | |||
| } | |||
| else | |||
| { | |||
| if ( da_i == 0.0 ) | |||
| { | |||
| temp = da_r * x[ip] ; | |||
| x[ip+1] = da_r * x[ip+1]; | |||
| } | |||
| else | |||
| { | |||
| temp = da_r * x[ip] - da_i * x[ip+1] ; | |||
| x[ip+1] = da_r * x[ip+1] + da_i * x[ip] ; | |||
| } | |||
| } | |||
| x[ip] = temp; | |||
| ip += inc_x2; | |||
| } | |||
| return(0); | |||
| @@ -59,7 +59,7 @@ CASUMKERNEL = zasum_sse.S | |||
| endif | |||
| ifndef SDOTKERNEL | |||
| SDOTKERNEL = dot_sse.S | |||
| SDOTKERNEL = ../arm/dot.c | |||
| endif | |||
| ifndef CDOTKERNEL | |||
| @@ -107,11 +107,11 @@ CSWAPKERNEL = zswap_sse.S | |||
| endif | |||
| ifndef SGEMVNKERNEL | |||
| SGEMVNKERNEL = gemv_n_sse.S | |||
| SGEMVNKERNEL = ../arm/gemv_n.c | |||
| endif | |||
| ifndef SGEMVTKERNEL | |||
| SGEMVTKERNEL = gemv_t_sse.S | |||
| SGEMVTKERNEL = ../arm/gemv_t.c | |||
| endif | |||
| ifndef CGEMVNKERNEL | |||
| @@ -119,7 +119,7 @@ XCOPYKERNEL = zcopy.S | |||
| endif | |||
| ifndef SDOTKERNEL | |||
| SDOTKERNEL = dot_sse.S | |||
| SDOTKERNEL = ../arm/dot.c | |||
| endif | |||
| ifndef DDOTKERNEL | |||
| @@ -369,11 +369,11 @@ endif | |||
| GEMVDEP = ../l2param.h | |||
| ifndef SGEMVNKERNEL | |||
| SGEMVNKERNEL = sgemv_n.S | |||
| SGEMVNKERNEL = ../arm/gemv_n.c | |||
| endif | |||
| ifndef SGEMVTKERNEL | |||
| SGEMVTKERNEL = sgemv_t.S | |||
| SGEMVTKERNEL = ../arm/gemv_t.c | |||
| endif | |||
| ifndef DGEMVNKERNEL | |||
| @@ -7,15 +7,19 @@ SGEMMINCOPYOBJ = sgemm_incopy$(TSUFFIX).$(SUFFIX) | |||
| SGEMMITCOPYOBJ = sgemm_itcopy$(TSUFFIX).$(SUFFIX) | |||
| SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX) | |||
| SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX) | |||
| DGEMMKERNEL = gemm_kernel_2x8_nehalem.S | |||
| DGEMMINCOPY = dgemm_ncopy_2.S | |||
| DGEMMITCOPY = dgemm_tcopy_2.S | |||
| DGEMMONCOPY = ../generic/gemm_ncopy_8.c | |||
| DGEMMOTCOPY = dgemm_tcopy_8.S | |||
| DGEMMINCOPYOBJ = dgemm_incopy$(TSUFFIX).$(SUFFIX) | |||
| DGEMMITCOPYOBJ = dgemm_itcopy$(TSUFFIX).$(SUFFIX) | |||
| DGEMMKERNEL = gemm_kernel_4x4_core2.S | |||
| DGEMMINCOPY = | |||
| DGEMMITCOPY = | |||
| DGEMMONCOPY = gemm_ncopy_4.S | |||
| DGEMMOTCOPY = gemm_tcopy_4.S | |||
| DGEMMINCOPYOBJ = | |||
| DGEMMITCOPYOBJ = | |||
| DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX) | |||
| DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX) | |||
| CGEMMKERNEL = zgemm_kernel_2x4_nehalem.S | |||
| CGEMMINCOPY = zgemm_ncopy_2.S | |||
| CGEMMITCOPY = zgemm_tcopy_2.S | |||
| @@ -40,10 +44,11 @@ STRSMKERNEL_LT = trsm_kernel_LT_4x8_nehalem.S | |||
| STRSMKERNEL_RN = trsm_kernel_LT_4x8_nehalem.S | |||
| STRSMKERNEL_RT = trsm_kernel_RT_4x8_nehalem.S | |||
| DTRSMKERNEL_LN = trsm_kernel_LN_2x8_nehalem.S | |||
| DTRSMKERNEL_LT = trsm_kernel_LT_2x8_nehalem.S | |||
| DTRSMKERNEL_RN = trsm_kernel_LT_2x8_nehalem.S | |||
| DTRSMKERNEL_RT = trsm_kernel_RT_2x8_nehalem.S | |||
| DTRSMKERNEL_LN = trsm_kernel_LN_4x4_core2.S | |||
| DTRSMKERNEL_LT = trsm_kernel_LT_4x4_core2.S | |||
| DTRSMKERNEL_RN = trsm_kernel_LT_4x4_core2.S | |||
| DTRSMKERNEL_RT = trsm_kernel_RT_4x4_core2.S | |||
| CTRSMKERNEL_LN = ztrsm_kernel_LN_2x4_nehalem.S | |||
| CTRSMKERNEL_LT = ztrsm_kernel_LT_2x4_nehalem.S | |||
| @@ -1,34 +1,35 @@ | |||
| SGEMMKERNEL = sgemm_kernel_8x8_sandy.S | |||
| SGEMMINCOPY = | |||
| SGEMMITCOPY = | |||
| SGEMMKERNEL = gemm_kernel_4x8_nehalem.S | |||
| SGEMMINCOPY = gemm_ncopy_4.S | |||
| SGEMMITCOPY = gemm_tcopy_4.S | |||
| SGEMMONCOPY = ../generic/gemm_ncopy_8.c | |||
| SGEMMOTCOPY = ../generic/gemm_tcopy_8.c | |||
| SGEMMINCOPYOBJ = | |||
| SGEMMITCOPYOBJ = | |||
| SGEMMINCOPYOBJ = sgemm_incopy$(TSUFFIX).$(SUFFIX) | |||
| SGEMMITCOPYOBJ = sgemm_itcopy$(TSUFFIX).$(SUFFIX) | |||
| SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX) | |||
| SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX) | |||
| DGEMMKERNEL = dgemm_kernel_4x8_sandy.S | |||
| DGEMMINCOPY = ../generic/gemm_ncopy_8.c | |||
| DGEMMITCOPY = ../generic/gemm_tcopy_8.c | |||
| #DGEMMONCOPY = gemm_ncopy_4.S | |||
| DGEMMONCOPY = ../generic/gemm_ncopy_4.c | |||
| DGEMMOTCOPY = ../generic/gemm_tcopy_4.c | |||
| #DGEMMOTCOPY = gemm_tcopy_4.S | |||
| DGEMMINCOPYOBJ = dgemm_incopy$(TSUFFIX).$(SUFFIX) | |||
| DGEMMITCOPYOBJ = dgemm_itcopy$(TSUFFIX).$(SUFFIX) | |||
| DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX) | |||
| DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX) | |||
| #CGEMMKERNEL = zgemm_kernel_2x4_nehalem.S | |||
| CGEMMKERNEL = cgemm_kernel_4x8_sandy.S | |||
| CGEMMINCOPY = ../generic/zgemm_ncopy_8_sandy.c | |||
| CGEMMITCOPY = ../generic/zgemm_tcopy_8_sandy.c | |||
| CGEMMONCOPY = ../generic/zgemm_ncopy_4_sandy.c | |||
| CGEMMOTCOPY = ../generic/zgemm_tcopy_4_sandy.c | |||
| CGEMMKERNEL = zgemm_kernel_2x4_nehalem.S | |||
| CGEMMINCOPY = zgemm_ncopy_2.S | |||
| CGEMMITCOPY = zgemm_tcopy_2.S | |||
| CGEMMONCOPY = ../generic/zgemm_ncopy_4.c | |||
| CGEMMOTCOPY = ../generic/zgemm_tcopy_4.c | |||
| CGEMMINCOPYOBJ = cgemm_incopy$(TSUFFIX).$(SUFFIX) | |||
| CGEMMITCOPYOBJ = cgemm_itcopy$(TSUFFIX).$(SUFFIX) | |||
| CGEMMONCOPYOBJ = cgemm_oncopy$(TSUFFIX).$(SUFFIX) | |||
| CGEMMOTCOPYOBJ = cgemm_otcopy$(TSUFFIX).$(SUFFIX) | |||
| #ZGEMMKERNEL = zgemm_kernel_1x4_nehalem.S | |||
| ZGEMMKERNEL = zgemm_kernel_4x4_sandy.S | |||
| ZGEMMINCOPY = | |||
| ZGEMMITCOPY = | |||
| @@ -58,6 +59,7 @@ ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX) | |||
| #ZTRSMKERNEL_LT = ztrsm_kernel_LT_1x4_nehalem.S | |||
| #ZTRSMKERNEL_RN = ztrsm_kernel_LT_1x4_nehalem.S | |||
| #ZTRSMKERNEL_RT = ztrsm_kernel_RT_1x4_nehalem.S | |||
| STRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
| STRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
| STRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
| @@ -80,10 +80,12 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| #ifndef WINDOWS_ABI | |||
| #define STACKSIZE 96 | |||
| #define L_BUFFER_SIZE 256*8*12+4096 | |||
| #else | |||
| #define STACKSIZE 256 | |||
| #define L_BUFFER_SIZE 128*8*12+4096 | |||
| #define OLD_A 40 + STACKSIZE(%rsp) | |||
| #define OLD_B 48 + STACKSIZE(%rsp) | |||
| @@ -93,7 +95,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| #endif | |||
| #define L_BUFFER_SIZE 512*8*12 | |||
| #define Ndiv12 24(%rsp) | |||
| #define Nmod12 32(%rsp) | |||
| @@ -0,0 +1,19 @@ | |||
| ======================================================================================== | |||
| 2014/05/07 Saar | |||
| Platform: BULLDOZER single thread | |||
| --> LAPACK TESTING SUMMARY <-- | |||
| Processing LAPACK Testing output found in the TESTING direcory | |||
| SUMMARY nb test run numerical error other error | |||
| ================ =========== ================= ================ | |||
| REAL 1079349 0 (0.000%) 0 (0.000%) | |||
| DOUBLE PRECISION 1080161 0 (0.000%) 0 (0.000%) | |||
| COMPLEX 556022 0 (0.000%) 0 (0.000%) | |||
| COMPLEX16 556834 0 (0.000%) 0 (0.000%) | |||
| --> ALL PRECISIONS 3272366 0 (0.000%) 0 (0.000%) | |||
| ======================================================================================== | |||
| @@ -56,7 +56,7 @@ include ../make.inc | |||
| ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla_array.o iparmq.o \ | |||
| ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \ | |||
| ../INSTALL/ilaver.o | |||
| ../INSTALL/ilaver.o ../INSTALL/slamch.o | |||
| SCLAUX = \ | |||
| sbdsdc.o \ | |||
| @@ -92,7 +92,7 @@ DZLAUX = \ | |||
| dlasr.o dlasrt.o dlassq.o dlasv2.o dpttrf.o dstebz.o dstedc.o \ | |||
| dsteqr.o dsterf.o dlaisnan.o disnan.o \ | |||
| dlartgp.o dlartgs.o \ | |||
| ../INSTALL/dsecnd_$(TIMER).o | |||
| ../INSTALL/dlamch.o ../INSTALL/dsecnd_$(TIMER).o | |||
| SLASRC = \ | |||
| sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \ | |||
| @@ -101,7 +101,7 @@ SLASRC = \ | |||
| sgegs.o sgegv.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o \ | |||
| sgels.o sgelsd.o sgelss.o sgelsx.o sgelsy.o sgeql2.o sgeqlf.o \ | |||
| sgeqp3.o sgeqpf.o sgeqr2.o sgeqr2p.o sgeqrf.o sgeqrfp.o sgerfs.o \ | |||
| sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvx.o \ | |||
| sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesvd.o sgesvx.o \ | |||
| sgetc2.o sgetri.o \ | |||
| sggbak.o sggbal.o sgges.o sggesx.o sggev.o sggevx.o \ | |||
| sggglm.o sgghrd.o sgglse.o sggqrf.o \ | |||
| @@ -127,7 +127,7 @@ SLASRC = \ | |||
| sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \ | |||
| spbstf.o spbsv.o spbsvx.o \ | |||
| spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o \ | |||
| sposvx.o spotri.o spstrf.o spstf2.o \ | |||
| sposvx.o spstrf.o spstf2.o \ | |||
| sppcon.o sppequ.o \ | |||
| spprfs.o sppsv.o sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o \ | |||
| spteqr.o sptrfs.o sptsv.o sptsvx.o spttrs.o sptts2.o srscl.o \ | |||
| @@ -157,7 +157,7 @@ SLASRC = \ | |||
| sgeqrt.o sgeqrt2.o sgeqrt3.o sgemqrt.o \ | |||
| stpqrt.o stpqrt2.o stpmqrt.o stprfb.o | |||
| DSLASRC = spotrs.o | |||
| DSLASRC = spotrs.o | |||
| ifdef USEXBLAS | |||
| SXLASRC = sgesvxx.o sgerfsx.o sla_gerfsx_extended.o sla_geamv.o \ | |||
| @@ -176,7 +176,7 @@ CLASRC = \ | |||
| cgegs.o cgegv.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o \ | |||
| cgels.o cgelsd.o cgelss.o cgelsx.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o \ | |||
| cgeqpf.o cgeqr2.o cgeqr2p.o cgeqrf.o cgeqrfp.o cgerfs.o \ | |||
| cgerq2.o cgerqf.o cgesc2.o cgesdd.o cgesv.o cgesvd.o \ | |||
| cgerq2.o cgerqf.o cgesc2.o cgesdd.o cgesvd.o \ | |||
| cgesvx.o cgetc2.o cgetri.o \ | |||
| cggbak.o cggbal.o cgges.o cggesx.o cggev.o cggevx.o cggglm.o \ | |||
| cgghrd.o cgglse.o cggqrf.o cggrqf.o \ | |||
| @@ -210,14 +210,14 @@ CLASRC = \ | |||
| clasyf.o clasyf_rook.o clatbs.o clatdf.o clatps.o clatrd.o clatrs.o clatrz.o \ | |||
| clatzm.o cpbcon.o cpbequ.o cpbrfs.o cpbstf.o cpbsv.o \ | |||
| cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o \ | |||
| cposv.o cposvx.o cpotri.o cpstrf.o cpstf2.o \ | |||
| cposv.o cposvx.o cpstrf.o cpstf2.o \ | |||
| cppcon.o cppequ.o cpprfs.o cppsv.o cppsvx.o cpptrf.o cpptri.o cpptrs.o \ | |||
| cptcon.o cpteqr.o cptrfs.o cptsv.o cptsvx.o cpttrf.o cpttrs.o cptts2.o \ | |||
| crot.o cspcon.o cspmv.o cspr.o csprfs.o cspsv.o \ | |||
| crot.o cspcon.o csprfs.o cspsv.o \ | |||
| cspsvx.o csptrf.o csptri.o csptrs.o csrscl.o cstedc.o \ | |||
| cstegr.o cstein.o csteqr.o \ | |||
| csycon.o csymv.o \ | |||
| csyr.o csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o csytri2.o csytri2x.o \ | |||
| csycon.o \ | |||
| csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o csytri2.o csytri2x.o \ | |||
| csyswapr.o csytrs.o csytrs2.o csyconv.o \ | |||
| csytf2_rook.o csytrf_rook.o csytrs_rook.o \ | |||
| csytri_rook.o csycon_rook.o csysv_rook.o \ | |||
| @@ -252,7 +252,7 @@ CXLASRC = cgesvxx.o cgerfsx.o cla_gerfsx_extended.o cla_geamv.o \ | |||
| cla_lin_berr.o clarscl2.o clascl2.o cla_wwaddw.o | |||
| endif | |||
| ZCLASRC = cpotrs.o | |||
| ZCLASRC = cpotrs.o | |||
| DLASRC = \ | |||
| dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \ | |||
| @@ -261,7 +261,7 @@ DLASRC = \ | |||
| dgegs.o dgegv.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o \ | |||
| dgels.o dgelsd.o dgelss.o dgelsx.o dgelsy.o dgeql2.o dgeqlf.o \ | |||
| dgeqp3.o dgeqpf.o dgeqr2.o dgeqr2p.o dgeqrf.o dgeqrfp.o dgerfs.o \ | |||
| dgerq2.o dgerqf.o dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvx.o \ | |||
| dgerq2.o dgerqf.o dgesc2.o dgesdd.o dgesvd.o dgesvx.o \ | |||
| dgetc2.o dgetri.o \ | |||
| dggbak.o dggbal.o dgges.o dggesx.o dggev.o dggevx.o \ | |||
| dggglm.o dgghrd.o dgglse.o dggqrf.o \ | |||
| @@ -287,7 +287,7 @@ DLASRC = \ | |||
| dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \ | |||
| dpbstf.o dpbsv.o dpbsvx.o \ | |||
| dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o \ | |||
| dposvx.o dpotri.o dpotrs.o dpstrf.o dpstf2.o \ | |||
| dposvx.o dpotrs.o dpstrf.o dpstf2.o \ | |||
| dppcon.o dppequ.o \ | |||
| dpprfs.o dppsv.o dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o \ | |||
| dpteqr.o dptrfs.o dptsv.o dptsvx.o dpttrs.o dptts2.o drscl.o \ | |||
| @@ -335,8 +335,8 @@ ZLASRC = \ | |||
| zgegs.o zgegv.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o \ | |||
| zgels.o zgelsd.o zgelss.o zgelsx.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o \ | |||
| zgeqpf.o zgeqr2.o zgeqr2p.o zgeqrf.o zgeqrfp.o zgerfs.o zgerq2.o zgerqf.o \ | |||
| zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvx.o zgetc2.o \ | |||
| zgetri.o \ | |||
| zgesc2.o zgesdd.o zgesvd.o zgesvx.o zgetc2.o \ | |||
| zgetri.o \ | |||
| zggbak.o zggbal.o zgges.o zggesx.o zggev.o zggevx.o zggglm.o \ | |||
| zgghrd.o zgglse.o zggqrf.o zggrqf.o \ | |||
| zggsvd.o zggsvp.o \ | |||
| @@ -369,17 +369,17 @@ ZLASRC = \ | |||
| zlarfx.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o \ | |||
| zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o \ | |||
| zlassq.o zlasyf.o zlasyf_rook.o \ | |||
| zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrz.o zlatzm.o zlauu2.o \ | |||
| zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrz.o zlatzm.o \ | |||
| zpbcon.o zpbequ.o zpbrfs.o zpbstf.o zpbsv.o \ | |||
| zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o \ | |||
| zposv.o zposvx.o zpotri.o zpotrs.o zpstrf.o zpstf2.o \ | |||
| zposv.o zposvx.o zpotrs.o zpstrf.o zpstf2.o \ | |||
| zppcon.o zppequ.o zpprfs.o zppsv.o zppsvx.o zpptrf.o zpptri.o zpptrs.o \ | |||
| zptcon.o zpteqr.o zptrfs.o zptsv.o zptsvx.o zpttrf.o zpttrs.o zptts2.o \ | |||
| zrot.o zspcon.o zspmv.o zspr.o zsprfs.o zspsv.o \ | |||
| zrot.o zspcon.o zsprfs.o zspsv.o \ | |||
| zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrscl.o zstedc.o \ | |||
| zstegr.o zstein.o zsteqr.o \ | |||
| zsycon.o zsymv.o \ | |||
| zsyr.o zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o zsytri2.o zsytri2x.o \ | |||
| zsycon.o \ | |||
| zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o zsytri2.o zsytri2x.o \ | |||
| zsyswapr.o zsytrs.o zsytrs2.o zsyconv.o \ | |||
| zsytf2_rook.o zsytrf_rook.o zsytrs_rook.o \ | |||
| zsytri_rook.o zsycon_rook.o zsysv_rook.o \ | |||
| @@ -417,8 +417,6 @@ endif | |||
| ALLOBJ = $(SLASRC) $(DLASRC) $(DSLASRC) $(CLASRC) $(ZLASRC) $(ZCLASRC) \ | |||
| $(SCLAUX) $(DZLAUX) $(ALLAUX) | |||
| ALLOBJ_P = $(ALLOBJ:.o=.$(PSUFFIX)) | |||
| ifdef USEXBLAS | |||
| ALLXOBJ = $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) | |||
| endif | |||
| @@ -435,6 +433,7 @@ lapacklib: $(ALLOBJ) $(ALLXOBJ) | |||
| $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ_P) | |||
| $(RANLIB) $@ | |||
| single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX) | |||
| $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(DSLASRC) \ | |||
| $(SXLASRC) $(SCLAUX) $(ALLAUX) $(ALLXAUX) | |||
| @@ -483,16 +482,11 @@ clean: | |||
| %.$(PSUFFIX): %.f | |||
| $(FORTRAN) $(POPTS) -c $< -o $@ | |||
| slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| dlaruv.o: dlaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| sla_wwaddw.o: sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| dla_wwaddw.o: dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| cla_wwaddw.o: cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| zla_wwaddw.o: zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| slaruv.$(PSUFFIX): slaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| dlaruv.$(PSUFFIX): dlaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| sla_wwaddw.$(PSUFFIX): sla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| dla_wwaddw.$(PSUFFIX): dla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| cla_wwaddw.$(PSUFFIX): cla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| zla_wwaddw.$(PSUFFIX): zla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| dlaruv.o: dlaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| sla_wwaddw.o: sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| dla_wwaddw.o: dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| cla_wwaddw.o: cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| zla_wwaddw.o: zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| @@ -5,5 +5,5 @@ Data file for testing COMPLEX LAPACK linear equation routines RFP format | |||
| 1 2 15 Values of NRHS (number of right hand sides) | |||
| 9 Number of matrix types (list types on next line if 0 < NTYPES < 9) | |||
| 1 2 3 4 5 6 7 8 9 Matrix Types | |||
| 30.0 Threshold value of test ratio | |||
| 50.0 Threshold value of test ratio | |||
| T Put T to test the error exits | |||
| @@ -5,7 +5,7 @@ SEP: Data file for testing Symmetric Eigenvalue Problem routines | |||
| 1 3 3 3 10 Values of NB (blocksize) | |||
| 2 2 2 2 2 Values of NBMIN (minimum blocksize) | |||
| 1 0 5 9 1 Values of NX (crossover point) | |||
| 50.0 Threshold value | |||
| 60.0 Threshold value | |||
| T Put T to test the LAPACK routines | |||
| T Put T to test the driver routines | |||
| T Put T to test the error exits | |||
| @@ -7,7 +7,7 @@ SVD: Data file for testing Singular Value Decomposition routines | |||
| 2 2 2 2 2 Values of NBMIN (minimum blocksize) | |||
| 1 0 5 9 1 Values of NX (crossover point) | |||
| 2 0 2 2 2 Values of NRHS | |||
| 50.0 Threshold value | |||
| 54.0 Threshold value | |||
| T Put T to test the LAPACK routines | |||
| T Put T to test the driver routines | |||
| T Put T to test the error exits | |||
| @@ -2072,9 +2072,9 @@ SOBJ_FILES := $(SSRC_OBJ) | |||
| DOBJ_FILES := $(DSRC_OBJ) | |||
| ZOBJ_FILES := $(ZSRC_OBJ) | |||
| ifdef LAPACKE_TESTING | |||
| # ifdef LAPACKE_TESTING | |||
| ZOBJ_FILES += $(MATGEN_OBJ) | |||
| endif | |||
| #endif | |||
| ALLOBJ = $(COBJ_FILES) $(DOBJ_FILES) $(SOBJ_FILES) $(ZOBJ_FILES) $(OBJ_FILES) | |||
| @@ -1,7 +1,8 @@ | |||
| TOPDIR = .. | |||
| include ../Makefile.system | |||
| SUBDIRS = laswp getf2 getrf potf2 potrf lauu2 lauum trti2 trtri getrs | |||
| #SUBDIRS = laswp getf2 getrf potf2 potrf lauu2 lauum trti2 trtri getrs | |||
| SUBDIRS = getrf getf2 laswp getrs potrf potf2 lauu2 lauum trti2 trtri | |||
| FLAMEDIRS = laswp getf2 potf2 lauu2 trti2 | |||
| @@ -1,194 +0,0 @@ | |||
| SUBROUTINE CGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) | |||
| * | |||
| * -- LAPACK routine (version 3.0) -- | |||
| * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., | |||
| * Courant Institute, Argonne National Lab, and Rice University | |||
| * June 30, 1999 | |||
| * | |||
| * .. Scalar Arguments .. | |||
| INTEGER INFO, LDA, LWORK, N | |||
| * .. | |||
| * .. Array Arguments .. | |||
| INTEGER IPIV( * ) | |||
| COMPLEX A( LDA, * ), WORK( * ) | |||
| * .. | |||
| * | |||
| * Purpose | |||
| * ======= | |||
| * | |||
| * CGETRI computes the inverse of a matrix using the LU factorization | |||
| * computed by CGETRF. | |||
| * | |||
| * This method inverts U and then computes inv(A) by solving the system | |||
| * inv(A)*L = inv(U) for inv(A). | |||
| * | |||
| * Arguments | |||
| * ========= | |||
| * | |||
| * N (input) INTEGER | |||
| * The order of the matrix A. N >= 0. | |||
| * | |||
| * A (input/output) COMPLEX array, dimension (LDA,N) | |||
| * On entry, the factors L and U from the factorization | |||
| * A = P*L*U as computed by CGETRF. | |||
| * On exit, if INFO = 0, the inverse of the original matrix A. | |||
| * | |||
| * LDA (input) INTEGER | |||
| * The leading dimension of the array A. LDA >= max(1,N). | |||
| * | |||
| * IPIV (input) INTEGER array, dimension (N) | |||
| * The pivot indices from CGETRF; for 1<=i<=N, row i of the | |||
| * matrix was interchanged with row IPIV(i). | |||
| * | |||
| * WORK (workspace/output) COMPLEX array, dimension (LWORK) | |||
| * On exit, if INFO=0, then WORK(1) returns the optimal LWORK. | |||
| * | |||
| * LWORK (input) INTEGER | |||
| * The dimension of the array WORK. LWORK >= max(1,N). | |||
| * For optimal performance LWORK >= N*NB, where NB is | |||
| * the optimal blocksize returned by ILAENV. | |||
| * | |||
| * If LWORK = -1, then a workspace query is assumed; the routine | |||
| * only calculates the optimal size of the WORK array, returns | |||
| * this value as the first entry of the WORK array, and no error | |||
| * message related to LWORK is issued by XERBLA. | |||
| * | |||
| * INFO (output) INTEGER | |||
| * = 0: successful exit | |||
| * < 0: if INFO = -i, the i-th argument had an illegal value | |||
| * > 0: if INFO = i, U(i,i) is exactly zero; the matrix is | |||
| * singular and its inverse could not be computed. | |||
| * | |||
| * ===================================================================== | |||
| * | |||
| * .. Parameters .. | |||
| COMPLEX ZERO, ONE | |||
| PARAMETER ( ZERO = ( 0.0E+0, 0.0E+0 ), | |||
| $ ONE = ( 1.0E+0, 0.0E+0 ) ) | |||
| * .. | |||
| * .. Local Scalars .. | |||
| LOGICAL LQUERY | |||
| INTEGER I, IWS, J, JB, JJ, JP, LDWORK, LWKOPT, NB, | |||
| $ NBMIN, NN | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CGEMM, CGEMV, CSWAP, CTRSM, CTRTRI, XERBLA | |||
| * .. | |||
| * .. Intrinsic Functions .. | |||
| INTRINSIC MAX, MIN | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| * Test the input parameters. | |||
| * | |||
| INFO = 0 | |||
| NB = ILAENV( 1, 'CGETRI', ' ', N, -1, -1, -1 ) | |||
| LWKOPT = N*NB | |||
| WORK( 1 ) = LWKOPT | |||
| LQUERY = ( LWORK.EQ.-1 ) | |||
| IF( N.LT.0 ) THEN | |||
| INFO = -1 | |||
| ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | |||
| INFO = -3 | |||
| ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN | |||
| INFO = -6 | |||
| END IF | |||
| IF( INFO.NE.0 ) THEN | |||
| CALL XERBLA( 'CGETRI', -INFO ) | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| RETURN | |||
| END IF | |||
| * | |||
| * Quick return if possible | |||
| * | |||
| IF( N.EQ.0 ) | |||
| $ RETURN | |||
| * | |||
| * Form inv(U). If INFO > 0 from CTRTRI, then U is singular, | |||
| * and the inverse is not computed. | |||
| * | |||
| CALL CTRTRI( 'Upper', 'Non-unit', N, A, LDA, INFO ) | |||
| IF( INFO.GT.0 ) | |||
| $ RETURN | |||
| * | |||
| NBMIN = 2 | |||
| LDWORK = N | |||
| IF( NB.GT.1 .AND. NB.LT.N ) THEN | |||
| IWS = MAX( LDWORK*NB, 1 ) | |||
| IF( LWORK.LT.IWS ) THEN | |||
| NB = LWORK / LDWORK | |||
| NBMIN = MAX( 2, ILAENV( 2, 'CGETRI', ' ', N, -1, -1, -1 ) ) | |||
| END IF | |||
| ELSE | |||
| IWS = N | |||
| END IF | |||
| * | |||
| * Solve the equation inv(A)*L = inv(U) for inv(A). | |||
| * | |||
| IF( NB.LT.NBMIN .OR. NB.GE.N ) THEN | |||
| * | |||
| * Use unblocked code. | |||
| * | |||
| DO 20 J = N, 1, -1 | |||
| * | |||
| * Copy current column of L to WORK and replace with zeros. | |||
| * | |||
| DO 10 I = J + 1, N | |||
| WORK( I ) = A( I, J ) | |||
| A( I, J ) = ZERO | |||
| 10 CONTINUE | |||
| * | |||
| * Compute current column of inv(A). | |||
| * | |||
| IF( J.LT.N ) | |||
| $ CALL CGEMV( 'No transpose', N, N-J, -ONE, A( 1, J+1 ), | |||
| $ LDA, WORK( J+1 ), 1, ONE, A( 1, J ), 1 ) | |||
| 20 CONTINUE | |||
| ELSE | |||
| * | |||
| * Use blocked code. | |||
| * | |||
| NN = ( ( N-1 ) / NB )*NB + 1 | |||
| DO 50 J = NN, 1, -NB | |||
| JB = MIN( NB, N-J+1 ) | |||
| * | |||
| * Copy current block column of L to WORK and replace with | |||
| * zeros. | |||
| * | |||
| DO 40 JJ = J, J + JB - 1 | |||
| DO 30 I = JJ + 1, N | |||
| WORK( I+( JJ-J )*LDWORK ) = A( I, JJ ) | |||
| A( I, JJ ) = ZERO | |||
| 30 CONTINUE | |||
| 40 CONTINUE | |||
| * | |||
| * Compute current block column of inv(A). | |||
| * | |||
| IF( J+JB.LE.N ) | |||
| $ CALL CGEMM( 'No transpose', 'No transpose', N, JB, | |||
| $ N-J-JB+1, -ONE, A( 1, J+JB ), LDA, | |||
| $ WORK( J+JB ), LDWORK, ONE, A( 1, J ), LDA ) | |||
| CALL CTRSM( 'Right', 'Lower', 'No transpose', 'Unit', N, JB, | |||
| $ ONE, WORK( J ), LDWORK, A( 1, J ), LDA ) | |||
| 50 CONTINUE | |||
| END IF | |||
| * | |||
| * Apply column interchanges. | |||
| * | |||
| DO 60 J = N - 1, 1, -1 | |||
| JP = IPIV( J ) | |||
| IF( JP.NE.J ) | |||
| $ CALL CSWAP( N, A( 1, J ), 1, A( 1, JP ), 1 ) | |||
| 60 CONTINUE | |||
| * | |||
| WORK( 1 ) = IWS | |||
| RETURN | |||
| * | |||
| * End of CGETRI | |||
| * | |||
| END | |||
| @@ -1,193 +0,0 @@ | |||
| SUBROUTINE DGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) | |||
| * | |||
| * -- LAPACK routine (version 3.0) -- | |||
| * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., | |||
| * Courant Institute, Argonne National Lab, and Rice University | |||
| * June 30, 1999 | |||
| * | |||
| * .. Scalar Arguments .. | |||
| INTEGER INFO, LDA, LWORK, N | |||
| * .. | |||
| * .. Array Arguments .. | |||
| INTEGER IPIV( * ) | |||
| DOUBLE PRECISION A( LDA, * ), WORK( * ) | |||
| * .. | |||
| * | |||
| * Purpose | |||
| * ======= | |||
| * | |||
| * DGETRI computes the inverse of a matrix using the LU factorization | |||
| * computed by DGETRF. | |||
| * | |||
| * This method inverts U and then computes inv(A) by solving the system | |||
| * inv(A)*L = inv(U) for inv(A). | |||
| * | |||
| * Arguments | |||
| * ========= | |||
| * | |||
| * N (input) INTEGER | |||
| * The order of the matrix A. N >= 0. | |||
| * | |||
| * A (input/output) DOUBLE PRECISION array, dimension (LDA,N) | |||
| * On entry, the factors L and U from the factorization | |||
| * A = P*L*U as computed by DGETRF. | |||
| * On exit, if INFO = 0, the inverse of the original matrix A. | |||
| * | |||
| * LDA (input) INTEGER | |||
| * The leading dimension of the array A. LDA >= max(1,N). | |||
| * | |||
| * IPIV (input) INTEGER array, dimension (N) | |||
| * The pivot indices from DGETRF; for 1<=i<=N, row i of the | |||
| * matrix was interchanged with row IPIV(i). | |||
| * | |||
| * WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK) | |||
| * On exit, if INFO=0, then WORK(1) returns the optimal LWORK. | |||
| * | |||
| * LWORK (input) INTEGER | |||
| * The dimension of the array WORK. LWORK >= max(1,N). | |||
| * For optimal performance LWORK >= N*NB, where NB is | |||
| * the optimal blocksize returned by ILAENV. | |||
| * | |||
| * If LWORK = -1, then a workspace query is assumed; the routine | |||
| * only calculates the optimal size of the WORK array, returns | |||
| * this value as the first entry of the WORK array, and no error | |||
| * message related to LWORK is issued by XERBLA. | |||
| * | |||
| * INFO (output) INTEGER | |||
| * = 0: successful exit | |||
| * < 0: if INFO = -i, the i-th argument had an illegal value | |||
| * > 0: if INFO = i, U(i,i) is exactly zero; the matrix is | |||
| * singular and its inverse could not be computed. | |||
| * | |||
| * ===================================================================== | |||
| * | |||
| * .. Parameters .. | |||
| DOUBLE PRECISION ZERO, ONE | |||
| PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) | |||
| * .. | |||
| * .. Local Scalars .. | |||
| LOGICAL LQUERY | |||
| INTEGER I, IWS, J, JB, JJ, JP, LDWORK, LWKOPT, NB, | |||
| $ NBMIN, NN | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL DGEMM, DGEMV, DSWAP, DTRSM, DTRTRI, XERBLA | |||
| * .. | |||
| * .. Intrinsic Functions .. | |||
| INTRINSIC MAX, MIN | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| * Test the input parameters. | |||
| * | |||
| INFO = 0 | |||
| NB = ILAENV( 1, 'DGETRI', ' ', N, -1, -1, -1 ) | |||
| LWKOPT = N*NB | |||
| WORK( 1 ) = LWKOPT | |||
| LQUERY = ( LWORK.EQ.-1 ) | |||
| IF( N.LT.0 ) THEN | |||
| INFO = -1 | |||
| ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | |||
| INFO = -3 | |||
| ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN | |||
| INFO = -6 | |||
| END IF | |||
| IF( INFO.NE.0 ) THEN | |||
| CALL XERBLA( 'DGETRI', -INFO ) | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| RETURN | |||
| END IF | |||
| * | |||
| * Quick return if possible | |||
| * | |||
| IF( N.EQ.0 ) | |||
| $ RETURN | |||
| * | |||
| * Form inv(U). If INFO > 0 from DTRTRI, then U is singular, | |||
| * and the inverse is not computed. | |||
| * | |||
| CALL DTRTRI( 'Upper', 'Non-unit', N, A, LDA, INFO ) | |||
| IF( INFO.GT.0 ) | |||
| $ RETURN | |||
| * | |||
| NBMIN = 2 | |||
| LDWORK = N | |||
| IF( NB.GT.1 .AND. NB.LT.N ) THEN | |||
| IWS = MAX( LDWORK*NB, 1 ) | |||
| IF( LWORK.LT.IWS ) THEN | |||
| NB = LWORK / LDWORK | |||
| NBMIN = MAX( 2, ILAENV( 2, 'DGETRI', ' ', N, -1, -1, -1 ) ) | |||
| END IF | |||
| ELSE | |||
| IWS = N | |||
| END IF | |||
| * | |||
| * Solve the equation inv(A)*L = inv(U) for inv(A). | |||
| * | |||
| IF( NB.LT.NBMIN .OR. NB.GE.N ) THEN | |||
| * | |||
| * Use unblocked code. | |||
| * | |||
| DO 20 J = N, 1, -1 | |||
| * | |||
| * Copy current column of L to WORK and replace with zeros. | |||
| * | |||
| DO 10 I = J + 1, N | |||
| WORK( I ) = A( I, J ) | |||
| A( I, J ) = ZERO | |||
| 10 CONTINUE | |||
| * | |||
| * Compute current column of inv(A). | |||
| * | |||
| IF( J.LT.N ) | |||
| $ CALL DGEMV( 'No transpose', N, N-J, -ONE, A( 1, J+1 ), | |||
| $ LDA, WORK( J+1 ), 1, ONE, A( 1, J ), 1 ) | |||
| 20 CONTINUE | |||
| ELSE | |||
| * | |||
| * Use blocked code. | |||
| * | |||
| NN = ( ( N-1 ) / NB )*NB + 1 | |||
| DO 50 J = NN, 1, -NB | |||
| JB = MIN( NB, N-J+1 ) | |||
| * | |||
| * Copy current block column of L to WORK and replace with | |||
| * zeros. | |||
| * | |||
| DO 40 JJ = J, J + JB - 1 | |||
| DO 30 I = JJ + 1, N | |||
| WORK( I+( JJ-J )*LDWORK ) = A( I, JJ ) | |||
| A( I, JJ ) = ZERO | |||
| 30 CONTINUE | |||
| 40 CONTINUE | |||
| * | |||
| * Compute current block column of inv(A). | |||
| * | |||
| IF( J+JB.LE.N ) | |||
| $ CALL DGEMM( 'No transpose', 'No transpose', N, JB, | |||
| $ N-J-JB+1, -ONE, A( 1, J+JB ), LDA, | |||
| $ WORK( J+JB ), LDWORK, ONE, A( 1, J ), LDA ) | |||
| CALL DTRSM( 'Right', 'Lower', 'No transpose', 'Unit', N, JB, | |||
| $ ONE, WORK( J ), LDWORK, A( 1, J ), LDA ) | |||
| 50 CONTINUE | |||
| END IF | |||
| * | |||
| * Apply column interchanges. | |||
| * | |||
| DO 60 J = N - 1, 1, -1 | |||
| JP = IPIV( J ) | |||
| IF( JP.NE.J ) | |||
| $ CALL DSWAP( N, A( 1, J ), 1, A( 1, JP ), 1 ) | |||
| 60 CONTINUE | |||
| * | |||
| WORK( 1 ) = IWS | |||
| RETURN | |||
| * | |||
| * End of DGETRI | |||
| * | |||
| END | |||
| @@ -1,193 +0,0 @@ | |||
| SUBROUTINE SGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) | |||
| * | |||
| * -- LAPACK routine (version 3.0) -- | |||
| * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., | |||
| * Courant Institute, Argonne National Lab, and Rice University | |||
| * June 30, 1999 | |||
| * | |||
| * .. Scalar Arguments .. | |||
| INTEGER INFO, LDA, LWORK, N | |||
| * .. | |||
| * .. Array Arguments .. | |||
| INTEGER IPIV( * ) | |||
| REAL A( LDA, * ), WORK( * ) | |||
| * .. | |||
| * | |||
| * Purpose | |||
| * ======= | |||
| * | |||
| * SGETRI computes the inverse of a matrix using the LU factorization | |||
| * computed by SGETRF. | |||
| * | |||
| * This method inverts U and then computes inv(A) by solving the system | |||
| * inv(A)*L = inv(U) for inv(A). | |||
| * | |||
| * Arguments | |||
| * ========= | |||
| * | |||
| * N (input) INTEGER | |||
| * The order of the matrix A. N >= 0. | |||
| * | |||
| * A (input/output) REAL array, dimension (LDA,N) | |||
| * On entry, the factors L and U from the factorization | |||
| * A = P*L*U as computed by SGETRF. | |||
| * On exit, if INFO = 0, the inverse of the original matrix A. | |||
| * | |||
| * LDA (input) INTEGER | |||
| * The leading dimension of the array A. LDA >= max(1,N). | |||
| * | |||
| * IPIV (input) INTEGER array, dimension (N) | |||
| * The pivot indices from SGETRF; for 1<=i<=N, row i of the | |||
| * matrix was interchanged with row IPIV(i). | |||
| * | |||
| * WORK (workspace/output) REAL array, dimension (LWORK) | |||
| * On exit, if INFO=0, then WORK(1) returns the optimal LWORK. | |||
| * | |||
| * LWORK (input) INTEGER | |||
| * The dimension of the array WORK. LWORK >= max(1,N). | |||
| * For optimal performance LWORK >= N*NB, where NB is | |||
| * the optimal blocksize returned by ILAENV. | |||
| * | |||
| * If LWORK = -1, then a workspace query is assumed; the routine | |||
| * only calculates the optimal size of the WORK array, returns | |||
| * this value as the first entry of the WORK array, and no error | |||
| * message related to LWORK is issued by XERBLA. | |||
| * | |||
| * INFO (output) INTEGER | |||
| * = 0: successful exit | |||
| * < 0: if INFO = -i, the i-th argument had an illegal value | |||
| * > 0: if INFO = i, U(i,i) is exactly zero; the matrix is | |||
| * singular and its inverse could not be computed. | |||
| * | |||
| * ===================================================================== | |||
| * | |||
| * .. Parameters .. | |||
| REAL ZERO, ONE | |||
| PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 ) | |||
| * .. | |||
| * .. Local Scalars .. | |||
| LOGICAL LQUERY | |||
| INTEGER I, IWS, J, JB, JJ, JP, LDWORK, LWKOPT, NB, | |||
| $ NBMIN, NN | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL SGEMM, SGEMV, SSWAP, STRSM, STRTRI, XERBLA | |||
| * .. | |||
| * .. Intrinsic Functions .. | |||
| INTRINSIC MAX, MIN | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| * Test the input parameters. | |||
| * | |||
| INFO = 0 | |||
| NB = ILAENV( 1, 'SGETRI', ' ', N, -1, -1, -1 ) | |||
| LWKOPT = N*NB | |||
| WORK( 1 ) = LWKOPT | |||
| LQUERY = ( LWORK.EQ.-1 ) | |||
| IF( N.LT.0 ) THEN | |||
| INFO = -1 | |||
| ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | |||
| INFO = -3 | |||
| ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN | |||
| INFO = -6 | |||
| END IF | |||
| IF( INFO.NE.0 ) THEN | |||
| CALL XERBLA( 'SGETRI', -INFO ) | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| RETURN | |||
| END IF | |||
| * | |||
| * Quick return if possible | |||
| * | |||
| IF( N.EQ.0 ) | |||
| $ RETURN | |||
| * | |||
| * Form inv(U). If INFO > 0 from STRTRI, then U is singular, | |||
| * and the inverse is not computed. | |||
| * | |||
| CALL STRTRI( 'Upper', 'Non-unit', N, A, LDA, INFO ) | |||
| IF( INFO.GT.0 ) | |||
| $ RETURN | |||
| * | |||
| NBMIN = 2 | |||
| LDWORK = N | |||
| IF( NB.GT.1 .AND. NB.LT.N ) THEN | |||
| IWS = MAX( LDWORK*NB, 1 ) | |||
| IF( LWORK.LT.IWS ) THEN | |||
| NB = LWORK / LDWORK | |||
| NBMIN = MAX( 2, ILAENV( 2, 'SGETRI', ' ', N, -1, -1, -1 ) ) | |||
| END IF | |||
| ELSE | |||
| IWS = N | |||
| END IF | |||
| * | |||
| * Solve the equation inv(A)*L = inv(U) for inv(A). | |||
| * | |||
| IF( NB.LT.NBMIN .OR. NB.GE.N ) THEN | |||
| * | |||
| * Use unblocked code. | |||
| * | |||
| DO 20 J = N, 1, -1 | |||
| * | |||
| * Copy current column of L to WORK and replace with zeros. | |||
| * | |||
| DO 10 I = J + 1, N | |||
| WORK( I ) = A( I, J ) | |||
| A( I, J ) = ZERO | |||
| 10 CONTINUE | |||
| * | |||
| * Compute current column of inv(A). | |||
| * | |||
| IF( J.LT.N ) | |||
| $ CALL SGEMV( 'No transpose', N, N-J, -ONE, A( 1, J+1 ), | |||
| $ LDA, WORK( J+1 ), 1, ONE, A( 1, J ), 1 ) | |||
| 20 CONTINUE | |||
| ELSE | |||
| * | |||
| * Use blocked code. | |||
| * | |||
| NN = ( ( N-1 ) / NB )*NB + 1 | |||
| DO 50 J = NN, 1, -NB | |||
| JB = MIN( NB, N-J+1 ) | |||
| * | |||
| * Copy current block column of L to WORK and replace with | |||
| * zeros. | |||
| * | |||
| DO 40 JJ = J, J + JB - 1 | |||
| DO 30 I = JJ + 1, N | |||
| WORK( I+( JJ-J )*LDWORK ) = A( I, JJ ) | |||
| A( I, JJ ) = ZERO | |||
| 30 CONTINUE | |||
| 40 CONTINUE | |||
| * | |||
| * Compute current block column of inv(A). | |||
| * | |||
| IF( J+JB.LE.N ) | |||
| $ CALL SGEMM( 'No transpose', 'No transpose', N, JB, | |||
| $ N-J-JB+1, -ONE, A( 1, J+JB ), LDA, | |||
| $ WORK( J+JB ), LDWORK, ONE, A( 1, J ), LDA ) | |||
| CALL STRSM( 'Right', 'Lower', 'No transpose', 'Unit', N, JB, | |||
| $ ONE, WORK( J ), LDWORK, A( 1, J ), LDA ) | |||
| 50 CONTINUE | |||
| END IF | |||
| * | |||
| * Apply column interchanges. | |||
| * | |||
| DO 60 J = N - 1, 1, -1 | |||
| JP = IPIV( J ) | |||
| IF( JP.NE.J ) | |||
| $ CALL SSWAP( N, A( 1, J ), 1, A( 1, JP ), 1 ) | |||
| 60 CONTINUE | |||
| * | |||
| WORK( 1 ) = IWS | |||
| RETURN | |||
| * | |||
| * End of SGETRI | |||
| * | |||
| END | |||
| @@ -1,194 +0,0 @@ | |||
| SUBROUTINE ZGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) | |||
| * | |||
| * -- LAPACK routine (version 3.0) -- | |||
| * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., | |||
| * Courant Institute, Argonne National Lab, and Rice University | |||
| * June 30, 1999 | |||
| * | |||
| * .. Scalar Arguments .. | |||
| INTEGER INFO, LDA, LWORK, N | |||
| * .. | |||
| * .. Array Arguments .. | |||
| INTEGER IPIV( * ) | |||
| COMPLEX*16 A( LDA, * ), WORK( * ) | |||
| * .. | |||
| * | |||
| * Purpose | |||
| * ======= | |||
| * | |||
| * ZGETRI computes the inverse of a matrix using the LU factorization | |||
| * computed by ZGETRF. | |||
| * | |||
| * This method inverts U and then computes inv(A) by solving the system | |||
| * inv(A)*L = inv(U) for inv(A). | |||
| * | |||
| * Arguments | |||
| * ========= | |||
| * | |||
| * N (input) INTEGER | |||
| * The order of the matrix A. N >= 0. | |||
| * | |||
| * A (input/output) COMPLEX*16 array, dimension (LDA,N) | |||
| * On entry, the factors L and U from the factorization | |||
| * A = P*L*U as computed by ZGETRF. | |||
| * On exit, if INFO = 0, the inverse of the original matrix A. | |||
| * | |||
| * LDA (input) INTEGER | |||
| * The leading dimension of the array A. LDA >= max(1,N). | |||
| * | |||
| * IPIV (input) INTEGER array, dimension (N) | |||
| * The pivot indices from ZGETRF; for 1<=i<=N, row i of the | |||
| * matrix was interchanged with row IPIV(i). | |||
| * | |||
| * WORK (workspace/output) COMPLEX*16 array, dimension (LWORK) | |||
| * On exit, if INFO=0, then WORK(1) returns the optimal LWORK. | |||
| * | |||
| * LWORK (input) INTEGER | |||
| * The dimension of the array WORK. LWORK >= max(1,N). | |||
| * For optimal performance LWORK >= N*NB, where NB is | |||
| * the optimal blocksize returned by ILAENV. | |||
| * | |||
| * If LWORK = -1, then a workspace query is assumed; the routine | |||
| * only calculates the optimal size of the WORK array, returns | |||
| * this value as the first entry of the WORK array, and no error | |||
| * message related to LWORK is issued by XERBLA. | |||
| * | |||
| * INFO (output) INTEGER | |||
| * = 0: successful exit | |||
| * < 0: if INFO = -i, the i-th argument had an illegal value | |||
| * > 0: if INFO = i, U(i,i) is exactly zero; the matrix is | |||
| * singular and its inverse could not be computed. | |||
| * | |||
| * ===================================================================== | |||
| * | |||
| * .. Parameters .. | |||
| COMPLEX*16 ZERO, ONE | |||
| PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), | |||
| $ ONE = ( 1.0D+0, 0.0D+0 ) ) | |||
| * .. | |||
| * .. Local Scalars .. | |||
| LOGICAL LQUERY | |||
| INTEGER I, IWS, J, JB, JJ, JP, LDWORK, LWKOPT, NB, | |||
| $ NBMIN, NN | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL XERBLA, ZGEMM, ZGEMV, ZSWAP, ZTRSM, ZTRTRI | |||
| * .. | |||
| * .. Intrinsic Functions .. | |||
| INTRINSIC MAX, MIN | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| * Test the input parameters. | |||
| * | |||
| INFO = 0 | |||
| NB = ILAENV( 1, 'ZGETRI', ' ', N, -1, -1, -1 ) | |||
| LWKOPT = N*NB | |||
| WORK( 1 ) = LWKOPT | |||
| LQUERY = ( LWORK.EQ.-1 ) | |||
| IF( N.LT.0 ) THEN | |||
| INFO = -1 | |||
| ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | |||
| INFO = -3 | |||
| ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN | |||
| INFO = -6 | |||
| END IF | |||
| IF( INFO.NE.0 ) THEN | |||
| CALL XERBLA( 'ZGETRI', -INFO ) | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| RETURN | |||
| END IF | |||
| * | |||
| * Quick return if possible | |||
| * | |||
| IF( N.EQ.0 ) | |||
| $ RETURN | |||
| * | |||
| * Form inv(U). If INFO > 0 from ZTRTRI, then U is singular, | |||
| * and the inverse is not computed. | |||
| * | |||
| CALL ZTRTRI( 'Upper', 'Non-unit', N, A, LDA, INFO ) | |||
| IF( INFO.GT.0 ) | |||
| $ RETURN | |||
| * | |||
| NBMIN = 2 | |||
| LDWORK = N | |||
| IF( NB.GT.1 .AND. NB.LT.N ) THEN | |||
| IWS = MAX( LDWORK*NB, 1 ) | |||
| IF( LWORK.LT.IWS ) THEN | |||
| NB = LWORK / LDWORK | |||
| NBMIN = MAX( 2, ILAENV( 2, 'ZGETRI', ' ', N, -1, -1, -1 ) ) | |||
| END IF | |||
| ELSE | |||
| IWS = N | |||
| END IF | |||
| * | |||
| * Solve the equation inv(A)*L = inv(U) for inv(A). | |||
| * | |||
| IF( NB.LT.NBMIN .OR. NB.GE.N ) THEN | |||
| * | |||
| * Use unblocked code. | |||
| * | |||
| DO 20 J = N, 1, -1 | |||
| * | |||
| * Copy current column of L to WORK and replace with zeros. | |||
| * | |||
| DO 10 I = J + 1, N | |||
| WORK( I ) = A( I, J ) | |||
| A( I, J ) = ZERO | |||
| 10 CONTINUE | |||
| * | |||
| * Compute current column of inv(A). | |||
| * | |||
| IF( J.LT.N ) | |||
| $ CALL ZGEMV( 'No transpose', N, N-J, -ONE, A( 1, J+1 ), | |||
| $ LDA, WORK( J+1 ), 1, ONE, A( 1, J ), 1 ) | |||
| 20 CONTINUE | |||
| ELSE | |||
| * | |||
| * Use blocked code. | |||
| * | |||
| NN = ( ( N-1 ) / NB )*NB + 1 | |||
| DO 50 J = NN, 1, -NB | |||
| JB = MIN( NB, N-J+1 ) | |||
| * | |||
| * Copy current block column of L to WORK and replace with | |||
| * zeros. | |||
| * | |||
| DO 40 JJ = J, J + JB - 1 | |||
| DO 30 I = JJ + 1, N | |||
| WORK( I+( JJ-J )*LDWORK ) = A( I, JJ ) | |||
| A( I, JJ ) = ZERO | |||
| 30 CONTINUE | |||
| 40 CONTINUE | |||
| * | |||
| * Compute current block column of inv(A). | |||
| * | |||
| IF( J+JB.LE.N ) | |||
| $ CALL ZGEMM( 'No transpose', 'No transpose', N, JB, | |||
| $ N-J-JB+1, -ONE, A( 1, J+JB ), LDA, | |||
| $ WORK( J+JB ), LDWORK, ONE, A( 1, J ), LDA ) | |||
| CALL ZTRSM( 'Right', 'Lower', 'No transpose', 'Unit', N, JB, | |||
| $ ONE, WORK( J ), LDWORK, A( 1, J ), LDA ) | |||
| 50 CONTINUE | |||
| END IF | |||
| * | |||
| * Apply column interchanges. | |||
| * | |||
| DO 60 J = N - 1, 1, -1 | |||
| JP = IPIV( J ) | |||
| IF( JP.NE.J ) | |||
| $ CALL ZSWAP( N, A( 1, J ), 1, A( 1, JP ), 1 ) | |||
| 60 CONTINUE | |||
| * | |||
| WORK( 1 ) = IWS | |||
| RETURN | |||
| * | |||
| * End of ZGETRI | |||
| * | |||
| END | |||
| @@ -1,190 +1,113 @@ | |||
| /*********************************************************************/ | |||
| /* Copyright 2009, 2010 The University of Texas at Austin. */ | |||
| /* All rights reserved. */ | |||
| /* */ | |||
| /* Redistribution and use in source and binary forms, with or */ | |||
| /* without modification, are permitted provided that the following */ | |||
| /* conditions are met: */ | |||
| /* */ | |||
| /* 1. Redistributions of source code must retain the above */ | |||
| /* copyright notice, this list of conditions and the following */ | |||
| /* disclaimer. */ | |||
| /* */ | |||
| /* 2. Redistributions in binary form must reproduce the above */ | |||
| /* copyright notice, this list of conditions and the following */ | |||
| /* disclaimer in the documentation and/or other materials */ | |||
| /* provided with the distribution. */ | |||
| /* */ | |||
| /* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */ | |||
| /* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */ | |||
| /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */ | |||
| /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */ | |||
| /* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */ | |||
| /* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */ | |||
| /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */ | |||
| /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */ | |||
| /* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */ | |||
| /* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */ | |||
| /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */ | |||
| /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ | |||
| /* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ | |||
| /* POSSIBILITY OF SUCH DAMAGE. */ | |||
| /* */ | |||
| /* The views and conclusions contained in the software and */ | |||
| /* documentation are those of the authors and should not be */ | |||
| /* interpreted as representing official policies, either expressed */ | |||
| /* or implied, of The University of Texas at Austin. */ | |||
| /*********************************************************************/ | |||
| /*************************************************************************** | |||
| * Copyright (c) 2013, The OpenBLAS Project | |||
| * All rights reserved. | |||
| * Redistribution and use in source and binary forms, with or without | |||
| * modification, are permitted provided that the following conditions are | |||
| * met: | |||
| * 1. Redistributions of source code must retain the above copyright | |||
| * notice, this list of conditions and the following disclaimer. | |||
| * 2. Redistributions in binary form must reproduce the above copyright | |||
| * notice, this list of conditions and the following disclaimer in | |||
| * the documentation and/or other materials provided with the | |||
| * distribution. | |||
| * 3. Neither the name of the OpenBLAS project nor the names of | |||
| * its contributors may be used to endorse or promote products | |||
| * derived from this software without specific prior written permission. | |||
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |||
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
| * ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE | |||
| * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
| * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |||
| * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |||
| * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | |||
| * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| * *****************************************************************************/ | |||
| /************************************************************************************** | |||
| * 2014/05/22 Saar | |||
| * TEST double precision unblocked : OK | |||
| * 2014/05/23 Saar | |||
| * TEST double precision blocked: OK | |||
| * TEST single precision blocked: OK | |||
| **************************************************************************************/ | |||
| #include <stdio.h> | |||
| #include "common.h" | |||
| static FLOAT dp1 = 1.; | |||
| static FLOAT dm1 = -1.; | |||
| // static FLOAT dp1 = 1.; | |||
| // static FLOAT dm1 = -1.; | |||
| #ifdef UNIT | |||
| #define TRTI2 TRTI2_LU | |||
| #define TRTI2 TRTI2_LU | |||
| #define TRMM TRMM_LNLU | |||
| #define TRSM TRSM_RNLU | |||
| #else | |||
| #define TRTI2 TRTI2_LN | |||
| #endif | |||
| #if 0 | |||
| #undef GEMM_P | |||
| #undef GEMM_Q | |||
| #undef GEMM_R | |||
| #define GEMM_P 8 | |||
| #define GEMM_Q 20 | |||
| #define GEMM_R 64 | |||
| #define TRTI2 TRTI2_LN | |||
| #define TRMM TRMM_LNLN | |||
| #define TRSM TRSM_RNLN | |||
| #endif | |||
| #define GEMM_PQ MAX(GEMM_P, GEMM_Q) | |||
| #define REAL_GEMM_R (GEMM_R - 2 * GEMM_PQ) | |||
| blasint CNAME(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n, FLOAT *sa, FLOAT *sb, BLASLONG myid) { | |||
| BLASLONG n, lda; | |||
| BLASLONG j, n, lda; | |||
| FLOAT *a; | |||
| BLASLONG i, is, min_i, start_i; | |||
| BLASLONG ls, min_l; | |||
| BLASLONG bk; | |||
| BLASLONG blocking; | |||
| BLASLONG range_N[2]; | |||
| // BLASLONG info=0; | |||
| BLASLONG jb; | |||
| BLASLONG NB; | |||
| BLASLONG start_j; | |||
| FLOAT *sa_trsm = (FLOAT *)((BLASLONG)sb); | |||
| FLOAT *sa_trmm = (FLOAT *)((((BLASLONG)sb | |||
| + GEMM_PQ * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN) | |||
| + GEMM_OFFSET_A); | |||
| FLOAT *sb_gemm = (FLOAT *)((((BLASLONG)sa_trmm | |||
| + GEMM_PQ * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN) | |||
| + GEMM_OFFSET_B); | |||
| FLOAT beta_plus[2] = { ONE, ZERO}; | |||
| FLOAT beta_minus[2] = {-ONE, ZERO}; | |||
| n = args -> n; | |||
| a = (FLOAT *)args -> a; | |||
| lda = args -> lda; | |||
| if (range_n) { | |||
| n = range_n[1] - range_n[0]; | |||
| a += range_n[0] * (lda + 1) * COMPSIZE; | |||
| } | |||
| NB = GEMM_Q; | |||
| if (n <= DTB_ENTRIES) { | |||
| if (n < NB) { | |||
| TRTI2(args, NULL, range_n, sa, sb, 0); | |||
| return 0; | |||
| } | |||
| blocking = GEMM_Q; | |||
| if (n <= 4 * GEMM_Q) blocking = (n + 3) / 4; | |||
| start_i = 0; | |||
| while (start_i < n) start_i += blocking; | |||
| start_i -= blocking; | |||
| for (i = start_i; i >= 0; i -= blocking) { | |||
| bk = MIN(blocking, n - i); | |||
| if (n - bk - i > 0) TRSM_OLNCOPY(bk, bk, a + (i + i * lda) * COMPSIZE, lda, 0, sa_trsm); | |||
| if (!range_n) { | |||
| range_N[0] = i; | |||
| range_N[1] = i + bk; | |||
| } else { | |||
| range_N[0] = range_n[0] + i; | |||
| range_N[1] = range_n[0] + i + bk; | |||
| } | |||
| CNAME(args, NULL, range_N, sa, sa_trmm, 0); | |||
| if (i > 0) { | |||
| TRMM_ILTCOPY(bk, bk, a + (i + i * lda) * COMPSIZE, lda, 0, 0, sa_trmm); | |||
| for (ls = 0; ls < i; ls += REAL_GEMM_R) { | |||
| min_l = i - ls; | |||
| if (min_l > REAL_GEMM_R) min_l = REAL_GEMM_R; | |||
| GEMM_ONCOPY (bk, min_l, a + (i + ls * lda) * COMPSIZE, lda, sb_gemm); | |||
| if (n - bk - i > 0) { | |||
| for (is = i + bk; is < n; is += GEMM_P) { | |||
| min_i = n - is; | |||
| if (min_i > GEMM_P) min_i = GEMM_P; | |||
| if (ls == 0) { | |||
| NEG_TCOPY (bk, min_i, a + (is + i * lda) * COMPSIZE, lda, sa); | |||
| TRSM_KERNEL_RT(min_i, bk, bk, dm1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| sa, sa_trsm, | |||
| a + (is + i * lda) * COMPSIZE, lda, 0); | |||
| } else { | |||
| GEMM_ITCOPY (bk, min_i, a + (is + i * lda) * COMPSIZE, lda, sa); | |||
| } | |||
| GEMM_KERNEL_N(min_i, min_l, bk, dp1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| sa, sb_gemm, | |||
| a + (is + ls * lda) * COMPSIZE, lda); | |||
| } | |||
| } | |||
| for (is = 0; is < bk; is += GEMM_P) { | |||
| min_i = bk - is; | |||
| if (min_i > GEMM_P) min_i = GEMM_P; | |||
| TRMM_KERNEL_LT(min_i, min_l, bk, dp1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| sa_trmm + is * bk * COMPSIZE, sb_gemm, | |||
| a + (i + is + ls * lda) * COMPSIZE, lda, is); | |||
| } | |||
| } | |||
| } else { | |||
| if (n - bk - i > 0) { | |||
| for (is = 0; is < n - bk - i; is += GEMM_P) { | |||
| min_i = n - bk - i - is; | |||
| if (min_i > GEMM_P) min_i = GEMM_P; | |||
| NEG_TCOPY (bk, min_i, a + (i + bk + is + i * lda) * COMPSIZE, lda, sa); | |||
| TRSM_KERNEL_RT(min_i, bk, bk, dm1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| sa, sa_trsm, | |||
| a + (i + bk + is + i * lda) * COMPSIZE, lda, 0); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| lda = args -> lda; | |||
| a = (FLOAT *) args -> a; | |||
| args -> ldb = lda; | |||
| args -> ldc = lda; | |||
| args -> alpha = NULL; | |||
| start_j = 0; | |||
| while (start_j < n) start_j += NB; | |||
| start_j -= NB; | |||
| for (j = start_j ; j >=0 ; j-= NB) | |||
| { | |||
| jb = n - j; | |||
| if ( jb > NB ) jb = NB; | |||
| args -> n = jb; | |||
| args -> m = n-j-jb; | |||
| args -> a = &a[(j+jb+(j+jb)*lda) * COMPSIZE]; | |||
| args -> b = &a[(j+jb+j*lda) * COMPSIZE]; | |||
| args -> beta = beta_plus; | |||
| TRMM(args, NULL, NULL, sa, sb, 0); | |||
| args -> a = &a[(j+j*lda) * COMPSIZE]; | |||
| args -> beta = beta_minus; | |||
| TRSM(args, NULL, NULL, sa, sb, 0); | |||
| args -> a = &a[(j+j*lda) * COMPSIZE]; | |||
| TRTI2(args, NULL, range_n, sa, sb, 0); | |||
| } | |||
| return 0; | |||
| } | |||
| @@ -1,46 +1,44 @@ | |||
| /*********************************************************************/ | |||
| /* Copyright 2009, 2010 The University of Texas at Austin. */ | |||
| /* All rights reserved. */ | |||
| /* */ | |||
| /* Redistribution and use in source and binary forms, with or */ | |||
| /* without modification, are permitted provided that the following */ | |||
| /* conditions are met: */ | |||
| /* */ | |||
| /* 1. Redistributions of source code must retain the above */ | |||
| /* copyright notice, this list of conditions and the following */ | |||
| /* disclaimer. */ | |||
| /* */ | |||
| /* 2. Redistributions in binary form must reproduce the above */ | |||
| /* copyright notice, this list of conditions and the following */ | |||
| /* disclaimer in the documentation and/or other materials */ | |||
| /* provided with the distribution. */ | |||
| /* */ | |||
| /* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */ | |||
| /* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */ | |||
| /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */ | |||
| /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */ | |||
| /* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */ | |||
| /* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */ | |||
| /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */ | |||
| /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */ | |||
| /* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */ | |||
| /* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */ | |||
| /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */ | |||
| /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ | |||
| /* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ | |||
| /* POSSIBILITY OF SUCH DAMAGE. */ | |||
| /* */ | |||
| /* The views and conclusions contained in the software and */ | |||
| /* documentation are those of the authors and should not be */ | |||
| /* interpreted as representing official policies, either expressed */ | |||
| /* or implied, of The University of Texas at Austin. */ | |||
| /*********************************************************************/ | |||
| /*************************************************************************** | |||
| * Copyright (c) 2013, The OpenBLAS Project | |||
| * All rights reserved. | |||
| * Redistribution and use in source and binary forms, with or without | |||
| * modification, are permitted provided that the following conditions are | |||
| * met: | |||
| * 1. Redistributions of source code must retain the above copyright | |||
| * notice, this list of conditions and the following disclaimer. | |||
| * 2. Redistributions in binary form must reproduce the above copyright | |||
| * notice, this list of conditions and the following disclaimer in | |||
| * the documentation and/or other materials provided with the | |||
| * distribution. | |||
| * 3. Neither the name of the OpenBLAS project nor the names of | |||
| * its contributors may be used to endorse or promote products | |||
| * derived from this software without specific prior written permission. | |||
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |||
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
| * ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE | |||
| * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
| * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |||
| * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |||
| * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | |||
| * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| * *****************************************************************************/ | |||
| /************************************************************************************** | |||
| * 2014/05/22 Saar | |||
| * TEST double precision unblocked : OK | |||
| * TEST double precision blocked : OK | |||
| * 2014/05/23 | |||
| * TEST single precision blocked : OK | |||
| * | |||
| **************************************************************************************/ | |||
| #include <stdio.h> | |||
| #include "common.h" | |||
| static FLOAT dp1 = 1.; | |||
| static FLOAT dm1 = -1.; | |||
| // static FLOAT dp1 = 1.; | |||
| // static FLOAT dm1 = -1.; | |||
| #ifdef UNIT | |||
| #define TRTI2 TRTI2_UU | |||
| @@ -48,152 +46,66 @@ static FLOAT dm1 = -1.; | |||
| #define TRTI2 TRTI2_UN | |||
| #endif | |||
| #if 0 | |||
| #undef GEMM_P | |||
| #undef GEMM_Q | |||
| #undef GEMM_R | |||
| #define GEMM_P 8 | |||
| #define GEMM_Q 20 | |||
| #define GEMM_R 64 | |||
| #ifdef UNIT | |||
| #define TRMM TRMM_LNUU | |||
| #define TRSM TRSM_RNUU | |||
| #else | |||
| #define TRMM TRMM_LNUN | |||
| #define TRSM TRSM_RNUN | |||
| #endif | |||
| #define GEMM_PQ MAX(GEMM_P, GEMM_Q) | |||
| #define REAL_GEMM_R (GEMM_R - 2 * GEMM_PQ) | |||
| blasint CNAME(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n, FLOAT *sa, FLOAT *sb, BLASLONG myid) { | |||
| BLASLONG n, lda; | |||
| BLASLONG j, n, lda; | |||
| FLOAT *a; | |||
| BLASLONG i, is, min_i, start_is; | |||
| BLASLONG ls, min_l; | |||
| BLASLONG bk; | |||
| BLASLONG blocking; | |||
| BLASLONG range_N[2]; | |||
| // BLASLONG info=0; | |||
| BLASLONG jb; | |||
| BLASLONG NB; | |||
| FLOAT *sa_trsm = (FLOAT *)((BLASLONG)sb); | |||
| FLOAT *sa_trmm = (FLOAT *)((((BLASLONG)sb | |||
| + GEMM_PQ * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN) | |||
| + GEMM_OFFSET_A); | |||
| FLOAT *sb_gemm = (FLOAT *)((((BLASLONG)sa_trmm | |||
| + GEMM_PQ * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN) | |||
| + GEMM_OFFSET_B); | |||
| FLOAT beta_plus[2] = { ONE, ZERO}; | |||
| FLOAT beta_minus[2] = {-ONE, ZERO}; | |||
| n = args -> n; | |||
| a = (FLOAT *)args -> a; | |||
| lda = args -> lda; | |||
| if (range_n) { | |||
| n = range_n[1] - range_n[0]; | |||
| a += range_n[0] * (lda + 1) * COMPSIZE; | |||
| } | |||
| NB = GEMM_Q; | |||
| if (n <= DTB_ENTRIES) { | |||
| if (n <= NB) { | |||
| TRTI2(args, NULL, range_n, sa, sb, 0); | |||
| return 0; | |||
| } | |||
| blocking = GEMM_Q; | |||
| if (n <= 4 * GEMM_Q) blocking = (n + 3) / 4; | |||
| for (i = 0; i < n; i += blocking) { | |||
| bk = MIN(blocking, n - i); | |||
| if (i > 0) TRSM_OUNCOPY(bk, bk, a + (i + i * lda) * COMPSIZE, lda, 0, sa_trsm); | |||
| if (!range_n) { | |||
| range_N[0] = i; | |||
| range_N[1] = i + bk; | |||
| } else { | |||
| range_N[0] = range_n[0] + i; | |||
| range_N[1] = range_n[0] + i + bk; | |||
| } | |||
| CNAME(args, NULL, range_N, sa, sa_trmm, 0); | |||
| if (n -bk - i > 0) { | |||
| TRMM_IUTCOPY(bk, bk, a + (i + i * lda) * COMPSIZE, lda, 0, 0, sa_trmm); | |||
| for (ls = i + bk; ls < n; ls += REAL_GEMM_R) { | |||
| min_l = n - ls; | |||
| if (min_l > REAL_GEMM_R) min_l = REAL_GEMM_R; | |||
| GEMM_ONCOPY (bk, min_l, a + (i + ls * lda) * COMPSIZE, lda, sb_gemm); | |||
| if (i > 0) { | |||
| for (is = 0; is < i; is += GEMM_P) { | |||
| min_i = i - is; | |||
| if (min_i > GEMM_P) min_i = GEMM_P; | |||
| if (ls == i + bk) { | |||
| //NEG_TCOPY (bk, min_i, a + (is + i * lda) * COMPSIZE, lda, sa); | |||
| GEMM_BETA(min_i, bk, 0, dm1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| NULL, 0, NULL, 0, a + (is + i * lda) * COMPSIZE, lda); | |||
| TRSM_KERNEL_RN(min_i, bk, bk, dm1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| sa, sa_trsm, | |||
| a + (is + i * lda) * COMPSIZE, lda, 0); | |||
| } else { | |||
| GEMM_ITCOPY (bk, min_i, a + (is + i * lda) * COMPSIZE, lda, sa); | |||
| } | |||
| GEMM_KERNEL_N(min_i, min_l, bk, dp1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| sa, sb_gemm, | |||
| a + (is + ls * lda) * COMPSIZE, lda); | |||
| } | |||
| } | |||
| start_is = 0; | |||
| while (start_is < bk) start_is += GEMM_P; | |||
| start_is -= GEMM_P; | |||
| for (is = 0; is < bk; is += GEMM_P) { | |||
| min_i = bk - is; | |||
| if (min_i > GEMM_P) min_i = GEMM_P; | |||
| TRMM_KERNEL_LN(min_i, min_l, bk, dp1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| sa_trmm + is * bk * COMPSIZE, sb_gemm, | |||
| a + (i + is + ls * lda) * COMPSIZE, lda, is); | |||
| } | |||
| } | |||
| } else { | |||
| if (i > 0) { | |||
| for (is = 0; is < i; is += GEMM_P) { | |||
| min_i = i - is; | |||
| if (min_i > GEMM_P) min_i = GEMM_P; | |||
| //NEG_TCOPY (bk, min_i, a + (is + i * lda) * COMPSIZE, lda, sa); | |||
| GEMM_BETA(min_i, bk, 0, dm1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| NULL, 0, NULL, 0, a + (is + i * lda) * COMPSIZE, lda); | |||
| lda = args -> lda; | |||
| a = (FLOAT *) args -> a; | |||
| args -> ldb = lda; | |||
| args -> ldc = lda; | |||
| args -> alpha = NULL; | |||
| TRSM_KERNEL_RN(min_i, bk, bk, dm1, | |||
| #ifdef COMPLEX | |||
| ZERO, | |||
| #endif | |||
| sa, sa_trsm, | |||
| a + (is + i * lda) * COMPSIZE, lda, 0); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| for (j = 0; j < n; j += NB) | |||
| { | |||
| jb = n - j; | |||
| if ( jb > NB ) jb = NB; | |||
| args -> n = jb; | |||
| args -> m = j; | |||
| args -> a = &a[0]; | |||
| args -> b = &a[(j*lda) * COMPSIZE]; | |||
| args -> beta = beta_plus; | |||
| TRMM(args, NULL, NULL, sa, sb, 0); | |||
| args -> a = &a[(j+j*lda) * COMPSIZE]; | |||
| args -> beta = beta_minus; | |||
| TRSM(args, NULL, NULL, sa, sb, 0); | |||
| args -> a = &a[(j+j*lda) * COMPSIZE]; | |||
| TRTI2(args, NULL, range_n, sa, sb, 0); | |||
| } | |||
| return 0; | |||
| } | |||
| @@ -1,11 +1,7 @@ | |||
| SHELL = /bin/sh | |||
| PLAT = _LINUX | |||
| DRVOPTS = $(OPTS) | |||
| LOADER = $(FORTRAN) | |||
| TIMER = NONE | |||
| LOADER = $(FORTRAN) -pthread | |||
| ARCHFLAGS= -ru | |||
| #RANLIB = ranlib | |||
| BLASLIB = | |||
| TMGLIB = tmglib.a | |||
| EIGSRCLIB = eigsrc.a | |||
| LINSRCLIB = linsrc.a | |||
| @@ -1032,14 +1032,14 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| #define XGEMM_DEFAULT_UNROLL_N 1 | |||
| #else | |||
| #define SGEMM_DEFAULT_UNROLL_M 4 | |||
| #define DGEMM_DEFAULT_UNROLL_M 2 | |||
| #define DGEMM_DEFAULT_UNROLL_M 4 | |||
| #define QGEMM_DEFAULT_UNROLL_M 2 | |||
| #define CGEMM_DEFAULT_UNROLL_M 2 | |||
| #define ZGEMM_DEFAULT_UNROLL_M 1 | |||
| #define XGEMM_DEFAULT_UNROLL_M 1 | |||
| #define SGEMM_DEFAULT_UNROLL_N 8 | |||
| #define DGEMM_DEFAULT_UNROLL_N 8 | |||
| #define DGEMM_DEFAULT_UNROLL_N 4 | |||
| #define QGEMM_DEFAULT_UNROLL_N 2 | |||
| #define CGEMM_DEFAULT_UNROLL_N 4 | |||
| #define ZGEMM_DEFAULT_UNROLL_N 4 | |||
| @@ -1104,10 +1104,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| #define ZGEMM_DEFAULT_UNROLL_N 2 | |||
| #define XGEMM_DEFAULT_UNROLL_N 1 | |||
| #else | |||
| #define SGEMM_DEFAULT_UNROLL_M 8 | |||
| #define SGEMM_DEFAULT_UNROLL_M 4 | |||
| #define DGEMM_DEFAULT_UNROLL_M 8 | |||
| #define QGEMM_DEFAULT_UNROLL_M 2 | |||
| #define CGEMM_DEFAULT_UNROLL_M 8 | |||
| #define CGEMM_DEFAULT_UNROLL_M 2 | |||
| #define ZGEMM_DEFAULT_UNROLL_M 4 | |||
| #define XGEMM_DEFAULT_UNROLL_M 1 | |||
| @@ -1228,7 +1228,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| #define ZGEMM_DEFAULT_P 256 | |||
| #define SGEMM_DEFAULT_Q 384 | |||
| #ifdef WINDOWS_ABI | |||
| #define DGEMM_DEFAULT_Q 128 | |||
| #else | |||
| #define DGEMM_DEFAULT_Q 256 | |||
| #endif | |||
| #define CGEMM_DEFAULT_Q 192 | |||
| #define ZGEMM_DEFAULT_Q 128 | |||
| @@ -2017,6 +2021,46 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| #endif | |||
| #if defined(ARMV5) | |||
| #define SNUMOPT 2 | |||
| #define DNUMOPT 2 | |||
| #define GEMM_DEFAULT_OFFSET_A 0 | |||
| #define GEMM_DEFAULT_OFFSET_B 0 | |||
| #define GEMM_DEFAULT_ALIGN 0x03fffUL | |||
| #define SGEMM_DEFAULT_UNROLL_M 2 | |||
| #define SGEMM_DEFAULT_UNROLL_N 2 | |||
| #define DGEMM_DEFAULT_UNROLL_M 2 | |||
| #define DGEMM_DEFAULT_UNROLL_N 2 | |||
| #define CGEMM_DEFAULT_UNROLL_M 2 | |||
| #define CGEMM_DEFAULT_UNROLL_N 2 | |||
| #define ZGEMM_DEFAULT_UNROLL_M 2 | |||
| #define ZGEMM_DEFAULT_UNROLL_N 2 | |||
| #define SGEMM_DEFAULT_P 128 | |||
| #define DGEMM_DEFAULT_P 128 | |||
| #define CGEMM_DEFAULT_P 96 | |||
| #define ZGEMM_DEFAULT_P 64 | |||
| #define SGEMM_DEFAULT_Q 240 | |||
| #define DGEMM_DEFAULT_Q 120 | |||
| #define CGEMM_DEFAULT_Q 120 | |||
| #define ZGEMM_DEFAULT_Q 120 | |||
| #define SGEMM_DEFAULT_R 12288 | |||
| #define DGEMM_DEFAULT_R 8192 | |||
| #define CGEMM_DEFAULT_R 4096 | |||
| #define ZGEMM_DEFAULT_R 4096 | |||
| #define SYMV_P 16 | |||
| #endif | |||
| #ifdef GENERIC | |||
| @@ -1,684 +0,0 @@ | |||
| diff -ruN lapack-3.1.1.old/INSTALL/Makefile lapack-3.1.1/INSTALL/Makefile | |||
| --- lapack-3.1.1.old/INSTALL/Makefile 2007-02-23 14:07:35.000000000 -0600 | |||
| +++ lapack-3.1.1/INSTALL/Makefile 2009-12-16 14:40:35.000000000 -0600 | |||
| @@ -27,7 +27,7 @@ | |||
| $(LOADER) $(LOADOPTS) -o testversion ilaver.o LAPACK_version.o | |||
| clean: | |||
| - rm -f *.o | |||
| + rm -f *.o test* | |||
| slamch.o: slamch.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| dlamch.o: dlamch.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| diff -ruN lapack-3.1.1.old/Makefile lapack-3.1.1/Makefile | |||
| --- lapack-3.1.1.old/Makefile 2007-02-22 15:55:00.000000000 -0600 | |||
| +++ lapack-3.1.1/Makefile 2009-12-16 14:40:35.000000000 -0600 | |||
| @@ -20,9 +20,12 @@ | |||
| blaslib: | |||
| ( cd BLAS/SRC; $(MAKE) ) | |||
| -lapacklib: lapack_install | |||
| +lapacklib: | |||
| ( cd SRC; $(MAKE) ) | |||
| +lapack_prof: | |||
| + ( cd SRC; $(MAKE) lapack_prof) | |||
| + | |||
| tmglib: | |||
| ( cd TESTING/MATGEN; $(MAKE) ) | |||
| diff -ruN lapack-3.1.1.old/SRC/Makefile lapack-3.1.1/SRC/Makefile | |||
| --- lapack-3.1.1.old/SRC/Makefile 2007-02-23 15:33:05.000000000 -0600 | |||
| +++ lapack-3.1.1/SRC/Makefile 2009-12-16 14:41:09.000000000 -0600 | |||
| @@ -38,265 +38,273 @@ | |||
| # | |||
| ####################################################################### | |||
| -ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla.o iparmq.o \ | |||
| - ../INSTALL/ilaver.o ../INSTALL/lsame.o | |||
| +ALLAUX = ilaenv.$(SUFFIX) ieeeck.$(SUFFIX) lsamen.$(SUFFIX) iparmq.$(SUFFIX) \ | |||
| + ../INSTALL/ilaver.$(SUFFIX) | |||
| SCLAUX = \ | |||
| - sbdsdc.o \ | |||
| - sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \ | |||
| - slaed0.o slaed1.o slaed2.o slaed3.o slaed4.o slaed5.o slaed6.o \ | |||
| - slaed7.o slaed8.o slaed9.o slaeda.o slaev2.o slagtf.o \ | |||
| - slagts.o slamrg.o slanst.o \ | |||
| - slapy2.o slapy3.o slarnv.o \ | |||
| - slarra.o slarrb.o slarrc.o slarrd.o slarre.o slarrf.o slarrj.o \ | |||
| - slarrk.o slarrr.o slaneg.o \ | |||
| - slartg.o slaruv.o slas2.o slascl.o \ | |||
| - slasd0.o slasd1.o slasd2.o slasd3.o slasd4.o slasd5.o slasd6.o \ | |||
| - slasd7.o slasd8.o slasda.o slasdq.o slasdt.o \ | |||
| - slaset.o slasq1.o slasq2.o slasq3.o slazq3.o slasq4.o slazq4.o slasq5.o slasq6.o \ | |||
| - slasr.o slasrt.o slassq.o slasv2.o spttrf.o sstebz.o sstedc.o \ | |||
| - ssteqr.o ssterf.o slaisnan.o sisnan.o \ | |||
| - ../INSTALL/slamch.o ../INSTALL/second_$(TIMER).o | |||
| + sbdsdc.$(SUFFIX) \ | |||
| + sbdsqr.$(SUFFIX) sdisna.$(SUFFIX) slabad.$(SUFFIX) slacpy.$(SUFFIX) sladiv.$(SUFFIX) slae2.$(SUFFIX) slaebz.$(SUFFIX) \ | |||
| + slaed0.$(SUFFIX) slaed1.$(SUFFIX) slaed2.$(SUFFIX) slaed3.$(SUFFIX) slaed4.$(SUFFIX) slaed5.$(SUFFIX) slaed6.$(SUFFIX) \ | |||
| + slaed7.$(SUFFIX) slaed8.$(SUFFIX) slaed9.$(SUFFIX) slaeda.$(SUFFIX) slaev2.$(SUFFIX) slagtf.$(SUFFIX) \ | |||
| + slagts.$(SUFFIX) slamrg.$(SUFFIX) slanst.$(SUFFIX) \ | |||
| + slapy2.$(SUFFIX) slapy3.$(SUFFIX) slarnv.$(SUFFIX) \ | |||
| + slarra.$(SUFFIX) slarrb.$(SUFFIX) slarrc.$(SUFFIX) slarrd.$(SUFFIX) slarre.$(SUFFIX) slarrf.$(SUFFIX) slarrj.$(SUFFIX) \ | |||
| + slarrk.$(SUFFIX) slarrr.$(SUFFIX) slaneg.$(SUFFIX) \ | |||
| + slartg.$(SUFFIX) slaruv.$(SUFFIX) slas2.$(SUFFIX) slascl.$(SUFFIX) \ | |||
| + slasd0.$(SUFFIX) slasd1.$(SUFFIX) slasd2.$(SUFFIX) slasd3.$(SUFFIX) slasd4.$(SUFFIX) slasd5.$(SUFFIX) slasd6.$(SUFFIX) \ | |||
| + slasd7.$(SUFFIX) slasd8.$(SUFFIX) slasda.$(SUFFIX) slasdq.$(SUFFIX) slasdt.$(SUFFIX) \ | |||
| + slaset.$(SUFFIX) slasq1.$(SUFFIX) slasq2.$(SUFFIX) slasq3.$(SUFFIX) slazq3.$(SUFFIX) slasq4.$(SUFFIX) slazq4.$(SUFFIX) slasq5.$(SUFFIX) slasq6.$(SUFFIX) \ | |||
| + slasr.$(SUFFIX) slasrt.$(SUFFIX) slassq.$(SUFFIX) slasv2.$(SUFFIX) spttrf.$(SUFFIX) sstebz.$(SUFFIX) sstedc.$(SUFFIX) \ | |||
| + ssteqr.$(SUFFIX) ssterf.$(SUFFIX) slaisnan.$(SUFFIX) sisnan.$(SUFFIX) \ | |||
| + ../INSTALL/second_$(TIMER).$(SUFFIX) | |||
| DZLAUX = \ | |||
| - dbdsdc.o \ | |||
| - dbdsqr.o ddisna.o dlabad.o dlacpy.o dladiv.o dlae2.o dlaebz.o \ | |||
| - dlaed0.o dlaed1.o dlaed2.o dlaed3.o dlaed4.o dlaed5.o dlaed6.o \ | |||
| - dlaed7.o dlaed8.o dlaed9.o dlaeda.o dlaev2.o dlagtf.o \ | |||
| - dlagts.o dlamrg.o dlanst.o \ | |||
| - dlapy2.o dlapy3.o dlarnv.o \ | |||
| - dlarra.o dlarrb.o dlarrc.o dlarrd.o dlarre.o dlarrf.o dlarrj.o \ | |||
| - dlarrk.o dlarrr.o dlaneg.o \ | |||
| - dlartg.o dlaruv.o dlas2.o dlascl.o \ | |||
| - dlasd0.o dlasd1.o dlasd2.o dlasd3.o dlasd4.o dlasd5.o dlasd6.o \ | |||
| - dlasd7.o dlasd8.o dlasda.o dlasdq.o dlasdt.o \ | |||
| - dlaset.o dlasq1.o dlasq2.o dlasq3.o dlazq3.o dlasq4.o dlazq4.o dlasq5.o dlasq6.o \ | |||
| - dlasr.o dlasrt.o dlassq.o dlasv2.o dpttrf.o dstebz.o dstedc.o \ | |||
| - dsteqr.o dsterf.o dlaisnan.o disnan.o \ | |||
| - ../INSTALL/dlamch.o ../INSTALL/dsecnd_$(TIMER).o | |||
| + dbdsdc.$(SUFFIX) \ | |||
| + dbdsqr.$(SUFFIX) ddisna.$(SUFFIX) dlabad.$(SUFFIX) dlacpy.$(SUFFIX) dladiv.$(SUFFIX) dlae2.$(SUFFIX) dlaebz.$(SUFFIX) \ | |||
| + dlaed0.$(SUFFIX) dlaed1.$(SUFFIX) dlaed2.$(SUFFIX) dlaed3.$(SUFFIX) dlaed4.$(SUFFIX) dlaed5.$(SUFFIX) dlaed6.$(SUFFIX) \ | |||
| + dlaed7.$(SUFFIX) dlaed8.$(SUFFIX) dlaed9.$(SUFFIX) dlaeda.$(SUFFIX) dlaev2.$(SUFFIX) dlagtf.$(SUFFIX) \ | |||
| + dlagts.$(SUFFIX) dlamrg.$(SUFFIX) dlanst.$(SUFFIX) \ | |||
| + dlapy2.$(SUFFIX) dlapy3.$(SUFFIX) dlarnv.$(SUFFIX) \ | |||
| + dlarra.$(SUFFIX) dlarrb.$(SUFFIX) dlarrc.$(SUFFIX) dlarrd.$(SUFFIX) dlarre.$(SUFFIX) dlarrf.$(SUFFIX) dlarrj.$(SUFFIX) \ | |||
| + dlarrk.$(SUFFIX) dlarrr.$(SUFFIX) dlaneg.$(SUFFIX) \ | |||
| + dlartg.$(SUFFIX) dlaruv.$(SUFFIX) dlas2.$(SUFFIX) dlascl.$(SUFFIX) \ | |||
| + dlasd0.$(SUFFIX) dlasd1.$(SUFFIX) dlasd2.$(SUFFIX) dlasd3.$(SUFFIX) dlasd4.$(SUFFIX) dlasd5.$(SUFFIX) dlasd6.$(SUFFIX) \ | |||
| + dlasd7.$(SUFFIX) dlasd8.$(SUFFIX) dlasda.$(SUFFIX) dlasdq.$(SUFFIX) dlasdt.$(SUFFIX) \ | |||
| + dlaset.$(SUFFIX) dlasq1.$(SUFFIX) dlasq2.$(SUFFIX) dlasq3.$(SUFFIX) dlazq3.$(SUFFIX) dlasq4.$(SUFFIX) dlazq4.$(SUFFIX) dlasq5.$(SUFFIX) dlasq6.$(SUFFIX) \ | |||
| + dlasr.$(SUFFIX) dlasrt.$(SUFFIX) dlassq.$(SUFFIX) dlasv2.$(SUFFIX) dpttrf.$(SUFFIX) dstebz.$(SUFFIX) dstedc.$(SUFFIX) \ | |||
| + dsteqr.$(SUFFIX) dsterf.$(SUFFIX) dlaisnan.$(SUFFIX) disnan.$(SUFFIX) \ | |||
| + ../INSTALL/dsecnd_$(TIMER).$(SUFFIX) | |||
| SLASRC = \ | |||
| - sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \ | |||
| - sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o \ | |||
| - sgebrd.o sgecon.o sgeequ.o sgees.o sgeesx.o sgeev.o sgeevx.o \ | |||
| - sgegs.o sgegv.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o \ | |||
| - sgels.o sgelsd.o sgelss.o sgelsx.o sgelsy.o sgeql2.o sgeqlf.o \ | |||
| - sgeqp3.o sgeqpf.o sgeqr2.o sgeqrf.o sgerfs.o sgerq2.o sgerqf.o \ | |||
| - sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvx.o sgetc2.o sgetf2.o \ | |||
| - sgetrf.o sgetri.o \ | |||
| - sgetrs.o sggbak.o sggbal.o sgges.o sggesx.o sggev.o sggevx.o \ | |||
| - sggglm.o sgghrd.o sgglse.o sggqrf.o \ | |||
| - sggrqf.o sggsvd.o sggsvp.o sgtcon.o sgtrfs.o sgtsv.o \ | |||
| - sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o \ | |||
| - shsein.o shseqr.o slabrd.o slacon.o slacn2.o \ | |||
| - slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o \ | |||
| - slahrd.o slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o \ | |||
| - slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o \ | |||
| - slansy.o slantb.o slantp.o slantr.o slanv2.o \ | |||
| - slapll.o slapmt.o \ | |||
| - slaqgb.o slaqge.o slaqp2.o slaqps.o slaqsb.o slaqsp.o slaqsy.o \ | |||
| - slaqr0.o slaqr1.o slaqr2.o slaqr3.o slaqr4.o slaqr5.o \ | |||
| - slaqtr.o slar1v.o slar2v.o \ | |||
| - slarf.o slarfb.o slarfg.o slarft.o slarfx.o slargv.o \ | |||
| - slarrv.o slartv.o \ | |||
| - slarz.o slarzb.o slarzt.o slaswp.o slasy2.o slasyf.o \ | |||
| - slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o slatzm.o \ | |||
| - slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \ | |||
| - sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \ | |||
| - sorgrq.o sorgtr.o sorm2l.o sorm2r.o \ | |||
| - sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \ | |||
| - sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \ | |||
| - spbstf.o spbsv.o spbsvx.o \ | |||
| - spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o \ | |||
| - sposvx.o spotf2.o spotrf.o spotri.o spotrs.o sppcon.o sppequ.o \ | |||
| - spprfs.o sppsv.o sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o \ | |||
| - spteqr.o sptrfs.o sptsv.o sptsvx.o spttrs.o sptts2.o srscl.o \ | |||
| - ssbev.o ssbevd.o ssbevx.o ssbgst.o ssbgv.o ssbgvd.o ssbgvx.o \ | |||
| - ssbtrd.o sspcon.o sspev.o sspevd.o sspevx.o sspgst.o \ | |||
| - sspgv.o sspgvd.o sspgvx.o ssprfs.o sspsv.o sspsvx.o ssptrd.o \ | |||
| - ssptrf.o ssptri.o ssptrs.o sstegr.o sstein.o sstev.o sstevd.o sstevr.o \ | |||
| - sstevx.o ssycon.o ssyev.o ssyevd.o ssyevr.o ssyevx.o ssygs2.o \ | |||
| - ssygst.o ssygv.o ssygvd.o ssygvx.o ssyrfs.o ssysv.o ssysvx.o \ | |||
| - ssytd2.o ssytf2.o ssytrd.o ssytrf.o ssytri.o ssytrs.o stbcon.o \ | |||
| - stbrfs.o stbtrs.o stgevc.o stgex2.o stgexc.o stgsen.o \ | |||
| - stgsja.o stgsna.o stgsy2.o stgsyl.o stpcon.o stprfs.o stptri.o \ | |||
| - stptrs.o \ | |||
| - strcon.o strevc.o strexc.o strrfs.o strsen.o strsna.o strsyl.o \ | |||
| - strti2.o strtri.o strtrs.o stzrqf.o stzrzf.o sstemr.o | |||
| + sgbbrd.$(SUFFIX) sgbcon.$(SUFFIX) sgbequ.$(SUFFIX) sgbrfs.$(SUFFIX) sgbsv.$(SUFFIX) \ | |||
| + sgbsvx.$(SUFFIX) sgbtf2.$(SUFFIX) sgbtrf.$(SUFFIX) sgbtrs.$(SUFFIX) sgebak.$(SUFFIX) sgebal.$(SUFFIX) sgebd2.$(SUFFIX) \ | |||
| + sgebrd.$(SUFFIX) sgecon.$(SUFFIX) sgeequ.$(SUFFIX) sgees.$(SUFFIX) sgeesx.$(SUFFIX) sgeev.$(SUFFIX) sgeevx.$(SUFFIX) \ | |||
| + sgegs.$(SUFFIX) sgegv.$(SUFFIX) sgehd2.$(SUFFIX) sgehrd.$(SUFFIX) sgelq2.$(SUFFIX) sgelqf.$(SUFFIX) \ | |||
| + sgels.$(SUFFIX) sgelsd.$(SUFFIX) sgelss.$(SUFFIX) sgelsx.$(SUFFIX) sgelsy.$(SUFFIX) sgeql2.$(SUFFIX) sgeqlf.$(SUFFIX) \ | |||
| + sgeqp3.$(SUFFIX) sgeqpf.$(SUFFIX) sgeqr2.$(SUFFIX) sgeqrf.$(SUFFIX) sgerfs.$(SUFFIX) sgerq2.$(SUFFIX) sgerqf.$(SUFFIX) \ | |||
| + sgesc2.$(SUFFIX) sgesdd.$(SUFFIX) sgesvd.$(SUFFIX) sgesvx.$(SUFFIX) sgetc2.$(SUFFIX) \ | |||
| + sgetri.$(SUFFIX) \ | |||
| + sggbak.$(SUFFIX) sggbal.$(SUFFIX) sgges.$(SUFFIX) sggesx.$(SUFFIX) sggev.$(SUFFIX) sggevx.$(SUFFIX) \ | |||
| + sggglm.$(SUFFIX) sgghrd.$(SUFFIX) sgglse.$(SUFFIX) sggqrf.$(SUFFIX) \ | |||
| + sggrqf.$(SUFFIX) sggsvd.$(SUFFIX) sggsvp.$(SUFFIX) sgtcon.$(SUFFIX) sgtrfs.$(SUFFIX) sgtsv.$(SUFFIX) \ | |||
| + sgtsvx.$(SUFFIX) sgttrf.$(SUFFIX) sgttrs.$(SUFFIX) sgtts2.$(SUFFIX) shgeqz.$(SUFFIX) \ | |||
| + shsein.$(SUFFIX) shseqr.$(SUFFIX) slabrd.$(SUFFIX) slacon.$(SUFFIX) slacn2.$(SUFFIX) \ | |||
| + slaein.$(SUFFIX) slaexc.$(SUFFIX) slag2.$(SUFFIX) slags2.$(SUFFIX) slagtm.$(SUFFIX) slagv2.$(SUFFIX) slahqr.$(SUFFIX) \ | |||
| + slahrd.$(SUFFIX) slahr2.$(SUFFIX) slaic1.$(SUFFIX) slaln2.$(SUFFIX) slals0.$(SUFFIX) slalsa.$(SUFFIX) slalsd.$(SUFFIX) \ | |||
| + slangb.$(SUFFIX) slange.$(SUFFIX) slangt.$(SUFFIX) slanhs.$(SUFFIX) slansb.$(SUFFIX) slansp.$(SUFFIX) \ | |||
| + slansy.$(SUFFIX) slantb.$(SUFFIX) slantp.$(SUFFIX) slantr.$(SUFFIX) slanv2.$(SUFFIX) \ | |||
| + slapll.$(SUFFIX) slapmt.$(SUFFIX) \ | |||
| + slaqgb.$(SUFFIX) slaqge.$(SUFFIX) slaqp2.$(SUFFIX) slaqps.$(SUFFIX) slaqsb.$(SUFFIX) slaqsp.$(SUFFIX) slaqsy.$(SUFFIX) \ | |||
| + slaqr0.$(SUFFIX) slaqr1.$(SUFFIX) slaqr2.$(SUFFIX) slaqr3.$(SUFFIX) slaqr4.$(SUFFIX) slaqr5.$(SUFFIX) \ | |||
| + slaqtr.$(SUFFIX) slar1v.$(SUFFIX) slar2v.$(SUFFIX) \ | |||
| + slarf.$(SUFFIX) slarfb.$(SUFFIX) slarfg.$(SUFFIX) slarft.$(SUFFIX) slarfx.$(SUFFIX) slargv.$(SUFFIX) \ | |||
| + slarrv.$(SUFFIX) slartv.$(SUFFIX) \ | |||
| + slarz.$(SUFFIX) slarzb.$(SUFFIX) slarzt.$(SUFFIX) slasy2.$(SUFFIX) slasyf.$(SUFFIX) \ | |||
| + slatbs.$(SUFFIX) slatdf.$(SUFFIX) slatps.$(SUFFIX) slatrd.$(SUFFIX) slatrs.$(SUFFIX) slatrz.$(SUFFIX) slatzm.$(SUFFIX) \ | |||
| + sopgtr.$(SUFFIX) sopmtr.$(SUFFIX) sorg2l.$(SUFFIX) sorg2r.$(SUFFIX) \ | |||
| + sorgbr.$(SUFFIX) sorghr.$(SUFFIX) sorgl2.$(SUFFIX) sorglq.$(SUFFIX) sorgql.$(SUFFIX) sorgqr.$(SUFFIX) sorgr2.$(SUFFIX) \ | |||
| + sorgrq.$(SUFFIX) sorgtr.$(SUFFIX) sorm2l.$(SUFFIX) sorm2r.$(SUFFIX) \ | |||
| + sormbr.$(SUFFIX) sormhr.$(SUFFIX) sorml2.$(SUFFIX) sormlq.$(SUFFIX) sormql.$(SUFFIX) sormqr.$(SUFFIX) sormr2.$(SUFFIX) \ | |||
| + sormr3.$(SUFFIX) sormrq.$(SUFFIX) sormrz.$(SUFFIX) sormtr.$(SUFFIX) spbcon.$(SUFFIX) spbequ.$(SUFFIX) spbrfs.$(SUFFIX) \ | |||
| + spbstf.$(SUFFIX) spbsv.$(SUFFIX) spbsvx.$(SUFFIX) \ | |||
| + spbtf2.$(SUFFIX) spbtrf.$(SUFFIX) spbtrs.$(SUFFIX) spocon.$(SUFFIX) spoequ.$(SUFFIX) sporfs.$(SUFFIX) sposv.$(SUFFIX) \ | |||
| + sposvx.$(SUFFIX) spotrs.$(SUFFIX) sppcon.$(SUFFIX) sppequ.$(SUFFIX) \ | |||
| + spprfs.$(SUFFIX) sppsv.$(SUFFIX) sppsvx.$(SUFFIX) spptrf.$(SUFFIX) spptri.$(SUFFIX) spptrs.$(SUFFIX) sptcon.$(SUFFIX) \ | |||
| + spteqr.$(SUFFIX) sptrfs.$(SUFFIX) sptsv.$(SUFFIX) sptsvx.$(SUFFIX) spttrs.$(SUFFIX) sptts2.$(SUFFIX) srscl.$(SUFFIX) \ | |||
| + ssbev.$(SUFFIX) ssbevd.$(SUFFIX) ssbevx.$(SUFFIX) ssbgst.$(SUFFIX) ssbgv.$(SUFFIX) ssbgvd.$(SUFFIX) ssbgvx.$(SUFFIX) \ | |||
| + ssbtrd.$(SUFFIX) sspcon.$(SUFFIX) sspev.$(SUFFIX) sspevd.$(SUFFIX) sspevx.$(SUFFIX) sspgst.$(SUFFIX) \ | |||
| + sspgv.$(SUFFIX) sspgvd.$(SUFFIX) sspgvx.$(SUFFIX) ssprfs.$(SUFFIX) sspsv.$(SUFFIX) sspsvx.$(SUFFIX) ssptrd.$(SUFFIX) \ | |||
| + ssptrf.$(SUFFIX) ssptri.$(SUFFIX) ssptrs.$(SUFFIX) sstegr.$(SUFFIX) sstein.$(SUFFIX) sstev.$(SUFFIX) sstevd.$(SUFFIX) sstevr.$(SUFFIX) \ | |||
| + sstevx.$(SUFFIX) ssycon.$(SUFFIX) ssyev.$(SUFFIX) ssyevd.$(SUFFIX) ssyevr.$(SUFFIX) ssyevx.$(SUFFIX) ssygs2.$(SUFFIX) \ | |||
| + ssygst.$(SUFFIX) ssygv.$(SUFFIX) ssygvd.$(SUFFIX) ssygvx.$(SUFFIX) ssyrfs.$(SUFFIX) ssysv.$(SUFFIX) ssysvx.$(SUFFIX) \ | |||
| + ssytd2.$(SUFFIX) ssytf2.$(SUFFIX) ssytrd.$(SUFFIX) ssytrf.$(SUFFIX) ssytri.$(SUFFIX) ssytrs.$(SUFFIX) stbcon.$(SUFFIX) \ | |||
| + stbrfs.$(SUFFIX) stbtrs.$(SUFFIX) stgevc.$(SUFFIX) stgex2.$(SUFFIX) stgexc.$(SUFFIX) stgsen.$(SUFFIX) \ | |||
| + stgsja.$(SUFFIX) stgsna.$(SUFFIX) stgsy2.$(SUFFIX) stgsyl.$(SUFFIX) stpcon.$(SUFFIX) stprfs.$(SUFFIX) stptri.$(SUFFIX) \ | |||
| + stptrs.$(SUFFIX) \ | |||
| + strcon.$(SUFFIX) strevc.$(SUFFIX) strexc.$(SUFFIX) strrfs.$(SUFFIX) strsen.$(SUFFIX) strsna.$(SUFFIX) strsyl.$(SUFFIX) \ | |||
| + strtrs.$(SUFFIX) stzrqf.$(SUFFIX) stzrzf.$(SUFFIX) sstemr.$(SUFFIX) | |||
| CLASRC = \ | |||
| - cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \ | |||
| - cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o \ | |||
| - cgecon.o cgeequ.o cgees.o cgeesx.o cgeev.o cgeevx.o \ | |||
| - cgegs.o cgegv.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o \ | |||
| - cgels.o cgelsd.o cgelss.o cgelsx.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o \ | |||
| - cgeqpf.o cgeqr2.o cgeqrf.o cgerfs.o cgerq2.o cgerqf.o \ | |||
| - cgesc2.o cgesdd.o cgesv.o cgesvd.o cgesvx.o cgetc2.o cgetf2.o cgetrf.o \ | |||
| - cgetri.o cgetrs.o \ | |||
| - cggbak.o cggbal.o cgges.o cggesx.o cggev.o cggevx.o cggglm.o \ | |||
| - cgghrd.o cgglse.o cggqrf.o cggrqf.o \ | |||
| - cggsvd.o cggsvp.o \ | |||
| - cgtcon.o cgtrfs.o cgtsv.o cgtsvx.o cgttrf.o cgttrs.o cgtts2.o chbev.o \ | |||
| - chbevd.o chbevx.o chbgst.o chbgv.o chbgvd.o chbgvx.o chbtrd.o \ | |||
| - checon.o cheev.o cheevd.o cheevr.o cheevx.o chegs2.o chegst.o \ | |||
| - chegv.o chegvd.o chegvx.o cherfs.o chesv.o chesvx.o chetd2.o \ | |||
| - chetf2.o chetrd.o \ | |||
| - chetrf.o chetri.o chetrs.o chgeqz.o chpcon.o chpev.o chpevd.o \ | |||
| - chpevx.o chpgst.o chpgv.o chpgvd.o chpgvx.o chprfs.o chpsv.o \ | |||
| - chpsvx.o \ | |||
| - chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o \ | |||
| - clacgv.o clacon.o clacn2.o clacp2.o clacpy.o clacrm.o clacrt.o cladiv.o \ | |||
| - claed0.o claed7.o claed8.o \ | |||
| - claein.o claesy.o claev2.o clags2.o clagtm.o \ | |||
| - clahef.o clahqr.o \ | |||
| - clahrd.o clahr2.o claic1.o clals0.o clalsa.o clalsd.o clangb.o clange.o clangt.o \ | |||
| - clanhb.o clanhe.o \ | |||
| - clanhp.o clanhs.o clanht.o clansb.o clansp.o clansy.o clantb.o \ | |||
| - clantp.o clantr.o clapll.o clapmt.o clarcm.o claqgb.o claqge.o \ | |||
| - claqhb.o claqhe.o claqhp.o claqp2.o claqps.o claqsb.o \ | |||
| - claqr0.o claqr1.o claqr2.o claqr3.o claqr4.o claqr5.o \ | |||
| - claqsp.o claqsy.o clar1v.o clar2v.o clarf.o clarfb.o clarfg.o clarft.o \ | |||
| - clarfx.o clargv.o clarnv.o clarrv.o clartg.o clartv.o \ | |||
| - clarz.o clarzb.o clarzt.o clascl.o claset.o clasr.o classq.o \ | |||
| - claswp.o clasyf.o clatbs.o clatdf.o clatps.o clatrd.o clatrs.o clatrz.o \ | |||
| - clatzm.o clauu2.o clauum.o cpbcon.o cpbequ.o cpbrfs.o cpbstf.o cpbsv.o \ | |||
| - cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o \ | |||
| - cposv.o cposvx.o cpotf2.o cpotrf.o cpotri.o cpotrs.o cppcon.o \ | |||
| - cppequ.o cpprfs.o cppsv.o cppsvx.o cpptrf.o cpptri.o cpptrs.o \ | |||
| - cptcon.o cpteqr.o cptrfs.o cptsv.o cptsvx.o cpttrf.o cpttrs.o cptts2.o \ | |||
| - crot.o cspcon.o cspmv.o cspr.o csprfs.o cspsv.o \ | |||
| - cspsvx.o csptrf.o csptri.o csptrs.o csrscl.o cstedc.o \ | |||
| - cstegr.o cstein.o csteqr.o csycon.o csymv.o \ | |||
| - csyr.o csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o \ | |||
| - csytrs.o ctbcon.o ctbrfs.o ctbtrs.o ctgevc.o ctgex2.o \ | |||
| - ctgexc.o ctgsen.o ctgsja.o ctgsna.o ctgsy2.o ctgsyl.o ctpcon.o \ | |||
| - ctprfs.o ctptri.o \ | |||
| - ctptrs.o ctrcon.o ctrevc.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \ | |||
| - ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrqf.o ctzrzf.o cung2l.o cung2r.o \ | |||
| - cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \ | |||
| - cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o \ | |||
| - cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \ | |||
| - cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o | |||
| + cbdsqr.$(SUFFIX) cgbbrd.$(SUFFIX) cgbcon.$(SUFFIX) cgbequ.$(SUFFIX) cgbrfs.$(SUFFIX) cgbsv.$(SUFFIX) cgbsvx.$(SUFFIX) \ | |||
| + cgbtf2.$(SUFFIX) cgbtrf.$(SUFFIX) cgbtrs.$(SUFFIX) cgebak.$(SUFFIX) cgebal.$(SUFFIX) cgebd2.$(SUFFIX) cgebrd.$(SUFFIX) \ | |||
| + cgecon.$(SUFFIX) cgeequ.$(SUFFIX) cgees.$(SUFFIX) cgeesx.$(SUFFIX) cgeev.$(SUFFIX) cgeevx.$(SUFFIX) \ | |||
| + cgegs.$(SUFFIX) cgegv.$(SUFFIX) cgehd2.$(SUFFIX) cgehrd.$(SUFFIX) cgelq2.$(SUFFIX) cgelqf.$(SUFFIX) \ | |||
| + cgels.$(SUFFIX) cgelsd.$(SUFFIX) cgelss.$(SUFFIX) cgelsx.$(SUFFIX) cgelsy.$(SUFFIX) cgeql2.$(SUFFIX) cgeqlf.$(SUFFIX) cgeqp3.$(SUFFIX) \ | |||
| + cgeqpf.$(SUFFIX) cgeqr2.$(SUFFIX) cgeqrf.$(SUFFIX) cgerfs.$(SUFFIX) cgerq2.$(SUFFIX) cgerqf.$(SUFFIX) \ | |||
| + cgesc2.$(SUFFIX) cgesdd.$(SUFFIX) cgesvd.$(SUFFIX) cgesvx.$(SUFFIX) cgetc2.$(SUFFIX) \ | |||
| + cgetri.$(SUFFIX) \ | |||
| + cggbak.$(SUFFIX) cggbal.$(SUFFIX) cgges.$(SUFFIX) cggesx.$(SUFFIX) cggev.$(SUFFIX) cggevx.$(SUFFIX) cggglm.$(SUFFIX) \ | |||
| + cgghrd.$(SUFFIX) cgglse.$(SUFFIX) cggqrf.$(SUFFIX) cggrqf.$(SUFFIX) \ | |||
| + cggsvd.$(SUFFIX) cggsvp.$(SUFFIX) \ | |||
| + cgtcon.$(SUFFIX) cgtrfs.$(SUFFIX) cgtsv.$(SUFFIX) cgtsvx.$(SUFFIX) cgttrf.$(SUFFIX) cgttrs.$(SUFFIX) cgtts2.$(SUFFIX) chbev.$(SUFFIX) \ | |||
| + chbevd.$(SUFFIX) chbevx.$(SUFFIX) chbgst.$(SUFFIX) chbgv.$(SUFFIX) chbgvd.$(SUFFIX) chbgvx.$(SUFFIX) chbtrd.$(SUFFIX) \ | |||
| + checon.$(SUFFIX) cheev.$(SUFFIX) cheevd.$(SUFFIX) cheevr.$(SUFFIX) cheevx.$(SUFFIX) chegs2.$(SUFFIX) chegst.$(SUFFIX) \ | |||
| + chegv.$(SUFFIX) chegvd.$(SUFFIX) chegvx.$(SUFFIX) cherfs.$(SUFFIX) chesv.$(SUFFIX) chesvx.$(SUFFIX) chetd2.$(SUFFIX) \ | |||
| + chetf2.$(SUFFIX) chetrd.$(SUFFIX) \ | |||
| + chetrf.$(SUFFIX) chetri.$(SUFFIX) chetrs.$(SUFFIX) chgeqz.$(SUFFIX) chpcon.$(SUFFIX) chpev.$(SUFFIX) chpevd.$(SUFFIX) \ | |||
| + chpevx.$(SUFFIX) chpgst.$(SUFFIX) chpgv.$(SUFFIX) chpgvd.$(SUFFIX) chpgvx.$(SUFFIX) chprfs.$(SUFFIX) chpsv.$(SUFFIX) \ | |||
| + chpsvx.$(SUFFIX) \ | |||
| + chptrd.$(SUFFIX) chptrf.$(SUFFIX) chptri.$(SUFFIX) chptrs.$(SUFFIX) chsein.$(SUFFIX) chseqr.$(SUFFIX) clabrd.$(SUFFIX) \ | |||
| + clacgv.$(SUFFIX) clacon.$(SUFFIX) clacn2.$(SUFFIX) clacp2.$(SUFFIX) clacpy.$(SUFFIX) clacrm.$(SUFFIX) clacrt.$(SUFFIX) cladiv.$(SUFFIX) \ | |||
| + claed0.$(SUFFIX) claed7.$(SUFFIX) claed8.$(SUFFIX) \ | |||
| + claein.$(SUFFIX) claesy.$(SUFFIX) claev2.$(SUFFIX) clags2.$(SUFFIX) clagtm.$(SUFFIX) \ | |||
| + clahef.$(SUFFIX) clahqr.$(SUFFIX) \ | |||
| + clahrd.$(SUFFIX) clahr2.$(SUFFIX) claic1.$(SUFFIX) clals0.$(SUFFIX) clalsa.$(SUFFIX) clalsd.$(SUFFIX) clangb.$(SUFFIX) clange.$(SUFFIX) clangt.$(SUFFIX) \ | |||
| + clanhb.$(SUFFIX) clanhe.$(SUFFIX) \ | |||
| + clanhp.$(SUFFIX) clanhs.$(SUFFIX) clanht.$(SUFFIX) clansb.$(SUFFIX) clansp.$(SUFFIX) clansy.$(SUFFIX) clantb.$(SUFFIX) \ | |||
| + clantp.$(SUFFIX) clantr.$(SUFFIX) clapll.$(SUFFIX) clapmt.$(SUFFIX) clarcm.$(SUFFIX) claqgb.$(SUFFIX) claqge.$(SUFFIX) \ | |||
| + claqhb.$(SUFFIX) claqhe.$(SUFFIX) claqhp.$(SUFFIX) claqp2.$(SUFFIX) claqps.$(SUFFIX) claqsb.$(SUFFIX) \ | |||
| + claqr0.$(SUFFIX) claqr1.$(SUFFIX) claqr2.$(SUFFIX) claqr3.$(SUFFIX) claqr4.$(SUFFIX) claqr5.$(SUFFIX) \ | |||
| + claqsp.$(SUFFIX) claqsy.$(SUFFIX) clar1v.$(SUFFIX) clar2v.$(SUFFIX) clarf.$(SUFFIX) clarfb.$(SUFFIX) clarfg.$(SUFFIX) clarft.$(SUFFIX) \ | |||
| + clarfx.$(SUFFIX) clargv.$(SUFFIX) clarnv.$(SUFFIX) clarrv.$(SUFFIX) clartg.$(SUFFIX) clartv.$(SUFFIX) \ | |||
| + clarz.$(SUFFIX) clarzb.$(SUFFIX) clarzt.$(SUFFIX) clascl.$(SUFFIX) claset.$(SUFFIX) clasr.$(SUFFIX) classq.$(SUFFIX) \ | |||
| + clasyf.$(SUFFIX) clatbs.$(SUFFIX) clatdf.$(SUFFIX) clatps.$(SUFFIX) clatrd.$(SUFFIX) clatrs.$(SUFFIX) clatrz.$(SUFFIX) \ | |||
| + clatzm.$(SUFFIX) cpbcon.$(SUFFIX) cpbequ.$(SUFFIX) cpbrfs.$(SUFFIX) cpbstf.$(SUFFIX) cpbsv.$(SUFFIX) \ | |||
| + cpbsvx.$(SUFFIX) cpbtf2.$(SUFFIX) cpbtrf.$(SUFFIX) cpbtrs.$(SUFFIX) cpocon.$(SUFFIX) cpoequ.$(SUFFIX) cporfs.$(SUFFIX) \ | |||
| + cposv.$(SUFFIX) cposvx.$(SUFFIX) cpotrs.$(SUFFIX) cppcon.$(SUFFIX) \ | |||
| + cppequ.$(SUFFIX) cpprfs.$(SUFFIX) cppsv.$(SUFFIX) cppsvx.$(SUFFIX) cpptrf.$(SUFFIX) cpptri.$(SUFFIX) cpptrs.$(SUFFIX) \ | |||
| + cptcon.$(SUFFIX) cpteqr.$(SUFFIX) cptrfs.$(SUFFIX) cptsv.$(SUFFIX) cptsvx.$(SUFFIX) cpttrf.$(SUFFIX) cpttrs.$(SUFFIX) cptts2.$(SUFFIX) \ | |||
| + crot.$(SUFFIX) cspcon.$(SUFFIX) csprfs.$(SUFFIX) cspsv.$(SUFFIX) \ | |||
| + cspsvx.$(SUFFIX) csptrf.$(SUFFIX) csptri.$(SUFFIX) csptrs.$(SUFFIX) csrscl.$(SUFFIX) cstedc.$(SUFFIX) \ | |||
| + cstegr.$(SUFFIX) cstein.$(SUFFIX) csteqr.$(SUFFIX) csycon.$(SUFFIX) \ | |||
| + csyrfs.$(SUFFIX) csysv.$(SUFFIX) csysvx.$(SUFFIX) csytf2.$(SUFFIX) csytrf.$(SUFFIX) csytri.$(SUFFIX) \ | |||
| + csytrs.$(SUFFIX) ctbcon.$(SUFFIX) ctbrfs.$(SUFFIX) ctbtrs.$(SUFFIX) ctgevc.$(SUFFIX) ctgex2.$(SUFFIX) \ | |||
| + ctgexc.$(SUFFIX) ctgsen.$(SUFFIX) ctgsja.$(SUFFIX) ctgsna.$(SUFFIX) ctgsy2.$(SUFFIX) ctgsyl.$(SUFFIX) ctpcon.$(SUFFIX) \ | |||
| + ctprfs.$(SUFFIX) ctptri.$(SUFFIX) \ | |||
| + ctptrs.$(SUFFIX) ctrcon.$(SUFFIX) ctrevc.$(SUFFIX) ctrexc.$(SUFFIX) ctrrfs.$(SUFFIX) ctrsen.$(SUFFIX) ctrsna.$(SUFFIX) \ | |||
| + ctrsyl.$(SUFFIX) ctrtrs.$(SUFFIX) ctzrqf.$(SUFFIX) ctzrzf.$(SUFFIX) cung2l.$(SUFFIX) cung2r.$(SUFFIX) \ | |||
| + cungbr.$(SUFFIX) cunghr.$(SUFFIX) cungl2.$(SUFFIX) cunglq.$(SUFFIX) cungql.$(SUFFIX) cungqr.$(SUFFIX) cungr2.$(SUFFIX) \ | |||
| + cungrq.$(SUFFIX) cungtr.$(SUFFIX) cunm2l.$(SUFFIX) cunm2r.$(SUFFIX) cunmbr.$(SUFFIX) cunmhr.$(SUFFIX) cunml2.$(SUFFIX) \ | |||
| + cunmlq.$(SUFFIX) cunmql.$(SUFFIX) cunmqr.$(SUFFIX) cunmr2.$(SUFFIX) cunmr3.$(SUFFIX) cunmrq.$(SUFFIX) cunmrz.$(SUFFIX) \ | |||
| + cunmtr.$(SUFFIX) cupgtr.$(SUFFIX) cupmtr.$(SUFFIX) icmax1.$(SUFFIX) scsum1.$(SUFFIX) cstemr.$(SUFFIX) | |||
| DLASRC = \ | |||
| - dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \ | |||
| - dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o \ | |||
| - dgebrd.o dgecon.o dgeequ.o dgees.o dgeesx.o dgeev.o dgeevx.o \ | |||
| - dgegs.o dgegv.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o \ | |||
| - dgels.o dgelsd.o dgelss.o dgelsx.o dgelsy.o dgeql2.o dgeqlf.o \ | |||
| - dgeqp3.o dgeqpf.o dgeqr2.o dgeqrf.o dgerfs.o dgerq2.o dgerqf.o \ | |||
| - dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvx.o dgetc2.o dgetf2.o \ | |||
| - dgetrf.o dgetri.o \ | |||
| - dgetrs.o dggbak.o dggbal.o dgges.o dggesx.o dggev.o dggevx.o \ | |||
| - dggglm.o dgghrd.o dgglse.o dggqrf.o \ | |||
| - dggrqf.o dggsvd.o dggsvp.o dgtcon.o dgtrfs.o dgtsv.o \ | |||
| - dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o \ | |||
| - dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o \ | |||
| - dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o \ | |||
| - dlahrd.o dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o \ | |||
| - dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o \ | |||
| - dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o \ | |||
| - dlapll.o dlapmt.o \ | |||
| - dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqsb.o dlaqsp.o dlaqsy.o \ | |||
| - dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \ | |||
| - dlaqtr.o dlar1v.o dlar2v.o \ | |||
| - dlarf.o dlarfb.o dlarfg.o dlarft.o dlarfx.o dlargv.o \ | |||
| - dlarrv.o dlartv.o \ | |||
| - dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o dlasyf.o \ | |||
| - dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlatzm.o dlauu2.o \ | |||
| - dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \ | |||
| - dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \ | |||
| - dorgrq.o dorgtr.o dorm2l.o dorm2r.o \ | |||
| - dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \ | |||
| - dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \ | |||
| - dpbstf.o dpbsv.o dpbsvx.o \ | |||
| - dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o \ | |||
| - dposvx.o dpotf2.o dpotrf.o dpotri.o dpotrs.o dppcon.o dppequ.o \ | |||
| - dpprfs.o dppsv.o dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o \ | |||
| - dpteqr.o dptrfs.o dptsv.o dptsvx.o dpttrs.o dptts2.o drscl.o \ | |||
| - dsbev.o dsbevd.o dsbevx.o dsbgst.o dsbgv.o dsbgvd.o dsbgvx.o \ | |||
| - dsbtrd.o dspcon.o dspev.o dspevd.o dspevx.o dspgst.o \ | |||
| - dspgv.o dspgvd.o dspgvx.o dsprfs.o dspsv.o dspsvx.o dsptrd.o \ | |||
| - dsptrf.o dsptri.o dsptrs.o dstegr.o dstein.o dstev.o dstevd.o dstevr.o \ | |||
| - dstevx.o dsycon.o dsyev.o dsyevd.o dsyevr.o \ | |||
| - dsyevx.o dsygs2.o dsygst.o dsygv.o dsygvd.o dsygvx.o dsyrfs.o \ | |||
| - dsysv.o dsysvx.o \ | |||
| - dsytd2.o dsytf2.o dsytrd.o dsytrf.o dsytri.o dsytrs.o dtbcon.o \ | |||
| - dtbrfs.o dtbtrs.o dtgevc.o dtgex2.o dtgexc.o dtgsen.o \ | |||
| - dtgsja.o dtgsna.o dtgsy2.o dtgsyl.o dtpcon.o dtprfs.o dtptri.o \ | |||
| - dtptrs.o \ | |||
| - dtrcon.o dtrevc.o dtrexc.o dtrrfs.o dtrsen.o dtrsna.o dtrsyl.o \ | |||
| - dtrti2.o dtrtri.o dtrtrs.o dtzrqf.o dtzrzf.o dstemr.o \ | |||
| - dsgesv.o dlag2s.o slag2d.o | |||
| + dgbbrd.$(SUFFIX) dgbcon.$(SUFFIX) dgbequ.$(SUFFIX) dgbrfs.$(SUFFIX) dgbsv.$(SUFFIX) \ | |||
| + dgbsvx.$(SUFFIX) dgbtf2.$(SUFFIX) dgbtrf.$(SUFFIX) dgbtrs.$(SUFFIX) dgebak.$(SUFFIX) dgebal.$(SUFFIX) dgebd2.$(SUFFIX) \ | |||
| + dgebrd.$(SUFFIX) dgecon.$(SUFFIX) dgeequ.$(SUFFIX) dgees.$(SUFFIX) dgeesx.$(SUFFIX) dgeev.$(SUFFIX) dgeevx.$(SUFFIX) \ | |||
| + dgegs.$(SUFFIX) dgegv.$(SUFFIX) dgehd2.$(SUFFIX) dgehrd.$(SUFFIX) dgelq2.$(SUFFIX) dgelqf.$(SUFFIX) \ | |||
| + dgels.$(SUFFIX) dgelsd.$(SUFFIX) dgelss.$(SUFFIX) dgelsx.$(SUFFIX) dgelsy.$(SUFFIX) dgeql2.$(SUFFIX) dgeqlf.$(SUFFIX) \ | |||
| + dgeqp3.$(SUFFIX) dgeqpf.$(SUFFIX) dgeqr2.$(SUFFIX) dgeqrf.$(SUFFIX) dgerfs.$(SUFFIX) dgerq2.$(SUFFIX) dgerqf.$(SUFFIX) \ | |||
| + dgesc2.$(SUFFIX) dgesdd.$(SUFFIX) dgesvd.$(SUFFIX) dgesvx.$(SUFFIX) dgetc2.$(SUFFIX) \ | |||
| + dgetri.$(SUFFIX) \ | |||
| + dggbak.$(SUFFIX) dggbal.$(SUFFIX) dgges.$(SUFFIX) dggesx.$(SUFFIX) dggev.$(SUFFIX) dggevx.$(SUFFIX) \ | |||
| + dggglm.$(SUFFIX) dgghrd.$(SUFFIX) dgglse.$(SUFFIX) dggqrf.$(SUFFIX) \ | |||
| + dggrqf.$(SUFFIX) dggsvd.$(SUFFIX) dggsvp.$(SUFFIX) dgtcon.$(SUFFIX) dgtrfs.$(SUFFIX) dgtsv.$(SUFFIX) \ | |||
| + dgtsvx.$(SUFFIX) dgttrf.$(SUFFIX) dgttrs.$(SUFFIX) dgtts2.$(SUFFIX) dhgeqz.$(SUFFIX) \ | |||
| + dhsein.$(SUFFIX) dhseqr.$(SUFFIX) dlabrd.$(SUFFIX) dlacon.$(SUFFIX) dlacn2.$(SUFFIX) \ | |||
| + dlaein.$(SUFFIX) dlaexc.$(SUFFIX) dlag2.$(SUFFIX) dlags2.$(SUFFIX) dlagtm.$(SUFFIX) dlagv2.$(SUFFIX) dlahqr.$(SUFFIX) \ | |||
| + dlahrd.$(SUFFIX) dlahr2.$(SUFFIX) dlaic1.$(SUFFIX) dlaln2.$(SUFFIX) dlals0.$(SUFFIX) dlalsa.$(SUFFIX) dlalsd.$(SUFFIX) \ | |||
| + dlangb.$(SUFFIX) dlange.$(SUFFIX) dlangt.$(SUFFIX) dlanhs.$(SUFFIX) dlansb.$(SUFFIX) dlansp.$(SUFFIX) \ | |||
| + dlansy.$(SUFFIX) dlantb.$(SUFFIX) dlantp.$(SUFFIX) dlantr.$(SUFFIX) dlanv2.$(SUFFIX) \ | |||
| + dlapll.$(SUFFIX) dlapmt.$(SUFFIX) \ | |||
| + dlaqgb.$(SUFFIX) dlaqge.$(SUFFIX) dlaqp2.$(SUFFIX) dlaqps.$(SUFFIX) dlaqsb.$(SUFFIX) dlaqsp.$(SUFFIX) dlaqsy.$(SUFFIX) \ | |||
| + dlaqr0.$(SUFFIX) dlaqr1.$(SUFFIX) dlaqr2.$(SUFFIX) dlaqr3.$(SUFFIX) dlaqr4.$(SUFFIX) dlaqr5.$(SUFFIX) \ | |||
| + dlaqtr.$(SUFFIX) dlar1v.$(SUFFIX) dlar2v.$(SUFFIX) \ | |||
| + dlarf.$(SUFFIX) dlarfb.$(SUFFIX) dlarfg.$(SUFFIX) dlarft.$(SUFFIX) dlarfx.$(SUFFIX) dlargv.$(SUFFIX) \ | |||
| + dlarrv.$(SUFFIX) dlartv.$(SUFFIX) \ | |||
| + dlarz.$(SUFFIX) dlarzb.$(SUFFIX) dlarzt.$(SUFFIX) dlasy2.$(SUFFIX) dlasyf.$(SUFFIX) \ | |||
| + dlatbs.$(SUFFIX) dlatdf.$(SUFFIX) dlatps.$(SUFFIX) dlatrd.$(SUFFIX) dlatrs.$(SUFFIX) dlatrz.$(SUFFIX) dlatzm.$(SUFFIX) \ | |||
| + dopgtr.$(SUFFIX) dopmtr.$(SUFFIX) dorg2l.$(SUFFIX) dorg2r.$(SUFFIX) \ | |||
| + dorgbr.$(SUFFIX) dorghr.$(SUFFIX) dorgl2.$(SUFFIX) dorglq.$(SUFFIX) dorgql.$(SUFFIX) dorgqr.$(SUFFIX) dorgr2.$(SUFFIX) \ | |||
| + dorgrq.$(SUFFIX) dorgtr.$(SUFFIX) dorm2l.$(SUFFIX) dorm2r.$(SUFFIX) \ | |||
| + dormbr.$(SUFFIX) dormhr.$(SUFFIX) dorml2.$(SUFFIX) dormlq.$(SUFFIX) dormql.$(SUFFIX) dormqr.$(SUFFIX) dormr2.$(SUFFIX) \ | |||
| + dormr3.$(SUFFIX) dormrq.$(SUFFIX) dormrz.$(SUFFIX) dormtr.$(SUFFIX) dpbcon.$(SUFFIX) dpbequ.$(SUFFIX) dpbrfs.$(SUFFIX) \ | |||
| + dpbstf.$(SUFFIX) dpbsv.$(SUFFIX) dpbsvx.$(SUFFIX) \ | |||
| + dpbtf2.$(SUFFIX) dpbtrf.$(SUFFIX) dpbtrs.$(SUFFIX) dpocon.$(SUFFIX) dpoequ.$(SUFFIX) dporfs.$(SUFFIX) dposv.$(SUFFIX) \ | |||
| + dposvx.$(SUFFIX) dpotrs.$(SUFFIX) dppcon.$(SUFFIX) dppequ.$(SUFFIX) \ | |||
| + dpprfs.$(SUFFIX) dppsv.$(SUFFIX) dppsvx.$(SUFFIX) dpptrf.$(SUFFIX) dpptri.$(SUFFIX) dpptrs.$(SUFFIX) dptcon.$(SUFFIX) \ | |||
| + dpteqr.$(SUFFIX) dptrfs.$(SUFFIX) dptsv.$(SUFFIX) dptsvx.$(SUFFIX) dpttrs.$(SUFFIX) dptts2.$(SUFFIX) drscl.$(SUFFIX) \ | |||
| + dsbev.$(SUFFIX) dsbevd.$(SUFFIX) dsbevx.$(SUFFIX) dsbgst.$(SUFFIX) dsbgv.$(SUFFIX) dsbgvd.$(SUFFIX) dsbgvx.$(SUFFIX) \ | |||
| + dsbtrd.$(SUFFIX) dspcon.$(SUFFIX) dspev.$(SUFFIX) dspevd.$(SUFFIX) dspevx.$(SUFFIX) dspgst.$(SUFFIX) \ | |||
| + dspgv.$(SUFFIX) dspgvd.$(SUFFIX) dspgvx.$(SUFFIX) dsprfs.$(SUFFIX) dspsv.$(SUFFIX) dspsvx.$(SUFFIX) dsptrd.$(SUFFIX) \ | |||
| + dsptrf.$(SUFFIX) dsptri.$(SUFFIX) dsptrs.$(SUFFIX) dstegr.$(SUFFIX) dstein.$(SUFFIX) dstev.$(SUFFIX) dstevd.$(SUFFIX) dstevr.$(SUFFIX) \ | |||
| + dstevx.$(SUFFIX) dsycon.$(SUFFIX) dsyev.$(SUFFIX) dsyevd.$(SUFFIX) dsyevr.$(SUFFIX) \ | |||
| + dsyevx.$(SUFFIX) dsygs2.$(SUFFIX) dsygst.$(SUFFIX) dsygv.$(SUFFIX) dsygvd.$(SUFFIX) dsygvx.$(SUFFIX) dsyrfs.$(SUFFIX) \ | |||
| + dsysv.$(SUFFIX) dsysvx.$(SUFFIX) \ | |||
| + dsytd2.$(SUFFIX) dsytf2.$(SUFFIX) dsytrd.$(SUFFIX) dsytrf.$(SUFFIX) dsytri.$(SUFFIX) dsytrs.$(SUFFIX) dtbcon.$(SUFFIX) \ | |||
| + dtbrfs.$(SUFFIX) dtbtrs.$(SUFFIX) dtgevc.$(SUFFIX) dtgex2.$(SUFFIX) dtgexc.$(SUFFIX) dtgsen.$(SUFFIX) \ | |||
| + dtgsja.$(SUFFIX) dtgsna.$(SUFFIX) dtgsy2.$(SUFFIX) dtgsyl.$(SUFFIX) dtpcon.$(SUFFIX) dtprfs.$(SUFFIX) dtptri.$(SUFFIX) \ | |||
| + dtptrs.$(SUFFIX) \ | |||
| + dtrcon.$(SUFFIX) dtrevc.$(SUFFIX) dtrexc.$(SUFFIX) dtrrfs.$(SUFFIX) dtrsen.$(SUFFIX) dtrsna.$(SUFFIX) dtrsyl.$(SUFFIX) \ | |||
| + dtrtrs.$(SUFFIX) dtzrqf.$(SUFFIX) dtzrzf.$(SUFFIX) dstemr.$(SUFFIX) \ | |||
| + dsgesv.$(SUFFIX) dlag2s.$(SUFFIX) slag2d.$(SUFFIX) | |||
| ZLASRC = \ | |||
| - zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \ | |||
| - zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o \ | |||
| - zgecon.o zgeequ.o zgees.o zgeesx.o zgeev.o zgeevx.o \ | |||
| - zgegs.o zgegv.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o \ | |||
| - zgels.o zgelsd.o zgelss.o zgelsx.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o \ | |||
| - zgeqpf.o zgeqr2.o zgeqrf.o zgerfs.o zgerq2.o zgerqf.o \ | |||
| - zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvx.o zgetc2.o zgetf2.o zgetrf.o \ | |||
| - zgetri.o zgetrs.o \ | |||
| - zggbak.o zggbal.o zgges.o zggesx.o zggev.o zggevx.o zggglm.o \ | |||
| - zgghrd.o zgglse.o zggqrf.o zggrqf.o \ | |||
| - zggsvd.o zggsvp.o \ | |||
| - zgtcon.o zgtrfs.o zgtsv.o zgtsvx.o zgttrf.o zgttrs.o zgtts2.o zhbev.o \ | |||
| - zhbevd.o zhbevx.o zhbgst.o zhbgv.o zhbgvd.o zhbgvx.o zhbtrd.o \ | |||
| - zhecon.o zheev.o zheevd.o zheevr.o zheevx.o zhegs2.o zhegst.o \ | |||
| - zhegv.o zhegvd.o zhegvx.o zherfs.o zhesv.o zhesvx.o zhetd2.o \ | |||
| - zhetf2.o zhetrd.o \ | |||
| - zhetrf.o zhetri.o zhetrs.o zhgeqz.o zhpcon.o zhpev.o zhpevd.o \ | |||
| - zhpevx.o zhpgst.o zhpgv.o zhpgvd.o zhpgvx.o zhprfs.o zhpsv.o \ | |||
| - zhpsvx.o \ | |||
| - zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o \ | |||
| - zlacgv.o zlacon.o zlacn2.o zlacp2.o zlacpy.o zlacrm.o zlacrt.o zladiv.o \ | |||
| - zlaed0.o zlaed7.o zlaed8.o \ | |||
| - zlaein.o zlaesy.o zlaev2.o zlags2.o zlagtm.o \ | |||
| - zlahef.o zlahqr.o \ | |||
| - zlahrd.o zlahr2.o zlaic1.o zlals0.o zlalsa.o zlalsd.o zlangb.o zlange.o \ | |||
| - zlangt.o zlanhb.o \ | |||
| - zlanhe.o \ | |||
| - zlanhp.o zlanhs.o zlanht.o zlansb.o zlansp.o zlansy.o zlantb.o \ | |||
| - zlantp.o zlantr.o zlapll.o zlapmt.o zlaqgb.o zlaqge.o \ | |||
| - zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqsb.o \ | |||
| - zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o \ | |||
| - zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o zlarcm.o zlarf.o zlarfb.o \ | |||
| - zlarfg.o zlarft.o \ | |||
| - zlarfx.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o \ | |||
| - zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o \ | |||
| - zlassq.o zlaswp.o zlasyf.o \ | |||
| - zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrz.o zlatzm.o zlauu2.o \ | |||
| - zlauum.o zpbcon.o zpbequ.o zpbrfs.o zpbstf.o zpbsv.o \ | |||
| - zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o \ | |||
| - zposv.o zposvx.o zpotf2.o zpotrf.o zpotri.o zpotrs.o zppcon.o \ | |||
| - zppequ.o zpprfs.o zppsv.o zppsvx.o zpptrf.o zpptri.o zpptrs.o \ | |||
| - zptcon.o zpteqr.o zptrfs.o zptsv.o zptsvx.o zpttrf.o zpttrs.o zptts2.o \ | |||
| - zrot.o zspcon.o zspmv.o zspr.o zsprfs.o zspsv.o \ | |||
| - zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrscl.o zstedc.o \ | |||
| - zstegr.o zstein.o zsteqr.o zsycon.o zsymv.o \ | |||
| - zsyr.o zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o \ | |||
| - zsytrs.o ztbcon.o ztbrfs.o ztbtrs.o ztgevc.o ztgex2.o \ | |||
| - ztgexc.o ztgsen.o ztgsja.o ztgsna.o ztgsy2.o ztgsyl.o ztpcon.o \ | |||
| - ztprfs.o ztptri.o \ | |||
| - ztptrs.o ztrcon.o ztrevc.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \ | |||
| - ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrqf.o ztzrzf.o zung2l.o \ | |||
| - zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \ | |||
| - zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o \ | |||
| - zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \ | |||
| - zunmtr.o zupgtr.o \ | |||
| - zupmtr.o izmax1.o dzsum1.o zstemr.o \ | |||
| - zcgesv.o zlag2c.o clag2z.o | |||
| + zbdsqr.$(SUFFIX) zgbbrd.$(SUFFIX) zgbcon.$(SUFFIX) zgbequ.$(SUFFIX) zgbrfs.$(SUFFIX) zgbsv.$(SUFFIX) zgbsvx.$(SUFFIX) \ | |||
| + zgbtf2.$(SUFFIX) zgbtrf.$(SUFFIX) zgbtrs.$(SUFFIX) zgebak.$(SUFFIX) zgebal.$(SUFFIX) zgebd2.$(SUFFIX) zgebrd.$(SUFFIX) \ | |||
| + zgecon.$(SUFFIX) zgeequ.$(SUFFIX) zgees.$(SUFFIX) zgeesx.$(SUFFIX) zgeev.$(SUFFIX) zgeevx.$(SUFFIX) \ | |||
| + zgegs.$(SUFFIX) zgegv.$(SUFFIX) zgehd2.$(SUFFIX) zgehrd.$(SUFFIX) zgelq2.$(SUFFIX) zgelqf.$(SUFFIX) \ | |||
| + zgels.$(SUFFIX) zgelsd.$(SUFFIX) zgelss.$(SUFFIX) zgelsx.$(SUFFIX) zgelsy.$(SUFFIX) zgeql2.$(SUFFIX) zgeqlf.$(SUFFIX) zgeqp3.$(SUFFIX) \ | |||
| + zgeqpf.$(SUFFIX) zgeqr2.$(SUFFIX) zgeqrf.$(SUFFIX) zgerfs.$(SUFFIX) zgerq2.$(SUFFIX) zgerqf.$(SUFFIX) \ | |||
| + zgesc2.$(SUFFIX) zgesdd.$(SUFFIX) zgesvd.$(SUFFIX) zgesvx.$(SUFFIX) zgetc2.$(SUFFIX) \ | |||
| + zgetri.$(SUFFIX) \ | |||
| + zggbak.$(SUFFIX) zggbal.$(SUFFIX) zgges.$(SUFFIX) zggesx.$(SUFFIX) zggev.$(SUFFIX) zggevx.$(SUFFIX) zggglm.$(SUFFIX) \ | |||
| + zgghrd.$(SUFFIX) zgglse.$(SUFFIX) zggqrf.$(SUFFIX) zggrqf.$(SUFFIX) \ | |||
| + zggsvd.$(SUFFIX) zggsvp.$(SUFFIX) \ | |||
| + zgtcon.$(SUFFIX) zgtrfs.$(SUFFIX) zgtsv.$(SUFFIX) zgtsvx.$(SUFFIX) zgttrf.$(SUFFIX) zgttrs.$(SUFFIX) zgtts2.$(SUFFIX) zhbev.$(SUFFIX) \ | |||
| + zhbevd.$(SUFFIX) zhbevx.$(SUFFIX) zhbgst.$(SUFFIX) zhbgv.$(SUFFIX) zhbgvd.$(SUFFIX) zhbgvx.$(SUFFIX) zhbtrd.$(SUFFIX) \ | |||
| + zhecon.$(SUFFIX) zheev.$(SUFFIX) zheevd.$(SUFFIX) zheevr.$(SUFFIX) zheevx.$(SUFFIX) zhegs2.$(SUFFIX) zhegst.$(SUFFIX) \ | |||
| + zhegv.$(SUFFIX) zhegvd.$(SUFFIX) zhegvx.$(SUFFIX) zherfs.$(SUFFIX) zhesv.$(SUFFIX) zhesvx.$(SUFFIX) zhetd2.$(SUFFIX) \ | |||
| + zhetf2.$(SUFFIX) zhetrd.$(SUFFIX) \ | |||
| + zhetrf.$(SUFFIX) zhetri.$(SUFFIX) zhetrs.$(SUFFIX) zhgeqz.$(SUFFIX) zhpcon.$(SUFFIX) zhpev.$(SUFFIX) zhpevd.$(SUFFIX) \ | |||
| + zhpevx.$(SUFFIX) zhpgst.$(SUFFIX) zhpgv.$(SUFFIX) zhpgvd.$(SUFFIX) zhpgvx.$(SUFFIX) zhprfs.$(SUFFIX) zhpsv.$(SUFFIX) \ | |||
| + zhpsvx.$(SUFFIX) \ | |||
| + zhptrd.$(SUFFIX) zhptrf.$(SUFFIX) zhptri.$(SUFFIX) zhptrs.$(SUFFIX) zhsein.$(SUFFIX) zhseqr.$(SUFFIX) zlabrd.$(SUFFIX) \ | |||
| + zlacgv.$(SUFFIX) zlacon.$(SUFFIX) zlacn2.$(SUFFIX) zlacp2.$(SUFFIX) zlacpy.$(SUFFIX) zlacrm.$(SUFFIX) zlacrt.$(SUFFIX) zladiv.$(SUFFIX) \ | |||
| + zlaed0.$(SUFFIX) zlaed7.$(SUFFIX) zlaed8.$(SUFFIX) \ | |||
| + zlaein.$(SUFFIX) zlaesy.$(SUFFIX) zlaev2.$(SUFFIX) zlags2.$(SUFFIX) zlagtm.$(SUFFIX) \ | |||
| + zlahef.$(SUFFIX) zlahqr.$(SUFFIX) \ | |||
| + zlahrd.$(SUFFIX) zlahr2.$(SUFFIX) zlaic1.$(SUFFIX) zlals0.$(SUFFIX) zlalsa.$(SUFFIX) zlalsd.$(SUFFIX) zlangb.$(SUFFIX) zlange.$(SUFFIX) \ | |||
| + zlangt.$(SUFFIX) zlanhb.$(SUFFIX) \ | |||
| + zlanhe.$(SUFFIX) \ | |||
| + zlanhp.$(SUFFIX) zlanhs.$(SUFFIX) zlanht.$(SUFFIX) zlansb.$(SUFFIX) zlansp.$(SUFFIX) zlansy.$(SUFFIX) zlantb.$(SUFFIX) \ | |||
| + zlantp.$(SUFFIX) zlantr.$(SUFFIX) zlapll.$(SUFFIX) zlapmt.$(SUFFIX) zlaqgb.$(SUFFIX) zlaqge.$(SUFFIX) \ | |||
| + zlaqhb.$(SUFFIX) zlaqhe.$(SUFFIX) zlaqhp.$(SUFFIX) zlaqp2.$(SUFFIX) zlaqps.$(SUFFIX) zlaqsb.$(SUFFIX) \ | |||
| + zlaqr0.$(SUFFIX) zlaqr1.$(SUFFIX) zlaqr2.$(SUFFIX) zlaqr3.$(SUFFIX) zlaqr4.$(SUFFIX) zlaqr5.$(SUFFIX) \ | |||
| + zlaqsp.$(SUFFIX) zlaqsy.$(SUFFIX) zlar1v.$(SUFFIX) zlar2v.$(SUFFIX) zlarcm.$(SUFFIX) zlarf.$(SUFFIX) zlarfb.$(SUFFIX) \ | |||
| + zlarfg.$(SUFFIX) zlarft.$(SUFFIX) \ | |||
| + zlarfx.$(SUFFIX) zlargv.$(SUFFIX) zlarnv.$(SUFFIX) zlarrv.$(SUFFIX) zlartg.$(SUFFIX) zlartv.$(SUFFIX) \ | |||
| + zlarz.$(SUFFIX) zlarzb.$(SUFFIX) zlarzt.$(SUFFIX) zlascl.$(SUFFIX) zlaset.$(SUFFIX) zlasr.$(SUFFIX) \ | |||
| + zlassq.$(SUFFIX) zlasyf.$(SUFFIX) \ | |||
| + zlatbs.$(SUFFIX) zlatdf.$(SUFFIX) zlatps.$(SUFFIX) zlatrd.$(SUFFIX) zlatrs.$(SUFFIX) zlatrz.$(SUFFIX) zlatzm.$(SUFFIX) \ | |||
| + zpbcon.$(SUFFIX) zpbequ.$(SUFFIX) zpbrfs.$(SUFFIX) zpbstf.$(SUFFIX) zpbsv.$(SUFFIX) \ | |||
| + zpbsvx.$(SUFFIX) zpbtf2.$(SUFFIX) zpbtrf.$(SUFFIX) zpbtrs.$(SUFFIX) zpocon.$(SUFFIX) zpoequ.$(SUFFIX) zporfs.$(SUFFIX) \ | |||
| + zposv.$(SUFFIX) zposvx.$(SUFFIX) zpotrs.$(SUFFIX) zppcon.$(SUFFIX) \ | |||
| + zppequ.$(SUFFIX) zpprfs.$(SUFFIX) zppsv.$(SUFFIX) zppsvx.$(SUFFIX) zpptrf.$(SUFFIX) zpptri.$(SUFFIX) zpptrs.$(SUFFIX) \ | |||
| + zptcon.$(SUFFIX) zpteqr.$(SUFFIX) zptrfs.$(SUFFIX) zptsv.$(SUFFIX) zptsvx.$(SUFFIX) zpttrf.$(SUFFIX) zpttrs.$(SUFFIX) zptts2.$(SUFFIX) \ | |||
| + zrot.$(SUFFIX) zspcon.$(SUFFIX) zsprfs.$(SUFFIX) zspsv.$(SUFFIX) \ | |||
| + zspsvx.$(SUFFIX) zsptrf.$(SUFFIX) zsptri.$(SUFFIX) zsptrs.$(SUFFIX) zdrscl.$(SUFFIX) zstedc.$(SUFFIX) \ | |||
| + zstegr.$(SUFFIX) zstein.$(SUFFIX) zsteqr.$(SUFFIX) zsycon.$(SUFFIX) \ | |||
| + zsyrfs.$(SUFFIX) zsysv.$(SUFFIX) zsysvx.$(SUFFIX) zsytf2.$(SUFFIX) zsytrf.$(SUFFIX) zsytri.$(SUFFIX) \ | |||
| + zsytrs.$(SUFFIX) ztbcon.$(SUFFIX) ztbrfs.$(SUFFIX) ztbtrs.$(SUFFIX) ztgevc.$(SUFFIX) ztgex2.$(SUFFIX) \ | |||
| + ztgexc.$(SUFFIX) ztgsen.$(SUFFIX) ztgsja.$(SUFFIX) ztgsna.$(SUFFIX) ztgsy2.$(SUFFIX) ztgsyl.$(SUFFIX) ztpcon.$(SUFFIX) \ | |||
| + ztprfs.$(SUFFIX) ztptri.$(SUFFIX) \ | |||
| + ztptrs.$(SUFFIX) ztrcon.$(SUFFIX) ztrevc.$(SUFFIX) ztrexc.$(SUFFIX) ztrrfs.$(SUFFIX) ztrsen.$(SUFFIX) ztrsna.$(SUFFIX) \ | |||
| + ztrsyl.$(SUFFIX) ztrtrs.$(SUFFIX) ztzrqf.$(SUFFIX) ztzrzf.$(SUFFIX) zung2l.$(SUFFIX) \ | |||
| + zung2r.$(SUFFIX) zungbr.$(SUFFIX) zunghr.$(SUFFIX) zungl2.$(SUFFIX) zunglq.$(SUFFIX) zungql.$(SUFFIX) zungqr.$(SUFFIX) zungr2.$(SUFFIX) \ | |||
| + zungrq.$(SUFFIX) zungtr.$(SUFFIX) zunm2l.$(SUFFIX) zunm2r.$(SUFFIX) zunmbr.$(SUFFIX) zunmhr.$(SUFFIX) zunml2.$(SUFFIX) \ | |||
| + zunmlq.$(SUFFIX) zunmql.$(SUFFIX) zunmqr.$(SUFFIX) zunmr2.$(SUFFIX) zunmr3.$(SUFFIX) zunmrq.$(SUFFIX) zunmrz.$(SUFFIX) \ | |||
| + zunmtr.$(SUFFIX) zupgtr.$(SUFFIX) \ | |||
| + zupmtr.$(SUFFIX) izmax1.$(SUFFIX) dzsum1.$(SUFFIX) zstemr.$(SUFFIX) \ | |||
| + zcgesv.$(SUFFIX) zlag2c.$(SUFFIX) clag2z.$(SUFFIX) | |||
| all: ../$(LAPACKLIB) | |||
| +lapack_prof: ../$(LAPACKLIB_P) | |||
| + | |||
| ALLOBJ=$(SLASRC) $(DLASRC) $(CLASRC) $(ZLASRC) $(SCLAUX) $(DZLAUX) \ | |||
| $(ALLAUX) | |||
| +ALLOBJ_P = $(ALLOBJ:.$(SUFFIX)=.$(PSUFFIX)) | |||
| + | |||
| ../$(LAPACKLIB): $(ALLOBJ) | |||
| $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) | |||
| $(RANLIB) $@ | |||
| +../$(LAPACKLIB_P): $(ALLOBJ_P) | |||
| + $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ_P) | |||
| + $(RANLIB) $@ | |||
| + | |||
| single: $(SLASRC) $(ALLAUX) $(SCLAUX) | |||
| $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(ALLAUX) \ | |||
| $(SCLAUX) | |||
| @@ -317,6 +325,7 @@ | |||
| $(DZLAUX) | |||
| $(RANLIB) ../$(LAPACKLIB) | |||
| + | |||
| $(ALLAUX): $(FRC) | |||
| $(SCLAUX): $(FRC) | |||
| $(DZLAUX): $(FRC) | |||
| @@ -329,11 +338,16 @@ | |||
| @FRC=$(FRC) | |||
| clean: | |||
| - rm -f *.o | |||
| + rm -f *.$(SUFFIX) *.$(PSUFFIX) | |||
| -.f.o: | |||
| +%.$(SUFFIX): %.f | |||
| $(FORTRAN) $(OPTS) -c $< -o $@ | |||
| -slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| -dlaruv.o: dlaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| +%.$(PSUFFIX): %.f | |||
| + $(FORTRAN) $(POPTS) -c $< -o $@ | |||
| + | |||
| +slaruv.$(SUFFIX): slaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| +dlaruv.$(SUFFIX): dlaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| +slaruv.$(PSUFFIX): slaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| +dlaruv.$(PSUFFIX): dlaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| diff -ruN lapack-3.1.1.old/TESTING/EIG/Makefile lapack-3.1.1/TESTING/EIG/Makefile | |||
| --- lapack-3.1.1.old/TESTING/EIG/Makefile 2007-02-20 15:33:03.000000000 -0600 | |||
| +++ lapack-3.1.1/TESTING/EIG/Makefile 2009-12-16 14:40:35.000000000 -0600 | |||
| @@ -78,7 +78,7 @@ | |||
| cget35.o cget36.o cget37.o cget38.o cget51.o cget52.o \ | |||
| cget54.o cglmts.o cgqrts.o cgrqts.o cgsvts.o \ | |||
| chbt21.o chet21.o chet22.o chpt21.o chst01.o \ | |||
| - clarfy.o clarhs.o clatm4.o clctes.o clctsx.o clsets.o csbmv.o \ | |||
| + clarfy.o clarhs.o clatm4.o clctes.o clctsx.o clsets.o \ | |||
| csgt01.o cslect.o \ | |||
| cstt21.o cstt22.o cunt01.o cunt03.o | |||
| @@ -115,7 +115,7 @@ | |||
| zget35.o zget36.o zget37.o zget38.o zget51.o zget52.o \ | |||
| zget54.o zglmts.o zgqrts.o zgrqts.o zgsvts.o \ | |||
| zhbt21.o zhet21.o zhet22.o zhpt21.o zhst01.o \ | |||
| - zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o zsbmv.o \ | |||
| + zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o \ | |||
| zsgt01.o zslect.o \ | |||
| zstt21.o zstt22.o zunt01.o zunt03.o | |||
| @@ -129,22 +129,22 @@ | |||
| ../xeigtsts: $(SEIGTST) $(SCIGTST) $(AEIGTST) ; \ | |||
| $(LOADER) $(LOADOPTS) -o $@ \ | |||
| $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) \ | |||
| - ../../$(LAPACKLIB) $(BLASLIB) | |||
| + ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) | |||
| ../xeigtstc: $(CEIGTST) $(SCIGTST) $(AEIGTST) ; \ | |||
| $(LOADER) $(LOADOPTS) -o $@ \ | |||
| $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) \ | |||
| - ../../$(LAPACKLIB) $(BLASLIB) | |||
| + ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) | |||
| ../xeigtstd: $(DEIGTST) $(DZIGTST) $(AEIGTST) ; \ | |||
| $(LOADER) $(LOADOPTS) -o $@ \ | |||
| $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) \ | |||
| - ../../$(LAPACKLIB) $(BLASLIB) | |||
| + ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) | |||
| ../xeigtstz: $(ZEIGTST) $(DZIGTST) $(AEIGTST) ; \ | |||
| $(LOADER) $(LOADOPTS) -o $@ \ | |||
| $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) \ | |||
| - ../../$(LAPACKLIB) $(BLASLIB) | |||
| + ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) | |||
| $(AEIGTST): $(FRC) | |||
| $(SCIGTST): $(FRC) | |||
| diff -ruN lapack-3.1.1.old/TESTING/LIN/Makefile lapack-3.1.1/TESTING/LIN/Makefile | |||
| --- lapack-3.1.1.old/TESTING/LIN/Makefile 2007-02-20 15:33:03.000000000 -0600 | |||
| +++ lapack-3.1.1/TESTING/LIN/Makefile 2009-12-16 14:40:35.000000000 -0600 | |||
| @@ -97,7 +97,7 @@ | |||
| cqpt01.o cqrt01.o cqrt02.o cqrt03.o cqrt11.o \ | |||
| cqrt12.o cqrt13.o cqrt14.o cqrt15.o cqrt16.o \ | |||
| cqrt17.o crqt01.o crqt02.o crqt03.o crzt01.o crzt02.o \ | |||
| - csbmv.o cspt01.o \ | |||
| + cspt01.o \ | |||
| cspt02.o cspt03.o csyt01.o csyt02.o csyt03.o \ | |||
| ctbt02.o ctbt03.o ctbt05.o ctbt06.o ctpt01.o \ | |||
| ctpt02.o ctpt03.o ctpt05.o ctpt06.o ctrt01.o \ | |||
| @@ -159,7 +159,7 @@ | |||
| zqpt01.o zqrt01.o zqrt02.o zqrt03.o zqrt11.o \ | |||
| zqrt12.o zqrt13.o zqrt14.o zqrt15.o zqrt16.o \ | |||
| zqrt17.o zrqt01.o zrqt02.o zrqt03.o zrzt01.o zrzt02.o \ | |||
| - zsbmv.o zspt01.o \ | |||
| + zspt01.o \ | |||
| zspt02.o zspt03.o zsyt01.o zsyt02.o zsyt03.o \ | |||
| ztbt02.o ztbt03.o ztbt05.o ztbt06.o ztpt01.o \ | |||
| ztpt02.o ztpt03.o ztpt05.o ztpt06.o ztrt01.o \ | |||
| @@ -176,7 +176,7 @@ | |||
| zdrvab.o zerrab.o zget08.o \ | |||
| alaerh.o alahd.o aladhd.o alareq.o \ | |||
| chkxer.o zget02.o zlarhs.o zlatb4.o \ | |||
| - zsbmv.o xerbla.o | |||
| + xerbla.o | |||
| all: single double complex complex16 proto-double proto-complex16 | |||
| @@ -190,27 +190,27 @@ | |||
| ../xlintsts : $(ALINTST) $(SLINTST) $(SCLNTST) | |||
| $(LOADER) $(LOADOPTS) $(ALINTST) $(SCLNTST) $(SLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| ../xlintstc : $(ALINTST) $(CLINTST) $(SCLNTST) | |||
| $(LOADER) $(LOADOPTS) $(ALINTST) $(SCLNTST) $(CLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| ../xlintstd : $(ALINTST) $(DLINTST) $(DZLNTST) | |||
| $(LOADER) $(LOADOPTS) $(ALINTST) $(DZLNTST) $(DLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| ../xlintstz : $(ALINTST) $(ZLINTST) $(DZLNTST) | |||
| $(LOADER) $(LOADOPTS) $(ALINTST) $(DZLNTST) $(ZLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| ../xlintstds : $(DSLINTST) | |||
| $(LOADER) $(LOADOPTS) $(DSLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| ../xlintstzc : $(ZCLINTST) | |||
| $(LOADER) $(LOADOPTS) $(ZCLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| $(ALINTST): $(FRC) | |||
| $(SCLNTST): $(FRC) | |||
| @@ -1,932 +0,0 @@ | |||
| diff -ruN lapack-3.4.1.old/INSTALL/Makefile lapack-3.4.1/INSTALL/Makefile | |||
| --- lapack-3.4.1.old/INSTALL/Makefile 2011-10-01 04:37:03 +0200 | |||
| +++ lapack-3.4.1/INSTALL/Makefile 2012-04-22 21:48:48 +0200 | |||
| @@ -27,7 +27,7 @@ | |||
| $(LOADER) $(LOADOPTS) -o testversion ilaver.o LAPACK_version.o | |||
| clean: | |||
| - rm -f *.o | |||
| + rm -f *.o test* | |||
| .f.o: | |||
| $(FORTRAN) $(OPTS) -c $< -o $@ | |||
| diff -ruN lapack-3.4.1.old/Makefile lapack-3.4.1/Makefile | |||
| --- lapack-3.4.1.old/Makefile 2012-04-13 20:13:07 +0200 | |||
| +++ lapack-3.4.1/Makefile 2012-04-22 21:48:07 +0200 | |||
| @@ -20,9 +20,12 @@ | |||
| blaslib: | |||
| ( cd BLAS/SRC; $(MAKE) ) | |||
| -lapacklib: lapack_install | |||
| +lapacklib: | |||
| ( cd SRC; $(MAKE) ) | |||
| +lapack_prof: | |||
| + ( cd SRC; $(MAKE) lapack_prof) | |||
| + | |||
| lapackelib: lapacklib | |||
| ( cd lapacke; $(MAKE) ) | |||
| diff -ruN lapack-3.4.1.old/SRC/Makefile lapack-3.4.1/SRC/Makefile | |||
| --- lapack-3.4.1.old/SRC/Makefile 2012-04-02 21:06:36 +0200 | |||
| +++ lapack-3.4.1/SRC/Makefile 2012-04-22 21:40:21 +0200 | |||
| @@ -54,363 +54,371 @@ | |||
| # | |||
| ####################################################################### | |||
| -ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o \ | |||
| - ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \ | |||
| - ../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o | |||
| +ALLAUX = ilaenv.$(SUFFIX) ieeeck.$(SUFFIX) lsamen.$(SUFFIX) xerbla_array.$(SUFFIX) iparmq.$(SUFFIX) \ | |||
| + ilaprec.$(SUFFIX) ilatrans.$(SUFFIX) ilauplo.$(SUFFIX) iladiag.$(SUFFIX) chla_transtype.$(SUFFIX) \ | |||
| + ../INSTALL/ilaver.$(SUFFIX) | |||
| SCLAUX = \ | |||
| - sbdsdc.o \ | |||
| - sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \ | |||
| - slaed0.o slaed1.o slaed2.o slaed3.o slaed4.o slaed5.o slaed6.o \ | |||
| - slaed7.o slaed8.o slaed9.o slaeda.o slaev2.o slagtf.o \ | |||
| - slagts.o slamrg.o slanst.o \ | |||
| - slapy2.o slapy3.o slarnv.o \ | |||
| - slarra.o slarrb.o slarrc.o slarrd.o slarre.o slarrf.o slarrj.o \ | |||
| - slarrk.o slarrr.o slaneg.o \ | |||
| - slartg.o slaruv.o slas2.o slascl.o \ | |||
| - slasd0.o slasd1.o slasd2.o slasd3.o slasd4.o slasd5.o slasd6.o \ | |||
| - slasd7.o slasd8.o slasda.o slasdq.o slasdt.o \ | |||
| - slaset.o slasq1.o slasq2.o slasq3.o slasq4.o slasq5.o slasq6.o \ | |||
| - slasr.o slasrt.o slassq.o slasv2.o spttrf.o sstebz.o sstedc.o \ | |||
| - ssteqr.o ssterf.o slaisnan.o sisnan.o \ | |||
| - slartgp.o slartgs.o \ | |||
| - ../INSTALL/second_$(TIMER).o | |||
| + sbdsdc.$(SUFFIX) \ | |||
| + sbdsqr.$(SUFFIX) sdisna.$(SUFFIX) slabad.$(SUFFIX) slacpy.$(SUFFIX) sladiv.$(SUFFIX) slae2.$(SUFFIX) slaebz.$(SUFFIX) \ | |||
| + slaed0.$(SUFFIX) slaed1.$(SUFFIX) slaed2.$(SUFFIX) slaed3.$(SUFFIX) slaed4.$(SUFFIX) slaed5.$(SUFFIX) slaed6.$(SUFFIX) \ | |||
| + slaed7.$(SUFFIX) slaed8.$(SUFFIX) slaed9.$(SUFFIX) slaeda.$(SUFFIX) slaev2.$(SUFFIX) slagtf.$(SUFFIX) \ | |||
| + slagts.$(SUFFIX) slamrg.$(SUFFIX) slanst.$(SUFFIX) \ | |||
| + slapy2.$(SUFFIX) slapy3.$(SUFFIX) slarnv.$(SUFFIX) \ | |||
| + slarra.$(SUFFIX) slarrb.$(SUFFIX) slarrc.$(SUFFIX) slarrd.$(SUFFIX) slarre.$(SUFFIX) slarrf.$(SUFFIX) slarrj.$(SUFFIX) \ | |||
| + slarrk.$(SUFFIX) slarrr.$(SUFFIX) slaneg.$(SUFFIX) \ | |||
| + slartg.$(SUFFIX) slaruv.$(SUFFIX) slas2.$(SUFFIX) slascl.$(SUFFIX) \ | |||
| + slasd0.$(SUFFIX) slasd1.$(SUFFIX) slasd2.$(SUFFIX) slasd3.$(SUFFIX) slasd4.$(SUFFIX) slasd5.$(SUFFIX) slasd6.$(SUFFIX) \ | |||
| + slasd7.$(SUFFIX) slasd8.$(SUFFIX) slasda.$(SUFFIX) slasdq.$(SUFFIX) slasdt.$(SUFFIX) \ | |||
| + slaset.$(SUFFIX) slasq1.$(SUFFIX) slasq2.$(SUFFIX) slasq3.$(SUFFIX) slasq4.$(SUFFIX) slasq5.$(SUFFIX) slasq6.$(SUFFIX) \ | |||
| + slasr.$(SUFFIX) slasrt.$(SUFFIX) slassq.$(SUFFIX) slasv2.$(SUFFIX) spttrf.$(SUFFIX) sstebz.$(SUFFIX) sstedc.$(SUFFIX) \ | |||
| + ssteqr.$(SUFFIX) ssterf.$(SUFFIX) slaisnan.$(SUFFIX) sisnan.$(SUFFIX) \ | |||
| + slartgp.$(SUFFIX) slartgs.$(SUFFIX) \ | |||
| + ../INSTALL/second_$(TIMER).$(SUFFIX) | |||
| DZLAUX = \ | |||
| - dbdsdc.o \ | |||
| - dbdsqr.o ddisna.o dlabad.o dlacpy.o dladiv.o dlae2.o dlaebz.o \ | |||
| - dlaed0.o dlaed1.o dlaed2.o dlaed3.o dlaed4.o dlaed5.o dlaed6.o \ | |||
| - dlaed7.o dlaed8.o dlaed9.o dlaeda.o dlaev2.o dlagtf.o \ | |||
| - dlagts.o dlamrg.o dlanst.o \ | |||
| - dlapy2.o dlapy3.o dlarnv.o \ | |||
| - dlarra.o dlarrb.o dlarrc.o dlarrd.o dlarre.o dlarrf.o dlarrj.o \ | |||
| - dlarrk.o dlarrr.o dlaneg.o \ | |||
| - dlartg.o dlaruv.o dlas2.o dlascl.o \ | |||
| - dlasd0.o dlasd1.o dlasd2.o dlasd3.o dlasd4.o dlasd5.o dlasd6.o \ | |||
| - dlasd7.o dlasd8.o dlasda.o dlasdq.o dlasdt.o \ | |||
| - dlaset.o dlasq1.o dlasq2.o dlasq3.o dlasq4.o dlasq5.o dlasq6.o \ | |||
| - dlasr.o dlasrt.o dlassq.o dlasv2.o dpttrf.o dstebz.o dstedc.o \ | |||
| - dsteqr.o dsterf.o dlaisnan.o disnan.o \ | |||
| - dlartgp.o dlartgs.o \ | |||
| - ../INSTALL/dlamch.o ../INSTALL/dsecnd_$(TIMER).o | |||
| + dbdsdc.$(SUFFIX) \ | |||
| + dbdsqr.$(SUFFIX) ddisna.$(SUFFIX) dlabad.$(SUFFIX) dlacpy.$(SUFFIX) dladiv.$(SUFFIX) dlae2.$(SUFFIX) dlaebz.$(SUFFIX) \ | |||
| + dlaed0.$(SUFFIX) dlaed1.$(SUFFIX) dlaed2.$(SUFFIX) dlaed3.$(SUFFIX) dlaed4.$(SUFFIX) dlaed5.$(SUFFIX) dlaed6.$(SUFFIX) \ | |||
| + dlaed7.$(SUFFIX) dlaed8.$(SUFFIX) dlaed9.$(SUFFIX) dlaeda.$(SUFFIX) dlaev2.$(SUFFIX) dlagtf.$(SUFFIX) \ | |||
| + dlagts.$(SUFFIX) dlamrg.$(SUFFIX) dlanst.$(SUFFIX) \ | |||
| + dlapy2.$(SUFFIX) dlapy3.$(SUFFIX) dlarnv.$(SUFFIX) \ | |||
| + dlarra.$(SUFFIX) dlarrb.$(SUFFIX) dlarrc.$(SUFFIX) dlarrd.$(SUFFIX) dlarre.$(SUFFIX) dlarrf.$(SUFFIX) dlarrj.$(SUFFIX) \ | |||
| + dlarrk.$(SUFFIX) dlarrr.$(SUFFIX) dlaneg.$(SUFFIX) \ | |||
| + dlartg.$(SUFFIX) dlaruv.$(SUFFIX) dlas2.$(SUFFIX) dlascl.$(SUFFIX) \ | |||
| + dlasd0.$(SUFFIX) dlasd1.$(SUFFIX) dlasd2.$(SUFFIX) dlasd3.$(SUFFIX) dlasd4.$(SUFFIX) dlasd5.$(SUFFIX) dlasd6.$(SUFFIX) \ | |||
| + dlasd7.$(SUFFIX) dlasd8.$(SUFFIX) dlasda.$(SUFFIX) dlasdq.$(SUFFIX) dlasdt.$(SUFFIX) \ | |||
| + dlaset.$(SUFFIX) dlasq1.$(SUFFIX) dlasq2.$(SUFFIX) dlasq3.$(SUFFIX) dlasq4.$(SUFFIX) dlasq5.$(SUFFIX) dlasq6.$(SUFFIX) \ | |||
| + dlasr.$(SUFFIX) dlasrt.$(SUFFIX) dlassq.$(SUFFIX) dlasv2.$(SUFFIX) dpttrf.$(SUFFIX) dstebz.$(SUFFIX) dstedc.$(SUFFIX) \ | |||
| + dsteqr.$(SUFFIX) dsterf.$(SUFFIX) dlaisnan.$(SUFFIX) disnan.$(SUFFIX) \ | |||
| + dlartgp.$(SUFFIX) dlartgs.$(SUFFIX) \ | |||
| + ../INSTALL/dsecnd_$(TIMER).$(SUFFIX) | |||
| SLASRC = \ | |||
| - sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \ | |||
| - sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o \ | |||
| - sgebrd.o sgecon.o sgeequ.o sgees.o sgeesx.o sgeev.o sgeevx.o \ | |||
| - sgegs.o sgegv.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o \ | |||
| - sgels.o sgelsd.o sgelss.o sgelsx.o sgelsy.o sgeql2.o sgeqlf.o \ | |||
| - sgeqp3.o sgeqpf.o sgeqr2.o sgeqr2p.o sgeqrf.o sgeqrfp.o sgerfs.o \ | |||
| - sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvx.o \ | |||
| - sgetc2.o sgetf2.o sgetri.o \ | |||
| - sggbak.o sggbal.o sgges.o sggesx.o sggev.o sggevx.o \ | |||
| - sggglm.o sgghrd.o sgglse.o sggqrf.o \ | |||
| - sggrqf.o sggsvd.o sggsvp.o sgtcon.o sgtrfs.o sgtsv.o \ | |||
| - sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o \ | |||
| - shsein.o shseqr.o slabrd.o slacon.o slacn2.o \ | |||
| - slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o \ | |||
| - slahrd.o slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o \ | |||
| - slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o \ | |||
| - slansy.o slantb.o slantp.o slantr.o slanv2.o \ | |||
| - slapll.o slapmt.o \ | |||
| - slaqgb.o slaqge.o slaqp2.o slaqps.o slaqsb.o slaqsp.o slaqsy.o \ | |||
| - slaqr0.o slaqr1.o slaqr2.o slaqr3.o slaqr4.o slaqr5.o \ | |||
| - slaqtr.o slar1v.o slar2v.o ilaslr.o ilaslc.o \ | |||
| - slarf.o slarfb.o slarfg.o slarfgp.o slarft.o slarfx.o slargv.o \ | |||
| - slarrv.o slartv.o \ | |||
| - slarz.o slarzb.o slarzt.o slaswp.o slasy2.o slasyf.o \ | |||
| - slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o slatzm.o \ | |||
| - slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \ | |||
| - sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \ | |||
| - sorgrq.o sorgtr.o sorm2l.o sorm2r.o \ | |||
| - sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \ | |||
| - sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \ | |||
| - spbstf.o spbsv.o spbsvx.o \ | |||
| - spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o \ | |||
| - sposvx.o spotf2.o spotri.o spstrf.o spstf2.o \ | |||
| - sppcon.o sppequ.o \ | |||
| - spprfs.o sppsv.o sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o \ | |||
| - spteqr.o sptrfs.o sptsv.o sptsvx.o spttrs.o sptts2.o srscl.o \ | |||
| - ssbev.o ssbevd.o ssbevx.o ssbgst.o ssbgv.o ssbgvd.o ssbgvx.o \ | |||
| - ssbtrd.o sspcon.o sspev.o sspevd.o sspevx.o sspgst.o \ | |||
| - sspgv.o sspgvd.o sspgvx.o ssprfs.o sspsv.o sspsvx.o ssptrd.o \ | |||
| - ssptrf.o ssptri.o ssptrs.o sstegr.o sstein.o sstev.o sstevd.o sstevr.o \ | |||
| - sstevx.o \ | |||
| - ssycon.o ssyev.o ssyevd.o ssyevr.o ssyevx.o ssygs2.o \ | |||
| - ssygst.o ssygv.o ssygvd.o ssygvx.o ssyrfs.o ssysv.o ssysvx.o \ | |||
| - ssytd2.o ssytf2.o ssytrd.o ssytrf.o ssytri.o ssytri2.o ssytri2x.o \ | |||
| - ssyswapr.o ssytrs.o ssytrs2.o ssyconv.o \ | |||
| - stbcon.o \ | |||
| - stbrfs.o stbtrs.o stgevc.o stgex2.o stgexc.o stgsen.o \ | |||
| - stgsja.o stgsna.o stgsy2.o stgsyl.o stpcon.o stprfs.o stptri.o \ | |||
| - stptrs.o \ | |||
| - strcon.o strevc.o strexc.o strrfs.o strsen.o strsna.o strsyl.o \ | |||
| - strti2.o strtri.o strtrs.o stzrqf.o stzrzf.o sstemr.o \ | |||
| - slansf.o spftrf.o spftri.o spftrs.o ssfrk.o stfsm.o stftri.o stfttp.o \ | |||
| - stfttr.o stpttf.o stpttr.o strttf.o strttp.o \ | |||
| - sgejsv.o sgesvj.o sgsvj0.o sgsvj1.o \ | |||
| - sgeequb.o ssyequb.o spoequb.o sgbequb.o \ | |||
| - sbbcsd.o slapmr.o sorbdb.o sorcsd.o \ | |||
| - sgeqrt.o sgeqrt2.o sgeqrt3.o sgemqrt.o \ | |||
| - stpqrt.o stpqrt2.o stpmqrt.o stprfb.o | |||
| + sgbbrd.$(SUFFIX) sgbcon.$(SUFFIX) sgbequ.$(SUFFIX) sgbrfs.$(SUFFIX) sgbsv.$(SUFFIX) \ | |||
| + sgbsvx.$(SUFFIX) sgbtf2.$(SUFFIX) sgbtrf.$(SUFFIX) sgbtrs.$(SUFFIX) sgebak.$(SUFFIX) sgebal.$(SUFFIX) sgebd2.$(SUFFIX) \ | |||
| + sgebrd.$(SUFFIX) sgecon.$(SUFFIX) sgeequ.$(SUFFIX) sgees.$(SUFFIX) sgeesx.$(SUFFIX) sgeev.$(SUFFIX) sgeevx.$(SUFFIX) \ | |||
| + sgegs.$(SUFFIX) sgegv.$(SUFFIX) sgehd2.$(SUFFIX) sgehrd.$(SUFFIX) sgelq2.$(SUFFIX) sgelqf.$(SUFFIX) \ | |||
| + sgels.$(SUFFIX) sgelsd.$(SUFFIX) sgelss.$(SUFFIX) sgelsx.$(SUFFIX) sgelsy.$(SUFFIX) sgeql2.$(SUFFIX) sgeqlf.$(SUFFIX) \ | |||
| + sgeqp3.$(SUFFIX) sgeqpf.$(SUFFIX) sgeqr2.$(SUFFIX) sgeqr2p.$(SUFFIX) sgeqrf.$(SUFFIX) sgeqrfp.$(SUFFIX) sgerfs.$(SUFFIX) \ | |||
| + sgerq2.$(SUFFIX) sgerqf.$(SUFFIX) sgesc2.$(SUFFIX) sgesdd.$(SUFFIX) sgesv.$(SUFFIX) sgesvd.$(SUFFIX) sgesvx.$(SUFFIX) \ | |||
| + sgetc2.$(SUFFIX) sgetri.$(SUFFIX) \ | |||
| + sggbak.$(SUFFIX) sggbal.$(SUFFIX) sgges.$(SUFFIX) sggesx.$(SUFFIX) sggev.$(SUFFIX) sggevx.$(SUFFIX) \ | |||
| + sggglm.$(SUFFIX) sgghrd.$(SUFFIX) sgglse.$(SUFFIX) sggqrf.$(SUFFIX) \ | |||
| + sggrqf.$(SUFFIX) sggsvd.$(SUFFIX) sggsvp.$(SUFFIX) sgtcon.$(SUFFIX) sgtrfs.$(SUFFIX) sgtsv.$(SUFFIX) \ | |||
| + sgtsvx.$(SUFFIX) sgttrf.$(SUFFIX) sgttrs.$(SUFFIX) sgtts2.$(SUFFIX) shgeqz.$(SUFFIX) \ | |||
| + shsein.$(SUFFIX) shseqr.$(SUFFIX) slabrd.$(SUFFIX) slacon.$(SUFFIX) slacn2.$(SUFFIX) \ | |||
| + slaein.$(SUFFIX) slaexc.$(SUFFIX) slag2.$(SUFFIX) slags2.$(SUFFIX) slagtm.$(SUFFIX) slagv2.$(SUFFIX) slahqr.$(SUFFIX) \ | |||
| + slahrd.$(SUFFIX) slahr2.$(SUFFIX) slaic1.$(SUFFIX) slaln2.$(SUFFIX) slals0.$(SUFFIX) slalsa.$(SUFFIX) slalsd.$(SUFFIX) \ | |||
| + slangb.$(SUFFIX) slange.$(SUFFIX) slangt.$(SUFFIX) slanhs.$(SUFFIX) slansb.$(SUFFIX) slansp.$(SUFFIX) \ | |||
| + slansy.$(SUFFIX) slantb.$(SUFFIX) slantp.$(SUFFIX) slantr.$(SUFFIX) slanv2.$(SUFFIX) \ | |||
| + slapll.$(SUFFIX) slapmt.$(SUFFIX) \ | |||
| + slaqgb.$(SUFFIX) slaqge.$(SUFFIX) slaqp2.$(SUFFIX) slaqps.$(SUFFIX) slaqsb.$(SUFFIX) slaqsp.$(SUFFIX) slaqsy.$(SUFFIX) \ | |||
| + slaqr0.$(SUFFIX) slaqr1.$(SUFFIX) slaqr2.$(SUFFIX) slaqr3.$(SUFFIX) slaqr4.$(SUFFIX) slaqr5.$(SUFFIX) \ | |||
| + slaqtr.$(SUFFIX) slar1v.$(SUFFIX) slar2v.$(SUFFIX) ilaslr.$(SUFFIX) ilaslc.$(SUFFIX) \ | |||
| + slarf.$(SUFFIX) slarfb.$(SUFFIX) slarfg.$(SUFFIX) slarfgp.$(SUFFIX) slarft.$(SUFFIX) slarfx.$(SUFFIX) slargv.$(SUFFIX) \ | |||
| + slarrv.$(SUFFIX) slartv.$(SUFFIX) \ | |||
| + slarz.$(SUFFIX) slarzb.$(SUFFIX) slarzt.$(SUFFIX) slasy2.$(SUFFIX) slasyf.$(SUFFIX) \ | |||
| + slatbs.$(SUFFIX) slatdf.$(SUFFIX) slatps.$(SUFFIX) slatrd.$(SUFFIX) slatrs.$(SUFFIX) slatrz.$(SUFFIX) slatzm.$(SUFFIX) \ | |||
| + sopgtr.$(SUFFIX) sopmtr.$(SUFFIX) sorg2l.$(SUFFIX) sorg2r.$(SUFFIX) \ | |||
| + sorgbr.$(SUFFIX) sorghr.$(SUFFIX) sorgl2.$(SUFFIX) sorglq.$(SUFFIX) sorgql.$(SUFFIX) sorgqr.$(SUFFIX) sorgr2.$(SUFFIX) \ | |||
| + sorgrq.$(SUFFIX) sorgtr.$(SUFFIX) sorm2l.$(SUFFIX) sorm2r.$(SUFFIX) \ | |||
| + sormbr.$(SUFFIX) sormhr.$(SUFFIX) sorml2.$(SUFFIX) sormlq.$(SUFFIX) sormql.$(SUFFIX) sormqr.$(SUFFIX) sormr2.$(SUFFIX) \ | |||
| + sormr3.$(SUFFIX) sormrq.$(SUFFIX) sormrz.$(SUFFIX) sormtr.$(SUFFIX) spbcon.$(SUFFIX) spbequ.$(SUFFIX) spbrfs.$(SUFFIX) \ | |||
| + spbstf.$(SUFFIX) spbsv.$(SUFFIX) spbsvx.$(SUFFIX) \ | |||
| + spbtf2.$(SUFFIX) spbtrf.$(SUFFIX) spbtrs.$(SUFFIX) spocon.$(SUFFIX) spoequ.$(SUFFIX) sporfs.$(SUFFIX) sposv.$(SUFFIX) \ | |||
| + sposvx.$(SUFFIX) spotri.$(SUFFIX) spstrf.$(SUFFIX) spstf2.$(SUFFIX) \ | |||
| + sppcon.$(SUFFIX) sppequ.$(SUFFIX) \ | |||
| + spprfs.$(SUFFIX) sppsv.$(SUFFIX) sppsvx.$(SUFFIX) spptrf.$(SUFFIX) spptri.$(SUFFIX) spptrs.$(SUFFIX) sptcon.$(SUFFIX) \ | |||
| + spteqr.$(SUFFIX) sptrfs.$(SUFFIX) sptsv.$(SUFFIX) sptsvx.$(SUFFIX) spttrs.$(SUFFIX) sptts2.$(SUFFIX) srscl.$(SUFFIX) \ | |||
| + ssbev.$(SUFFIX) ssbevd.$(SUFFIX) ssbevx.$(SUFFIX) ssbgst.$(SUFFIX) ssbgv.$(SUFFIX) ssbgvd.$(SUFFIX) ssbgvx.$(SUFFIX) \ | |||
| + ssbtrd.$(SUFFIX) sspcon.$(SUFFIX) sspev.$(SUFFIX) sspevd.$(SUFFIX) sspevx.$(SUFFIX) sspgst.$(SUFFIX) \ | |||
| + sspgv.$(SUFFIX) sspgvd.$(SUFFIX) sspgvx.$(SUFFIX) ssprfs.$(SUFFIX) sspsv.$(SUFFIX) sspsvx.$(SUFFIX) ssptrd.$(SUFFIX) \ | |||
| + ssptrf.$(SUFFIX) ssptri.$(SUFFIX) ssptrs.$(SUFFIX) sstegr.$(SUFFIX) sstein.$(SUFFIX) sstev.$(SUFFIX) sstevd.$(SUFFIX) sstevr.$(SUFFIX) \ | |||
| + sstevx.$(SUFFIX) \ | |||
| + ssycon.$(SUFFIX) ssyev.$(SUFFIX) ssyevd.$(SUFFIX) ssyevr.$(SUFFIX) ssyevx.$(SUFFIX) ssygs2.$(SUFFIX) \ | |||
| + ssygst.$(SUFFIX) ssygv.$(SUFFIX) ssygvd.$(SUFFIX) ssygvx.$(SUFFIX) ssyrfs.$(SUFFIX) ssysv.$(SUFFIX) ssysvx.$(SUFFIX) \ | |||
| + ssytd2.$(SUFFIX) ssytf2.$(SUFFIX) ssytrd.$(SUFFIX) ssytrf.$(SUFFIX) ssytri.$(SUFFIX) ssytri2.$(SUFFIX) ssytri2x.$(SUFFIX) \ | |||
| + ssyswapr.$(SUFFIX) ssytrs.$(SUFFIX) ssytrs2.$(SUFFIX) ssyconv.$(SUFFIX) \ | |||
| + stbcon.$(SUFFIX) \ | |||
| + stbrfs.$(SUFFIX) stbtrs.$(SUFFIX) stgevc.$(SUFFIX) stgex2.$(SUFFIX) stgexc.$(SUFFIX) stgsen.$(SUFFIX) \ | |||
| + stgsja.$(SUFFIX) stgsna.$(SUFFIX) stgsy2.$(SUFFIX) stgsyl.$(SUFFIX) stpcon.$(SUFFIX) stprfs.$(SUFFIX) stptri.$(SUFFIX) \ | |||
| + stptrs.$(SUFFIX) \ | |||
| + strcon.$(SUFFIX) strevc.$(SUFFIX) strexc.$(SUFFIX) strrfs.$(SUFFIX) strsen.$(SUFFIX) strsna.$(SUFFIX) strsyl.$(SUFFIX) \ | |||
| + strtrs.$(SUFFIX) stzrqf.$(SUFFIX) stzrzf.$(SUFFIX) sstemr.$(SUFFIX) \ | |||
| + slansf.$(SUFFIX) spftrf.$(SUFFIX) spftri.$(SUFFIX) spftrs.$(SUFFIX) ssfrk.$(SUFFIX) stfsm.$(SUFFIX) stftri.$(SUFFIX) stfttp.$(SUFFIX) \ | |||
| + stfttr.$(SUFFIX) stpttf.$(SUFFIX) stpttr.$(SUFFIX) strttf.$(SUFFIX) strttp.$(SUFFIX) \ | |||
| + sgejsv.$(SUFFIX) sgesvj.$(SUFFIX) sgsvj0.$(SUFFIX) sgsvj1.$(SUFFIX) \ | |||
| + sgeequb.$(SUFFIX) ssyequb.$(SUFFIX) spoequb.$(SUFFIX) sgbequb.$(SUFFIX) \ | |||
| + sbbcsd.$(SUFFIX) slapmr.$(SUFFIX) sorbdb.$(SUFFIX) sorcsd.$(SUFFIX) \ | |||
| + sgeqrt.$(SUFFIX) sgeqrt2.$(SUFFIX) sgeqrt3.$(SUFFIX) sgemqrt.$(SUFFIX) \ | |||
| + stpqrt.$(SUFFIX) stpqrt2.$(SUFFIX) stpmqrt.$(SUFFIX) stprfb.$(SUFFIX) | |||
| -DSLASRC = spotrs.o sgetrs.o spotrf.o sgetrf.o | |||
| +DSLASRC = spotrs.$(SUFFIX) | |||
| ifdef USEXBLAS | |||
| -SXLASRC = sgesvxx.o sgerfsx.o sla_gerfsx_extended.o sla_geamv.o \ | |||
| - sla_gercond.o sla_gerpvgrw.o ssysvxx.o ssyrfsx.o \ | |||
| - sla_syrfsx_extended.o sla_syamv.o sla_syrcond.o sla_syrpvgrw.o \ | |||
| - sposvxx.o sporfsx.o sla_porfsx_extended.o sla_porcond.o \ | |||
| - sla_porpvgrw.o sgbsvxx.o sgbrfsx.o sla_gbrfsx_extended.o \ | |||
| - sla_gbamv.o sla_gbrcond.o sla_gbrpvgrw.o sla_lin_berr.o slarscl2.o \ | |||
| - slascl2.o sla_wwaddw.o | |||
| +SXLASRC = sgesvxx.$(SUFFIX) sgerfsx.$(SUFFIX) sla_gerfsx_extended.$(SUFFIX) sla_geamv.$(SUFFIX) \ | |||
| + sla_gercond.$(SUFFIX) sla_gerpvgrw.$(SUFFIX) ssysvxx.$(SUFFIX) ssyrfsx.$(SUFFIX) \ | |||
| + sla_syrfsx_extended.$(SUFFIX) sla_syamv.$(SUFFIX) sla_syrcond.$(SUFFIX) sla_syrpvgrw.$(SUFFIX) \ | |||
| + sposvxx.$(SUFFIX) sporfsx.$(SUFFIX) sla_porfsx_extended.$(SUFFIX) sla_porcond.$(SUFFIX) \ | |||
| + sla_porpvgrw.$(SUFFIX) sgbsvxx.$(SUFFIX) sgbrfsx.$(SUFFIX) sla_gbrfsx_extended.$(SUFFIX) \ | |||
| + sla_gbamv.$(SUFFIX) sla_gbrcond.$(SUFFIX) sla_gbrpvgrw.$(SUFFIX) sla_lin_berr.$(SUFFIX) slarscl2.$(SUFFIX) \ | |||
| + slascl2.$(SUFFIX) sla_wwaddw.$(SUFFIX) | |||
| endif | |||
| CLASRC = \ | |||
| - cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \ | |||
| - cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o \ | |||
| - cgecon.o cgeequ.o cgees.o cgeesx.o cgeev.o cgeevx.o \ | |||
| - cgegs.o cgegv.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o \ | |||
| - cgels.o cgelsd.o cgelss.o cgelsx.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o \ | |||
| - cgeqpf.o cgeqr2.o cgeqr2p.o cgeqrf.o cgeqrfp.o cgerfs.o \ | |||
| - cgerq2.o cgerqf.o cgesc2.o cgesdd.o cgesv.o cgesvd.o \ | |||
| - cgesvx.o cgetc2.o cgetf2.o cgetri.o \ | |||
| - cggbak.o cggbal.o cgges.o cggesx.o cggev.o cggevx.o cggglm.o \ | |||
| - cgghrd.o cgglse.o cggqrf.o cggrqf.o \ | |||
| - cggsvd.o cggsvp.o \ | |||
| - cgtcon.o cgtrfs.o cgtsv.o cgtsvx.o cgttrf.o cgttrs.o cgtts2.o chbev.o \ | |||
| - chbevd.o chbevx.o chbgst.o chbgv.o chbgvd.o chbgvx.o chbtrd.o \ | |||
| - checon.o cheev.o cheevd.o cheevr.o cheevx.o chegs2.o chegst.o \ | |||
| - chegv.o chegvd.o chegvx.o cherfs.o chesv.o chesvx.o chetd2.o \ | |||
| - chetf2.o chetrd.o \ | |||
| - chetrf.o chetri.o chetri2.o chetri2x.o cheswapr.o \ | |||
| - chetrs.o chetrs2.o chgeqz.o chpcon.o chpev.o chpevd.o \ | |||
| - chpevx.o chpgst.o chpgv.o chpgvd.o chpgvx.o chprfs.o chpsv.o \ | |||
| - chpsvx.o \ | |||
| - chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o \ | |||
| - clacgv.o clacon.o clacn2.o clacp2.o clacpy.o clacrm.o clacrt.o cladiv.o \ | |||
| - claed0.o claed7.o claed8.o \ | |||
| - claein.o claesy.o claev2.o clags2.o clagtm.o \ | |||
| - clahef.o clahqr.o \ | |||
| - clahrd.o clahr2.o claic1.o clals0.o clalsa.o clalsd.o clangb.o clange.o clangt.o \ | |||
| - clanhb.o clanhe.o \ | |||
| - clanhp.o clanhs.o clanht.o clansb.o clansp.o clansy.o clantb.o \ | |||
| - clantp.o clantr.o clapll.o clapmt.o clarcm.o claqgb.o claqge.o \ | |||
| - claqhb.o claqhe.o claqhp.o claqp2.o claqps.o claqsb.o \ | |||
| - claqr0.o claqr1.o claqr2.o claqr3.o claqr4.o claqr5.o \ | |||
| - claqsp.o claqsy.o clar1v.o clar2v.o ilaclr.o ilaclc.o \ | |||
| - clarf.o clarfb.o clarfg.o clarft.o clarfgp.o \ | |||
| - clarfx.o clargv.o clarnv.o clarrv.o clartg.o clartv.o \ | |||
| - clarz.o clarzb.o clarzt.o clascl.o claset.o clasr.o classq.o \ | |||
| - claswp.o clasyf.o clatbs.o clatdf.o clatps.o clatrd.o clatrs.o clatrz.o \ | |||
| - clatzm.o clauu2.o clauum.o cpbcon.o cpbequ.o cpbrfs.o cpbstf.o cpbsv.o \ | |||
| - cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o \ | |||
| - cposv.o cposvx.o cpotf2.o cpotri.o cpstrf.o cpstf2.o \ | |||
| - cppcon.o cppequ.o cpprfs.o cppsv.o cppsvx.o cpptrf.o cpptri.o cpptrs.o \ | |||
| - cptcon.o cpteqr.o cptrfs.o cptsv.o cptsvx.o cpttrf.o cpttrs.o cptts2.o \ | |||
| - crot.o cspcon.o cspmv.o cspr.o csprfs.o cspsv.o \ | |||
| - cspsvx.o csptrf.o csptri.o csptrs.o csrscl.o cstedc.o \ | |||
| - cstegr.o cstein.o csteqr.o \ | |||
| - csycon.o csymv.o \ | |||
| - csyr.o csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o csytri2.o csytri2x.o \ | |||
| - csyswapr.o csytrs.o csytrs2.o csyconv.o \ | |||
| - ctbcon.o ctbrfs.o ctbtrs.o ctgevc.o ctgex2.o \ | |||
| - ctgexc.o ctgsen.o ctgsja.o ctgsna.o ctgsy2.o ctgsyl.o ctpcon.o \ | |||
| - ctprfs.o ctptri.o \ | |||
| - ctptrs.o ctrcon.o ctrevc.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \ | |||
| - ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrqf.o ctzrzf.o cung2l.o cung2r.o \ | |||
| - cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \ | |||
| - cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o \ | |||
| - cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \ | |||
| - cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \ | |||
| - chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \ | |||
| - ctfttr.o ctpttf.o ctpttr.o ctrttf.o ctrttp.o \ | |||
| - cgeequb.o cgbequb.o csyequb.o cpoequb.o cheequb.o \ | |||
| - cbbcsd.o clapmr.o cunbdb.o cuncsd.o \ | |||
| - cgeqrt.o cgeqrt2.o cgeqrt3.o cgemqrt.o \ | |||
| - ctpqrt.o ctpqrt2.o ctpmqrt.o ctprfb.o | |||
| + cbdsqr.$(SUFFIX) cgbbrd.$(SUFFIX) cgbcon.$(SUFFIX) cgbequ.$(SUFFIX) cgbrfs.$(SUFFIX) cgbsv.$(SUFFIX) cgbsvx.$(SUFFIX) \ | |||
| + cgbtf2.$(SUFFIX) cgbtrf.$(SUFFIX) cgbtrs.$(SUFFIX) cgebak.$(SUFFIX) cgebal.$(SUFFIX) cgebd2.$(SUFFIX) cgebrd.$(SUFFIX) \ | |||
| + cgecon.$(SUFFIX) cgeequ.$(SUFFIX) cgees.$(SUFFIX) cgeesx.$(SUFFIX) cgeev.$(SUFFIX) cgeevx.$(SUFFIX) \ | |||
| + cgegs.$(SUFFIX) cgegv.$(SUFFIX) cgehd2.$(SUFFIX) cgehrd.$(SUFFIX) cgelq2.$(SUFFIX) cgelqf.$(SUFFIX) \ | |||
| + cgels.$(SUFFIX) cgelsd.$(SUFFIX) cgelss.$(SUFFIX) cgelsx.$(SUFFIX) cgelsy.$(SUFFIX) cgeql2.$(SUFFIX) cgeqlf.$(SUFFIX) cgeqp3.$(SUFFIX) \ | |||
| + cgeqpf.$(SUFFIX) cgeqr2.$(SUFFIX) cgeqr2p.$(SUFFIX) cgeqrf.$(SUFFIX) cgeqrfp.$(SUFFIX) cgerfs.$(SUFFIX) \ | |||
| + cgerq2.$(SUFFIX) cgerqf.$(SUFFIX) cgesc2.$(SUFFIX) cgesdd.$(SUFFIX) cgesv.$(SUFFIX) cgesvd.$(SUFFIX) \ | |||
| + cgesvx.$(SUFFIX) cgetc2.$(SUFFIX) cgetri.$(SUFFIX) \ | |||
| + cggbak.$(SUFFIX) cggbal.$(SUFFIX) cgges.$(SUFFIX) cggesx.$(SUFFIX) cggev.$(SUFFIX) cggevx.$(SUFFIX) cggglm.$(SUFFIX) \ | |||
| + cgghrd.$(SUFFIX) cgglse.$(SUFFIX) cggqrf.$(SUFFIX) cggrqf.$(SUFFIX) \ | |||
| + cggsvd.$(SUFFIX) cggsvp.$(SUFFIX) \ | |||
| + cgtcon.$(SUFFIX) cgtrfs.$(SUFFIX) cgtsv.$(SUFFIX) cgtsvx.$(SUFFIX) cgttrf.$(SUFFIX) cgttrs.$(SUFFIX) cgtts2.$(SUFFIX) chbev.$(SUFFIX) \ | |||
| + chbevd.$(SUFFIX) chbevx.$(SUFFIX) chbgst.$(SUFFIX) chbgv.$(SUFFIX) chbgvd.$(SUFFIX) chbgvx.$(SUFFIX) chbtrd.$(SUFFIX) \ | |||
| + checon.$(SUFFIX) cheev.$(SUFFIX) cheevd.$(SUFFIX) cheevr.$(SUFFIX) cheevx.$(SUFFIX) chegs2.$(SUFFIX) chegst.$(SUFFIX) \ | |||
| + chegv.$(SUFFIX) chegvd.$(SUFFIX) chegvx.$(SUFFIX) cherfs.$(SUFFIX) chesv.$(SUFFIX) chesvx.$(SUFFIX) chetd2.$(SUFFIX) \ | |||
| + chetf2.$(SUFFIX) chetrd.$(SUFFIX) \ | |||
| + chetrf.$(SUFFIX) chetri.$(SUFFIX) chetri2.$(SUFFIX) chetri2x.$(SUFFIX) cheswapr.$(SUFFIX) \ | |||
| + chetrs.$(SUFFIX) chetrs2.$(SUFFIX) chgeqz.$(SUFFIX) chpcon.$(SUFFIX) chpev.$(SUFFIX) chpevd.$(SUFFIX) \ | |||
| + chpevx.$(SUFFIX) chpgst.$(SUFFIX) chpgv.$(SUFFIX) chpgvd.$(SUFFIX) chpgvx.$(SUFFIX) chprfs.$(SUFFIX) chpsv.$(SUFFIX) \ | |||
| + chpsvx.$(SUFFIX) \ | |||
| + chptrd.$(SUFFIX) chptrf.$(SUFFIX) chptri.$(SUFFIX) chptrs.$(SUFFIX) chsein.$(SUFFIX) chseqr.$(SUFFIX) clabrd.$(SUFFIX) \ | |||
| + clacgv.$(SUFFIX) clacon.$(SUFFIX) clacn2.$(SUFFIX) clacp2.$(SUFFIX) clacpy.$(SUFFIX) clacrm.$(SUFFIX) clacrt.$(SUFFIX) cladiv.$(SUFFIX) \ | |||
| + claed0.$(SUFFIX) claed7.$(SUFFIX) claed8.$(SUFFIX) \ | |||
| + claein.$(SUFFIX) claesy.$(SUFFIX) claev2.$(SUFFIX) clags2.$(SUFFIX) clagtm.$(SUFFIX) \ | |||
| + clahef.$(SUFFIX) clahqr.$(SUFFIX) \ | |||
| + clahrd.$(SUFFIX) clahr2.$(SUFFIX) claic1.$(SUFFIX) clals0.$(SUFFIX) clalsa.$(SUFFIX) clalsd.$(SUFFIX) clangb.$(SUFFIX) clange.$(SUFFIX) clangt.$(SUFFIX) \ | |||
| + clanhb.$(SUFFIX) clanhe.$(SUFFIX) \ | |||
| + clanhp.$(SUFFIX) clanhs.$(SUFFIX) clanht.$(SUFFIX) clansb.$(SUFFIX) clansp.$(SUFFIX) clansy.$(SUFFIX) clantb.$(SUFFIX) \ | |||
| + clantp.$(SUFFIX) clantr.$(SUFFIX) clapll.$(SUFFIX) clapmt.$(SUFFIX) clarcm.$(SUFFIX) claqgb.$(SUFFIX) claqge.$(SUFFIX) \ | |||
| + claqhb.$(SUFFIX) claqhe.$(SUFFIX) claqhp.$(SUFFIX) claqp2.$(SUFFIX) claqps.$(SUFFIX) claqsb.$(SUFFIX) \ | |||
| + claqr0.$(SUFFIX) claqr1.$(SUFFIX) claqr2.$(SUFFIX) claqr3.$(SUFFIX) claqr4.$(SUFFIX) claqr5.$(SUFFIX) \ | |||
| + claqsp.$(SUFFIX) claqsy.$(SUFFIX) clar1v.$(SUFFIX) clar2v.$(SUFFIX) ilaclr.$(SUFFIX) ilaclc.$(SUFFIX) \ | |||
| + clarf.$(SUFFIX) clarfb.$(SUFFIX) clarfg.$(SUFFIX) clarft.$(SUFFIX) clarfgp.$(SUFFIX) \ | |||
| + clarfx.$(SUFFIX) clargv.$(SUFFIX) clarnv.$(SUFFIX) clarrv.$(SUFFIX) clartg.$(SUFFIX) clartv.$(SUFFIX) \ | |||
| + clarz.$(SUFFIX) clarzb.$(SUFFIX) clarzt.$(SUFFIX) clascl.$(SUFFIX) claset.$(SUFFIX) clasr.$(SUFFIX) classq.$(SUFFIX) \ | |||
| + clasyf.$(SUFFIX) clatbs.$(SUFFIX) clatdf.$(SUFFIX) clatps.$(SUFFIX) clatrd.$(SUFFIX) clatrs.$(SUFFIX) clatrz.$(SUFFIX) \ | |||
| + clatzm.$(SUFFIX) cpbcon.$(SUFFIX) cpbequ.$(SUFFIX) cpbrfs.$(SUFFIX) cpbstf.$(SUFFIX) cpbsv.$(SUFFIX) \ | |||
| + cpbsvx.$(SUFFIX) cpbtf2.$(SUFFIX) cpbtrf.$(SUFFIX) cpbtrs.$(SUFFIX) cpocon.$(SUFFIX) cpoequ.$(SUFFIX) cporfs.$(SUFFIX) \ | |||
| + cposv.$(SUFFIX) cposvx.$(SUFFIX) cpotri.$(SUFFIX) cpstrf.$(SUFFIX) cpstf2.$(SUFFIX) \ | |||
| + cppcon.$(SUFFIX) cppequ.$(SUFFIX) cpprfs.$(SUFFIX) cppsv.$(SUFFIX) cppsvx.$(SUFFIX) cpptrf.$(SUFFIX) cpptri.$(SUFFIX) cpptrs.$(SUFFIX) \ | |||
| + cptcon.$(SUFFIX) cpteqr.$(SUFFIX) cptrfs.$(SUFFIX) cptsv.$(SUFFIX) cptsvx.$(SUFFIX) cpttrf.$(SUFFIX) cpttrs.$(SUFFIX) cptts2.$(SUFFIX) \ | |||
| + crot.$(SUFFIX) cspcon.$(SUFFIX) cspmv.$(SUFFIX) cspr.$(SUFFIX) csprfs.$(SUFFIX) cspsv.$(SUFFIX) \ | |||
| + cspsvx.$(SUFFIX) csptrf.$(SUFFIX) csptri.$(SUFFIX) csptrs.$(SUFFIX) csrscl.$(SUFFIX) cstedc.$(SUFFIX) \ | |||
| + cstegr.$(SUFFIX) cstein.$(SUFFIX) csteqr.$(SUFFIX) \ | |||
| + csycon.$(SUFFIX) csymv.$(SUFFIX) \ | |||
| + csyr.$(SUFFIX) csyrfs.$(SUFFIX) csysv.$(SUFFIX) csysvx.$(SUFFIX) csytf2.$(SUFFIX) csytrf.$(SUFFIX) csytri.$(SUFFIX) csytri2.$(SUFFIX) csytri2x.$(SUFFIX) \ | |||
| + csyswapr.$(SUFFIX) csytrs.$(SUFFIX) csytrs2.$(SUFFIX) csyconv.$(SUFFIX) \ | |||
| + ctbcon.$(SUFFIX) ctbrfs.$(SUFFIX) ctbtrs.$(SUFFIX) ctgevc.$(SUFFIX) ctgex2.$(SUFFIX) \ | |||
| + ctgexc.$(SUFFIX) ctgsen.$(SUFFIX) ctgsja.$(SUFFIX) ctgsna.$(SUFFIX) ctgsy2.$(SUFFIX) ctgsyl.$(SUFFIX) ctpcon.$(SUFFIX) \ | |||
| + ctprfs.$(SUFFIX) ctptri.$(SUFFIX) \ | |||
| + ctptrs.$(SUFFIX) ctrcon.$(SUFFIX) ctrevc.$(SUFFIX) ctrexc.$(SUFFIX) ctrrfs.$(SUFFIX) ctrsen.$(SUFFIX) ctrsna.$(SUFFIX) \ | |||
| + ctrsyl.$(SUFFIX) ctrtrs.$(SUFFIX) ctzrqf.$(SUFFIX) ctzrzf.$(SUFFIX) cung2l.$(SUFFIX) cung2r.$(SUFFIX) \ | |||
| + cungbr.$(SUFFIX) cunghr.$(SUFFIX) cungl2.$(SUFFIX) cunglq.$(SUFFIX) cungql.$(SUFFIX) cungqr.$(SUFFIX) cungr2.$(SUFFIX) \ | |||
| + cungrq.$(SUFFIX) cungtr.$(SUFFIX) cunm2l.$(SUFFIX) cunm2r.$(SUFFIX) cunmbr.$(SUFFIX) cunmhr.$(SUFFIX) cunml2.$(SUFFIX) \ | |||
| + cunmlq.$(SUFFIX) cunmql.$(SUFFIX) cunmqr.$(SUFFIX) cunmr2.$(SUFFIX) cunmr3.$(SUFFIX) cunmrq.$(SUFFIX) cunmrz.$(SUFFIX) \ | |||
| + cunmtr.$(SUFFIX) cupgtr.$(SUFFIX) cupmtr.$(SUFFIX) icmax1.$(SUFFIX) scsum1.$(SUFFIX) cstemr.$(SUFFIX) \ | |||
| + chfrk.$(SUFFIX) ctfttp.$(SUFFIX) clanhf.$(SUFFIX) cpftrf.$(SUFFIX) cpftri.$(SUFFIX) cpftrs.$(SUFFIX) ctfsm.$(SUFFIX) ctftri.$(SUFFIX) \ | |||
| + ctfttr.$(SUFFIX) ctpttf.$(SUFFIX) ctpttr.$(SUFFIX) ctrttf.$(SUFFIX) ctrttp.$(SUFFIX) \ | |||
| + cgeequb.$(SUFFIX) cgbequb.$(SUFFIX) csyequb.$(SUFFIX) cpoequb.$(SUFFIX) cheequb.$(SUFFIX) \ | |||
| + cbbcsd.$(SUFFIX) clapmr.$(SUFFIX) cunbdb.$(SUFFIX) cuncsd.$(SUFFIX) \ | |||
| + cgeqrt.$(SUFFIX) cgeqrt2.$(SUFFIX) cgeqrt3.$(SUFFIX) cgemqrt.$(SUFFIX) \ | |||
| + ctpqrt.$(SUFFIX) ctpqrt2.$(SUFFIX) ctpmqrt.$(SUFFIX) ctprfb.$(SUFFIX) | |||
| ifdef USEXBLAS | |||
| -CXLASRC = cgesvxx.o cgerfsx.o cla_gerfsx_extended.o cla_geamv.o \ | |||
| - cla_gercond_c.o cla_gercond_x.o cla_gerpvgrw.o \ | |||
| - csysvxx.o csyrfsx.o cla_syrfsx_extended.o cla_syamv.o \ | |||
| - cla_syrcond_c.o cla_syrcond_x.o cla_syrpvgrw.o \ | |||
| - cposvxx.o cporfsx.o cla_porfsx_extended.o \ | |||
| - cla_porcond_c.o cla_porcond_x.o cla_porpvgrw.o \ | |||
| - cgbsvxx.o cgbrfsx.o cla_gbrfsx_extended.o cla_gbamv.o \ | |||
| - cla_gbrcond_c.o cla_gbrcond_x.o cla_gbrpvgrw.o \ | |||
| - chesvxx.o cherfsx.o cla_herfsx_extended.o cla_heamv.o \ | |||
| - cla_hercond_c.o cla_hercond_x.o cla_herpvgrw.o \ | |||
| - cla_lin_berr.o clarscl2.o clascl2.o cla_wwaddw.o | |||
| +CXLASRC = cgesvxx.$(SUFFIX) cgerfsx.$(SUFFIX) cla_gerfsx_extended.$(SUFFIX) cla_geamv.$(SUFFIX) \ | |||
| + cla_gercond_c.$(SUFFIX) cla_gercond_x.$(SUFFIX) cla_gerpvgrw.$(SUFFIX) \ | |||
| + csysvxx.$(SUFFIX) csyrfsx.$(SUFFIX) cla_syrfsx_extended.$(SUFFIX) cla_syamv.$(SUFFIX) \ | |||
| + cla_syrcond_c.$(SUFFIX) cla_syrcond_x.$(SUFFIX) cla_syrpvgrw.$(SUFFIX) \ | |||
| + cposvxx.$(SUFFIX) cporfsx.$(SUFFIX) cla_porfsx_extended.$(SUFFIX) \ | |||
| + cla_porcond_c.$(SUFFIX) cla_porcond_x.$(SUFFIX) cla_porpvgrw.$(SUFFIX) \ | |||
| + cgbsvxx.$(SUFFIX) cgbrfsx.$(SUFFIX) cla_gbrfsx_extended.$(SUFFIX) cla_gbamv.$(SUFFIX) \ | |||
| + cla_gbrcond_c.$(SUFFIX) cla_gbrcond_x.$(SUFFIX) cla_gbrpvgrw.$(SUFFIX) \ | |||
| + chesvxx.$(SUFFIX) cherfsx.$(SUFFIX) cla_herfsx_extended.$(SUFFIX) cla_heamv.$(SUFFIX) \ | |||
| + cla_hercond_c.$(SUFFIX) cla_hercond_x.$(SUFFIX) cla_herpvgrw.$(SUFFIX) \ | |||
| + cla_lin_berr.$(SUFFIX) clarscl2.$(SUFFIX) clascl2.$(SUFFIX) cla_wwaddw.$(SUFFIX) | |||
| endif | |||
| -ZCLASRC = cpotrs.o cgetrs.o cpotrf.o cgetrf.o | |||
| +ZCLASRC = cpotrs.$(SUFFIX) | |||
| DLASRC = \ | |||
| - dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \ | |||
| - dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o \ | |||
| - dgebrd.o dgecon.o dgeequ.o dgees.o dgeesx.o dgeev.o dgeevx.o \ | |||
| - dgegs.o dgegv.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o \ | |||
| - dgels.o dgelsd.o dgelss.o dgelsx.o dgelsy.o dgeql2.o dgeqlf.o \ | |||
| - dgeqp3.o dgeqpf.o dgeqr2.o dgeqr2p.o dgeqrf.o dgeqrfp.o dgerfs.o \ | |||
| - dgerq2.o dgerqf.o dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvx.o \ | |||
| - dgetc2.o dgetf2.o dgetrf.o dgetri.o \ | |||
| - dgetrs.o dggbak.o dggbal.o dgges.o dggesx.o dggev.o dggevx.o \ | |||
| - dggglm.o dgghrd.o dgglse.o dggqrf.o \ | |||
| - dggrqf.o dggsvd.o dggsvp.o dgtcon.o dgtrfs.o dgtsv.o \ | |||
| - dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o \ | |||
| - dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o \ | |||
| - dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o \ | |||
| - dlahrd.o dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o \ | |||
| - dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o \ | |||
| - dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o \ | |||
| - dlapll.o dlapmt.o \ | |||
| - dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqsb.o dlaqsp.o dlaqsy.o \ | |||
| - dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \ | |||
| - dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o \ | |||
| - dlarf.o dlarfb.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o \ | |||
| - dlargv.o dlarrv.o dlartv.o \ | |||
| - dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o dlasyf.o \ | |||
| - dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlatzm.o dlauu2.o \ | |||
| - dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \ | |||
| - dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \ | |||
| - dorgrq.o dorgtr.o dorm2l.o dorm2r.o \ | |||
| - dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \ | |||
| - dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \ | |||
| - dpbstf.o dpbsv.o dpbsvx.o \ | |||
| - dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o \ | |||
| - dposvx.o dpotf2.o dpotrf.o dpotri.o dpotrs.o dpstrf.o dpstf2.o \ | |||
| - dppcon.o dppequ.o \ | |||
| - dpprfs.o dppsv.o dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o \ | |||
| - dpteqr.o dptrfs.o dptsv.o dptsvx.o dpttrs.o dptts2.o drscl.o \ | |||
| - dsbev.o dsbevd.o dsbevx.o dsbgst.o dsbgv.o dsbgvd.o dsbgvx.o \ | |||
| - dsbtrd.o dspcon.o dspev.o dspevd.o dspevx.o dspgst.o \ | |||
| - dspgv.o dspgvd.o dspgvx.o dsprfs.o dspsv.o dspsvx.o dsptrd.o \ | |||
| - dsptrf.o dsptri.o dsptrs.o dstegr.o dstein.o dstev.o dstevd.o dstevr.o \ | |||
| - dstevx.o \ | |||
| - dsycon.o dsyev.o dsyevd.o dsyevr.o \ | |||
| - dsyevx.o dsygs2.o dsygst.o dsygv.o dsygvd.o dsygvx.o dsyrfs.o \ | |||
| - dsysv.o dsysvx.o \ | |||
| - dsytd2.o dsytf2.o dsytrd.o dsytrf.o dsytri.o dsytri2.o dsytri2x.o \ | |||
| - dsyswapr.o dsytrs.o dsytrs2.o dsyconv.o \ | |||
| - dtbcon.o dtbrfs.o dtbtrs.o dtgevc.o dtgex2.o dtgexc.o dtgsen.o \ | |||
| - dtgsja.o dtgsna.o dtgsy2.o dtgsyl.o dtpcon.o dtprfs.o dtptri.o \ | |||
| - dtptrs.o \ | |||
| - dtrcon.o dtrevc.o dtrexc.o dtrrfs.o dtrsen.o dtrsna.o dtrsyl.o \ | |||
| - dtrti2.o dtrtri.o dtrtrs.o dtzrqf.o dtzrzf.o dstemr.o \ | |||
| - dsgesv.o dsposv.o dlag2s.o slag2d.o dlat2s.o \ | |||
| - dlansf.o dpftrf.o dpftri.o dpftrs.o dsfrk.o dtfsm.o dtftri.o dtfttp.o \ | |||
| - dtfttr.o dtpttf.o dtpttr.o dtrttf.o dtrttp.o \ | |||
| - dgejsv.o dgesvj.o dgsvj0.o dgsvj1.o \ | |||
| - dgeequb.o dsyequb.o dpoequb.o dgbequb.o \ | |||
| - dbbcsd.o dlapmr.o dorbdb.o dorcsd.o \ | |||
| - dgeqrt.o dgeqrt2.o dgeqrt3.o dgemqrt.o \ | |||
| - dtpqrt.o dtpqrt2.o dtpmqrt.o dtprfb.o | |||
| + dgbbrd.$(SUFFIX) dgbcon.$(SUFFIX) dgbequ.$(SUFFIX) dgbrfs.$(SUFFIX) dgbsv.$(SUFFIX) \ | |||
| + dgbsvx.$(SUFFIX) dgbtf2.$(SUFFIX) dgbtrf.$(SUFFIX) dgbtrs.$(SUFFIX) dgebak.$(SUFFIX) dgebal.$(SUFFIX) dgebd2.$(SUFFIX) \ | |||
| + dgebrd.$(SUFFIX) dgecon.$(SUFFIX) dgeequ.$(SUFFIX) dgees.$(SUFFIX) dgeesx.$(SUFFIX) dgeev.$(SUFFIX) dgeevx.$(SUFFIX) \ | |||
| + dgegs.$(SUFFIX) dgegv.$(SUFFIX) dgehd2.$(SUFFIX) dgehrd.$(SUFFIX) dgelq2.$(SUFFIX) dgelqf.$(SUFFIX) \ | |||
| + dgels.$(SUFFIX) dgelsd.$(SUFFIX) dgelss.$(SUFFIX) dgelsx.$(SUFFIX) dgelsy.$(SUFFIX) dgeql2.$(SUFFIX) dgeqlf.$(SUFFIX) \ | |||
| + dgeqp3.$(SUFFIX) dgeqpf.$(SUFFIX) dgeqr2.$(SUFFIX) dgeqr2p.$(SUFFIX) dgeqrf.$(SUFFIX) dgeqrfp.$(SUFFIX) dgerfs.$(SUFFIX) \ | |||
| + dgerq2.$(SUFFIX) dgerqf.$(SUFFIX) dgesc2.$(SUFFIX) dgesdd.$(SUFFIX) dgesv.$(SUFFIX) dgesvd.$(SUFFIX) dgesvx.$(SUFFIX) \ | |||
| + dgetc2.$(SUFFIX) dgetri.$(SUFFIX) \ | |||
| + dggbak.$(SUFFIX) dggbal.$(SUFFIX) dgges.$(SUFFIX) dggesx.$(SUFFIX) dggev.$(SUFFIX) dggevx.$(SUFFIX) \ | |||
| + dggglm.$(SUFFIX) dgghrd.$(SUFFIX) dgglse.$(SUFFIX) dggqrf.$(SUFFIX) \ | |||
| + dggrqf.$(SUFFIX) dggsvd.$(SUFFIX) dggsvp.$(SUFFIX) dgtcon.$(SUFFIX) dgtrfs.$(SUFFIX) dgtsv.$(SUFFIX) \ | |||
| + dgtsvx.$(SUFFIX) dgttrf.$(SUFFIX) dgttrs.$(SUFFIX) dgtts2.$(SUFFIX) dhgeqz.$(SUFFIX) \ | |||
| + dhsein.$(SUFFIX) dhseqr.$(SUFFIX) dlabrd.$(SUFFIX) dlacon.$(SUFFIX) dlacn2.$(SUFFIX) \ | |||
| + dlaein.$(SUFFIX) dlaexc.$(SUFFIX) dlag2.$(SUFFIX) dlags2.$(SUFFIX) dlagtm.$(SUFFIX) dlagv2.$(SUFFIX) dlahqr.$(SUFFIX) \ | |||
| + dlahrd.$(SUFFIX) dlahr2.$(SUFFIX) dlaic1.$(SUFFIX) dlaln2.$(SUFFIX) dlals0.$(SUFFIX) dlalsa.$(SUFFIX) dlalsd.$(SUFFIX) \ | |||
| + dlangb.$(SUFFIX) dlange.$(SUFFIX) dlangt.$(SUFFIX) dlanhs.$(SUFFIX) dlansb.$(SUFFIX) dlansp.$(SUFFIX) \ | |||
| + dlansy.$(SUFFIX) dlantb.$(SUFFIX) dlantp.$(SUFFIX) dlantr.$(SUFFIX) dlanv2.$(SUFFIX) \ | |||
| + dlapll.$(SUFFIX) dlapmt.$(SUFFIX) \ | |||
| + dlaqgb.$(SUFFIX) dlaqge.$(SUFFIX) dlaqp2.$(SUFFIX) dlaqps.$(SUFFIX) dlaqsb.$(SUFFIX) dlaqsp.$(SUFFIX) dlaqsy.$(SUFFIX) \ | |||
| + dlaqr0.$(SUFFIX) dlaqr1.$(SUFFIX) dlaqr2.$(SUFFIX) dlaqr3.$(SUFFIX) dlaqr4.$(SUFFIX) dlaqr5.$(SUFFIX) \ | |||
| + dlaqtr.$(SUFFIX) dlar1v.$(SUFFIX) dlar2v.$(SUFFIX) iladlr.$(SUFFIX) iladlc.$(SUFFIX) \ | |||
| + dlarf.$(SUFFIX) dlarfb.$(SUFFIX) dlarfg.$(SUFFIX) dlarfgp.$(SUFFIX) dlarft.$(SUFFIX) dlarfx.$(SUFFIX) \ | |||
| + dlargv.$(SUFFIX) dlarrv.$(SUFFIX) dlartv.$(SUFFIX) \ | |||
| + dlarz.$(SUFFIX) dlarzb.$(SUFFIX) dlarzt.$(SUFFIX) dlasy2.$(SUFFIX) dlasyf.$(SUFFIX) \ | |||
| + dlatbs.$(SUFFIX) dlatdf.$(SUFFIX) dlatps.$(SUFFIX) dlatrd.$(SUFFIX) dlatrs.$(SUFFIX) dlatrz.$(SUFFIX) dlatzm.$(SUFFIX) \ | |||
| + dopgtr.$(SUFFIX) dopmtr.$(SUFFIX) dorg2l.$(SUFFIX) dorg2r.$(SUFFIX) \ | |||
| + dorgbr.$(SUFFIX) dorghr.$(SUFFIX) dorgl2.$(SUFFIX) dorglq.$(SUFFIX) dorgql.$(SUFFIX) dorgqr.$(SUFFIX) dorgr2.$(SUFFIX) \ | |||
| + dorgrq.$(SUFFIX) dorgtr.$(SUFFIX) dorm2l.$(SUFFIX) dorm2r.$(SUFFIX) \ | |||
| + dormbr.$(SUFFIX) dormhr.$(SUFFIX) dorml2.$(SUFFIX) dormlq.$(SUFFIX) dormql.$(SUFFIX) dormqr.$(SUFFIX) dormr2.$(SUFFIX) \ | |||
| + dormr3.$(SUFFIX) dormrq.$(SUFFIX) dormrz.$(SUFFIX) dormtr.$(SUFFIX) dpbcon.$(SUFFIX) dpbequ.$(SUFFIX) dpbrfs.$(SUFFIX) \ | |||
| + dpbstf.$(SUFFIX) dpbsv.$(SUFFIX) dpbsvx.$(SUFFIX) \ | |||
| + dpbtf2.$(SUFFIX) dpbtrf.$(SUFFIX) dpbtrs.$(SUFFIX) dpocon.$(SUFFIX) dpoequ.$(SUFFIX) dporfs.$(SUFFIX) dposv.$(SUFFIX) \ | |||
| + dposvx.$(SUFFIX) dpotri.$(SUFFIX) dpotrs.$(SUFFIX) dpstrf.$(SUFFIX) dpstf2.$(SUFFIX) \ | |||
| + dppcon.$(SUFFIX) dppequ.$(SUFFIX) \ | |||
| + dpprfs.$(SUFFIX) dppsv.$(SUFFIX) dppsvx.$(SUFFIX) dpptrf.$(SUFFIX) dpptri.$(SUFFIX) dpptrs.$(SUFFIX) dptcon.$(SUFFIX) \ | |||
| + dpteqr.$(SUFFIX) dptrfs.$(SUFFIX) dptsv.$(SUFFIX) dptsvx.$(SUFFIX) dpttrs.$(SUFFIX) dptts2.$(SUFFIX) drscl.$(SUFFIX) \ | |||
| + dsbev.$(SUFFIX) dsbevd.$(SUFFIX) dsbevx.$(SUFFIX) dsbgst.$(SUFFIX) dsbgv.$(SUFFIX) dsbgvd.$(SUFFIX) dsbgvx.$(SUFFIX) \ | |||
| + dsbtrd.$(SUFFIX) dspcon.$(SUFFIX) dspev.$(SUFFIX) dspevd.$(SUFFIX) dspevx.$(SUFFIX) dspgst.$(SUFFIX) \ | |||
| + dspgv.$(SUFFIX) dspgvd.$(SUFFIX) dspgvx.$(SUFFIX) dsprfs.$(SUFFIX) dspsv.$(SUFFIX) dspsvx.$(SUFFIX) dsptrd.$(SUFFIX) \ | |||
| + dsptrf.$(SUFFIX) dsptri.$(SUFFIX) dsptrs.$(SUFFIX) dstegr.$(SUFFIX) dstein.$(SUFFIX) dstev.$(SUFFIX) dstevd.$(SUFFIX) dstevr.$(SUFFIX) \ | |||
| + dstevx.$(SUFFIX) \ | |||
| + dsycon.$(SUFFIX) dsyev.$(SUFFIX) dsyevd.$(SUFFIX) dsyevr.$(SUFFIX) \ | |||
| + dsyevx.$(SUFFIX) dsygs2.$(SUFFIX) dsygst.$(SUFFIX) dsygv.$(SUFFIX) dsygvd.$(SUFFIX) dsygvx.$(SUFFIX) dsyrfs.$(SUFFIX) \ | |||
| + dsysv.$(SUFFIX) dsysvx.$(SUFFIX) \ | |||
| + dsytd2.$(SUFFIX) dsytf2.$(SUFFIX) dsytrd.$(SUFFIX) dsytrf.$(SUFFIX) dsytri.$(SUFFIX) dsytri2.$(SUFFIX) dsytri2x.$(SUFFIX) \ | |||
| + dsyswapr.$(SUFFIX) dsytrs.$(SUFFIX) dsytrs2.$(SUFFIX) dsyconv.$(SUFFIX) \ | |||
| + dtbcon.$(SUFFIX) dtbrfs.$(SUFFIX) dtbtrs.$(SUFFIX) dtgevc.$(SUFFIX) dtgex2.$(SUFFIX) dtgexc.$(SUFFIX) dtgsen.$(SUFFIX) \ | |||
| + dtgsja.$(SUFFIX) dtgsna.$(SUFFIX) dtgsy2.$(SUFFIX) dtgsyl.$(SUFFIX) dtpcon.$(SUFFIX) dtprfs.$(SUFFIX) dtptri.$(SUFFIX) \ | |||
| + dtptrs.$(SUFFIX) \ | |||
| + dtrcon.$(SUFFIX) dtrevc.$(SUFFIX) dtrexc.$(SUFFIX) dtrrfs.$(SUFFIX) dtrsen.$(SUFFIX) dtrsna.$(SUFFIX) dtrsyl.$(SUFFIX) \ | |||
| + dtrtrs.$(SUFFIX) dtzrqf.$(SUFFIX) dtzrzf.$(SUFFIX) dstemr.$(SUFFIX) \ | |||
| + dsgesv.$(SUFFIX) dsposv.$(SUFFIX) dlag2s.$(SUFFIX) slag2d.$(SUFFIX) dlat2s.$(SUFFIX) \ | |||
| + dlansf.$(SUFFIX) dpftrf.$(SUFFIX) dpftri.$(SUFFIX) dpftrs.$(SUFFIX) dsfrk.$(SUFFIX) dtfsm.$(SUFFIX) dtftri.$(SUFFIX) dtfttp.$(SUFFIX) \ | |||
| + dtfttr.$(SUFFIX) dtpttf.$(SUFFIX) dtpttr.$(SUFFIX) dtrttf.$(SUFFIX) dtrttp.$(SUFFIX) \ | |||
| + dgejsv.$(SUFFIX) dgesvj.$(SUFFIX) dgsvj0.$(SUFFIX) dgsvj1.$(SUFFIX) \ | |||
| + dgeequb.$(SUFFIX) dsyequb.$(SUFFIX) dpoequb.$(SUFFIX) dgbequb.$(SUFFIX) \ | |||
| + dbbcsd.$(SUFFIX) dlapmr.$(SUFFIX) dorbdb.$(SUFFIX) dorcsd.$(SUFFIX) \ | |||
| + dgeqrt.$(SUFFIX) dgeqrt2.$(SUFFIX) dgeqrt3.$(SUFFIX) dgemqrt.$(SUFFIX) \ | |||
| + dtpqrt.$(SUFFIX) dtpqrt2.$(SUFFIX) dtpmqrt.$(SUFFIX) dtprfb.$(SUFFIX) | |||
| ifdef USEXBLAS | |||
| -DXLASRC = dgesvxx.o dgerfsx.o dla_gerfsx_extended.o dla_geamv.o \ | |||
| - dla_gercond.o dla_gerpvgrw.o dsysvxx.o dsyrfsx.o \ | |||
| - dla_syrfsx_extended.o dla_syamv.o dla_syrcond.o dla_syrpvgrw.o \ | |||
| - dposvxx.o dporfsx.o dla_porfsx_extended.o dla_porcond.o \ | |||
| - dla_porpvgrw.o dgbsvxx.o dgbrfsx.o dla_gbrfsx_extended.o \ | |||
| - dla_gbamv.o dla_gbrcond.o dla_gbrpvgrw.o dla_lin_berr.o dlarscl2.o \ | |||
| - dlascl2.o dla_wwaddw.o | |||
| +DXLASRC = dgesvxx.$(SUFFIX) dgerfsx.$(SUFFIX) dla_gerfsx_extended.$(SUFFIX) dla_geamv.$(SUFFIX) \ | |||
| + dla_gercond.$(SUFFIX) dla_gerpvgrw.$(SUFFIX) dsysvxx.$(SUFFIX) dsyrfsx.$(SUFFIX) \ | |||
| + dla_syrfsx_extended.$(SUFFIX) dla_syamv.$(SUFFIX) dla_syrcond.$(SUFFIX) dla_syrpvgrw.$(SUFFIX) \ | |||
| + dposvxx.$(SUFFIX) dporfsx.$(SUFFIX) dla_porfsx_extended.$(SUFFIX) dla_porcond.$(SUFFIX) \ | |||
| + dla_porpvgrw.$(SUFFIX) dgbsvxx.$(SUFFIX) dgbrfsx.$(SUFFIX) dla_gbrfsx_extended.$(SUFFIX) \ | |||
| + dla_gbamv.$(SUFFIX) dla_gbrcond.$(SUFFIX) dla_gbrpvgrw.$(SUFFIX) dla_lin_berr.$(SUFFIX) dlarscl2.$(SUFFIX) \ | |||
| + dlascl2.$(SUFFIX) dla_wwaddw.$(SUFFIX) | |||
| endif | |||
| ZLASRC = \ | |||
| - zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \ | |||
| - zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o \ | |||
| - zgecon.o zgeequ.o zgees.o zgeesx.o zgeev.o zgeevx.o \ | |||
| - zgegs.o zgegv.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o \ | |||
| - zgels.o zgelsd.o zgelss.o zgelsx.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o \ | |||
| - zgeqpf.o zgeqr2.o zgeqr2p.o zgeqrf.o zgeqrfp.o zgerfs.o zgerq2.o zgerqf.o \ | |||
| - zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvx.o zgetc2.o zgetf2.o zgetrf.o \ | |||
| - zgetri.o zgetrs.o \ | |||
| - zggbak.o zggbal.o zgges.o zggesx.o zggev.o zggevx.o zggglm.o \ | |||
| - zgghrd.o zgglse.o zggqrf.o zggrqf.o \ | |||
| - zggsvd.o zggsvp.o \ | |||
| - zgtcon.o zgtrfs.o zgtsv.o zgtsvx.o zgttrf.o zgttrs.o zgtts2.o zhbev.o \ | |||
| - zhbevd.o zhbevx.o zhbgst.o zhbgv.o zhbgvd.o zhbgvx.o zhbtrd.o \ | |||
| - zhecon.o zheev.o zheevd.o zheevr.o zheevx.o zhegs2.o zhegst.o \ | |||
| - zhegv.o zhegvd.o zhegvx.o zherfs.o zhesv.o zhesvx.o zhetd2.o \ | |||
| - zhetf2.o zhetrd.o \ | |||
| - zhetrf.o zhetri.o zhetri2.o zhetri2x.o zheswapr.o \ | |||
| - zhetrs.o zhetrs2.o zhgeqz.o zhpcon.o zhpev.o zhpevd.o \ | |||
| - zhpevx.o zhpgst.o zhpgv.o zhpgvd.o zhpgvx.o zhprfs.o zhpsv.o \ | |||
| - zhpsvx.o \ | |||
| - zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o \ | |||
| - zlacgv.o zlacon.o zlacn2.o zlacp2.o zlacpy.o zlacrm.o zlacrt.o zladiv.o \ | |||
| - zlaed0.o zlaed7.o zlaed8.o \ | |||
| - zlaein.o zlaesy.o zlaev2.o zlags2.o zlagtm.o \ | |||
| - zlahef.o zlahqr.o \ | |||
| - zlahrd.o zlahr2.o zlaic1.o zlals0.o zlalsa.o zlalsd.o zlangb.o zlange.o \ | |||
| - zlangt.o zlanhb.o \ | |||
| - zlanhe.o \ | |||
| - zlanhp.o zlanhs.o zlanht.o zlansb.o zlansp.o zlansy.o zlantb.o \ | |||
| - zlantp.o zlantr.o zlapll.o zlapmt.o zlaqgb.o zlaqge.o \ | |||
| - zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqsb.o \ | |||
| - zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o \ | |||
| - zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o ilazlr.o ilazlc.o \ | |||
| - zlarcm.o zlarf.o zlarfb.o \ | |||
| - zlarfg.o zlarft.o zlarfgp.o \ | |||
| - zlarfx.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o \ | |||
| - zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o \ | |||
| - zlassq.o zlaswp.o zlasyf.o \ | |||
| - zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrz.o zlatzm.o zlauu2.o \ | |||
| - zlauum.o zpbcon.o zpbequ.o zpbrfs.o zpbstf.o zpbsv.o \ | |||
| - zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o \ | |||
| - zposv.o zposvx.o zpotf2.o zpotrf.o zpotri.o zpotrs.o zpstrf.o zpstf2.o \ | |||
| - zppcon.o zppequ.o zpprfs.o zppsv.o zppsvx.o zpptrf.o zpptri.o zpptrs.o \ | |||
| - zptcon.o zpteqr.o zptrfs.o zptsv.o zptsvx.o zpttrf.o zpttrs.o zptts2.o \ | |||
| - zrot.o zspcon.o zspmv.o zspr.o zsprfs.o zspsv.o \ | |||
| - zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrscl.o zstedc.o \ | |||
| - zstegr.o zstein.o zsteqr.o \ | |||
| - zsycon.o zsymv.o \ | |||
| - zsyr.o zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o zsytri2.o zsytri2x.o \ | |||
| - zsyswapr.o zsytrs.o zsytrs2.o zsyconv.o \ | |||
| - ztbcon.o ztbrfs.o ztbtrs.o ztgevc.o ztgex2.o \ | |||
| - ztgexc.o ztgsen.o ztgsja.o ztgsna.o ztgsy2.o ztgsyl.o ztpcon.o \ | |||
| - ztprfs.o ztptri.o \ | |||
| - ztptrs.o ztrcon.o ztrevc.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \ | |||
| - ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrqf.o ztzrzf.o zung2l.o \ | |||
| - zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \ | |||
| - zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o \ | |||
| - zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \ | |||
| - zunmtr.o zupgtr.o \ | |||
| - zupmtr.o izmax1.o dzsum1.o zstemr.o \ | |||
| - zcgesv.o zcposv.o zlag2c.o clag2z.o zlat2c.o \ | |||
| - zhfrk.o ztfttp.o zlanhf.o zpftrf.o zpftri.o zpftrs.o ztfsm.o ztftri.o \ | |||
| - ztfttr.o ztpttf.o ztpttr.o ztrttf.o ztrttp.o \ | |||
| - zgeequb.o zgbequb.o zsyequb.o zpoequb.o zheequb.o \ | |||
| - zbbcsd.o zlapmr.o zunbdb.o zuncsd.o \ | |||
| - zgeqrt.o zgeqrt2.o zgeqrt3.o zgemqrt.o \ | |||
| - ztpqrt.o ztpqrt2.o ztpmqrt.o ztprfb.o | |||
| + zbdsqr.$(SUFFIX) zgbbrd.$(SUFFIX) zgbcon.$(SUFFIX) zgbequ.$(SUFFIX) zgbrfs.$(SUFFIX) zgbsv.$(SUFFIX) zgbsvx.$(SUFFIX) \ | |||
| + zgbtf2.$(SUFFIX) zgbtrf.$(SUFFIX) zgbtrs.$(SUFFIX) zgebak.$(SUFFIX) zgebal.$(SUFFIX) zgebd2.$(SUFFIX) zgebrd.$(SUFFIX) \ | |||
| + zgecon.$(SUFFIX) zgeequ.$(SUFFIX) zgees.$(SUFFIX) zgeesx.$(SUFFIX) zgeev.$(SUFFIX) zgeevx.$(SUFFIX) \ | |||
| + zgegs.$(SUFFIX) zgegv.$(SUFFIX) zgehd2.$(SUFFIX) zgehrd.$(SUFFIX) zgelq2.$(SUFFIX) zgelqf.$(SUFFIX) \ | |||
| + zgels.$(SUFFIX) zgelsd.$(SUFFIX) zgelss.$(SUFFIX) zgelsx.$(SUFFIX) zgelsy.$(SUFFIX) zgeql2.$(SUFFIX) zgeqlf.$(SUFFIX) zgeqp3.$(SUFFIX) \ | |||
| + zgeqpf.$(SUFFIX) zgeqr2.$(SUFFIX) zgeqr2p.$(SUFFIX) zgeqrf.$(SUFFIX) zgeqrfp.$(SUFFIX) zgerfs.$(SUFFIX) zgerq2.$(SUFFIX) zgerqf.$(SUFFIX) \ | |||
| + zgesc2.$(SUFFIX) zgesdd.$(SUFFIX) zgesv.$(SUFFIX) zgesvd.$(SUFFIX) zgesvx.$(SUFFIX) zgetc2.$(SUFFIX) \ | |||
| + zgetri.$(SUFFIX) \ | |||
| + zggbak.$(SUFFIX) zggbal.$(SUFFIX) zgges.$(SUFFIX) zggesx.$(SUFFIX) zggev.$(SUFFIX) zggevx.$(SUFFIX) zggglm.$(SUFFIX) \ | |||
| + zgghrd.$(SUFFIX) zgglse.$(SUFFIX) zggqrf.$(SUFFIX) zggrqf.$(SUFFIX) \ | |||
| + zggsvd.$(SUFFIX) zggsvp.$(SUFFIX) \ | |||
| + zgtcon.$(SUFFIX) zgtrfs.$(SUFFIX) zgtsv.$(SUFFIX) zgtsvx.$(SUFFIX) zgttrf.$(SUFFIX) zgttrs.$(SUFFIX) zgtts2.$(SUFFIX) zhbev.$(SUFFIX) \ | |||
| + zhbevd.$(SUFFIX) zhbevx.$(SUFFIX) zhbgst.$(SUFFIX) zhbgv.$(SUFFIX) zhbgvd.$(SUFFIX) zhbgvx.$(SUFFIX) zhbtrd.$(SUFFIX) \ | |||
| + zhecon.$(SUFFIX) zheev.$(SUFFIX) zheevd.$(SUFFIX) zheevr.$(SUFFIX) zheevx.$(SUFFIX) zhegs2.$(SUFFIX) zhegst.$(SUFFIX) \ | |||
| + zhegv.$(SUFFIX) zhegvd.$(SUFFIX) zhegvx.$(SUFFIX) zherfs.$(SUFFIX) zhesv.$(SUFFIX) zhesvx.$(SUFFIX) zhetd2.$(SUFFIX) \ | |||
| + zhetf2.$(SUFFIX) zhetrd.$(SUFFIX) \ | |||
| + zhetrf.$(SUFFIX) zhetri.$(SUFFIX) zhetri2.$(SUFFIX) zhetri2x.$(SUFFIX) zheswapr.$(SUFFIX) \ | |||
| + zhetrs.$(SUFFIX) zhetrs2.$(SUFFIX) zhgeqz.$(SUFFIX) zhpcon.$(SUFFIX) zhpev.$(SUFFIX) zhpevd.$(SUFFIX) \ | |||
| + zhpevx.$(SUFFIX) zhpgst.$(SUFFIX) zhpgv.$(SUFFIX) zhpgvd.$(SUFFIX) zhpgvx.$(SUFFIX) zhprfs.$(SUFFIX) zhpsv.$(SUFFIX) \ | |||
| + zhpsvx.$(SUFFIX) \ | |||
| + zhptrd.$(SUFFIX) zhptrf.$(SUFFIX) zhptri.$(SUFFIX) zhptrs.$(SUFFIX) zhsein.$(SUFFIX) zhseqr.$(SUFFIX) zlabrd.$(SUFFIX) \ | |||
| + zlacgv.$(SUFFIX) zlacon.$(SUFFIX) zlacn2.$(SUFFIX) zlacp2.$(SUFFIX) zlacpy.$(SUFFIX) zlacrm.$(SUFFIX) zlacrt.$(SUFFIX) zladiv.$(SUFFIX) \ | |||
| + zlaed0.$(SUFFIX) zlaed7.$(SUFFIX) zlaed8.$(SUFFIX) \ | |||
| + zlaein.$(SUFFIX) zlaesy.$(SUFFIX) zlaev2.$(SUFFIX) zlags2.$(SUFFIX) zlagtm.$(SUFFIX) \ | |||
| + zlahef.$(SUFFIX) zlahqr.$(SUFFIX) \ | |||
| + zlahrd.$(SUFFIX) zlahr2.$(SUFFIX) zlaic1.$(SUFFIX) zlals0.$(SUFFIX) zlalsa.$(SUFFIX) zlalsd.$(SUFFIX) zlangb.$(SUFFIX) zlange.$(SUFFIX) \ | |||
| + zlangt.$(SUFFIX) zlanhb.$(SUFFIX) \ | |||
| + zlanhe.$(SUFFIX) \ | |||
| + zlanhp.$(SUFFIX) zlanhs.$(SUFFIX) zlanht.$(SUFFIX) zlansb.$(SUFFIX) zlansp.$(SUFFIX) zlansy.$(SUFFIX) zlantb.$(SUFFIX) \ | |||
| + zlantp.$(SUFFIX) zlantr.$(SUFFIX) zlapll.$(SUFFIX) zlapmt.$(SUFFIX) zlaqgb.$(SUFFIX) zlaqge.$(SUFFIX) \ | |||
| + zlaqhb.$(SUFFIX) zlaqhe.$(SUFFIX) zlaqhp.$(SUFFIX) zlaqp2.$(SUFFIX) zlaqps.$(SUFFIX) zlaqsb.$(SUFFIX) \ | |||
| + zlaqr0.$(SUFFIX) zlaqr1.$(SUFFIX) zlaqr2.$(SUFFIX) zlaqr3.$(SUFFIX) zlaqr4.$(SUFFIX) zlaqr5.$(SUFFIX) \ | |||
| + zlaqsp.$(SUFFIX) zlaqsy.$(SUFFIX) zlar1v.$(SUFFIX) zlar2v.$(SUFFIX) ilazlr.$(SUFFIX) ilazlc.$(SUFFIX) \ | |||
| + zlarcm.$(SUFFIX) zlarf.$(SUFFIX) zlarfb.$(SUFFIX) \ | |||
| + zlarfg.$(SUFFIX) zlarft.$(SUFFIX) zlarfgp.$(SUFFIX) \ | |||
| + zlarfx.$(SUFFIX) zlargv.$(SUFFIX) zlarnv.$(SUFFIX) zlarrv.$(SUFFIX) zlartg.$(SUFFIX) zlartv.$(SUFFIX) \ | |||
| + zlarz.$(SUFFIX) zlarzb.$(SUFFIX) zlarzt.$(SUFFIX) zlascl.$(SUFFIX) zlaset.$(SUFFIX) zlasr.$(SUFFIX) \ | |||
| + zlassq.$(SUFFIX) zlasyf.$(SUFFIX) \ | |||
| + zlatbs.$(SUFFIX) zlatdf.$(SUFFIX) zlatps.$(SUFFIX) zlatrd.$(SUFFIX) zlatrs.$(SUFFIX) zlatrz.$(SUFFIX) zlatzm.$(SUFFIX) zlauu2.$(SUFFIX) \ | |||
| + zpbcon.$(SUFFIX) zpbequ.$(SUFFIX) zpbrfs.$(SUFFIX) zpbstf.$(SUFFIX) zpbsv.$(SUFFIX) \ | |||
| + zpbsvx.$(SUFFIX) zpbtf2.$(SUFFIX) zpbtrf.$(SUFFIX) zpbtrs.$(SUFFIX) zpocon.$(SUFFIX) zpoequ.$(SUFFIX) zporfs.$(SUFFIX) \ | |||
| + zposv.$(SUFFIX) zposvx.$(SUFFIX) zpotri.$(SUFFIX) zpotrs.$(SUFFIX) zpstrf.$(SUFFIX) zpstf2.$(SUFFIX) \ | |||
| + zppcon.$(SUFFIX) zppequ.$(SUFFIX) zpprfs.$(SUFFIX) zppsv.$(SUFFIX) zppsvx.$(SUFFIX) zpptrf.$(SUFFIX) zpptri.$(SUFFIX) zpptrs.$(SUFFIX) \ | |||
| + zptcon.$(SUFFIX) zpteqr.$(SUFFIX) zptrfs.$(SUFFIX) zptsv.$(SUFFIX) zptsvx.$(SUFFIX) zpttrf.$(SUFFIX) zpttrs.$(SUFFIX) zptts2.$(SUFFIX) \ | |||
| + zrot.$(SUFFIX) zspcon.$(SUFFIX) zspmv.$(SUFFIX) zspr.$(SUFFIX) zsprfs.$(SUFFIX) zspsv.$(SUFFIX) \ | |||
| + zspsvx.$(SUFFIX) zsptrf.$(SUFFIX) zsptri.$(SUFFIX) zsptrs.$(SUFFIX) zdrscl.$(SUFFIX) zstedc.$(SUFFIX) \ | |||
| + zstegr.$(SUFFIX) zstein.$(SUFFIX) zsteqr.$(SUFFIX) \ | |||
| + zsycon.$(SUFFIX) zsymv.$(SUFFIX) \ | |||
| + zsyr.$(SUFFIX) zsyrfs.$(SUFFIX) zsysv.$(SUFFIX) zsysvx.$(SUFFIX) zsytf2.$(SUFFIX) zsytrf.$(SUFFIX) zsytri.$(SUFFIX) zsytri2.$(SUFFIX) zsytri2x.$(SUFFIX) \ | |||
| + zsyswapr.$(SUFFIX) zsytrs.$(SUFFIX) zsytrs2.$(SUFFIX) zsyconv.$(SUFFIX) \ | |||
| + ztbcon.$(SUFFIX) ztbrfs.$(SUFFIX) ztbtrs.$(SUFFIX) ztgevc.$(SUFFIX) ztgex2.$(SUFFIX) \ | |||
| + ztgexc.$(SUFFIX) ztgsen.$(SUFFIX) ztgsja.$(SUFFIX) ztgsna.$(SUFFIX) ztgsy2.$(SUFFIX) ztgsyl.$(SUFFIX) ztpcon.$(SUFFIX) \ | |||
| + ztprfs.$(SUFFIX) ztptri.$(SUFFIX) \ | |||
| + ztptrs.$(SUFFIX) ztrcon.$(SUFFIX) ztrevc.$(SUFFIX) ztrexc.$(SUFFIX) ztrrfs.$(SUFFIX) ztrsen.$(SUFFIX) ztrsna.$(SUFFIX) \ | |||
| + ztrsyl.$(SUFFIX) ztrtrs.$(SUFFIX) ztzrqf.$(SUFFIX) ztzrzf.$(SUFFIX) zung2l.$(SUFFIX) \ | |||
| + zung2r.$(SUFFIX) zungbr.$(SUFFIX) zunghr.$(SUFFIX) zungl2.$(SUFFIX) zunglq.$(SUFFIX) zungql.$(SUFFIX) zungqr.$(SUFFIX) zungr2.$(SUFFIX) \ | |||
| + zungrq.$(SUFFIX) zungtr.$(SUFFIX) zunm2l.$(SUFFIX) zunm2r.$(SUFFIX) zunmbr.$(SUFFIX) zunmhr.$(SUFFIX) zunml2.$(SUFFIX) \ | |||
| + zunmlq.$(SUFFIX) zunmql.$(SUFFIX) zunmqr.$(SUFFIX) zunmr2.$(SUFFIX) zunmr3.$(SUFFIX) zunmrq.$(SUFFIX) zunmrz.$(SUFFIX) \ | |||
| + zunmtr.$(SUFFIX) zupgtr.$(SUFFIX) \ | |||
| + zupmtr.$(SUFFIX) izmax1.$(SUFFIX) dzsum1.$(SUFFIX) zstemr.$(SUFFIX) \ | |||
| + zcgesv.$(SUFFIX) zcposv.$(SUFFIX) zlag2c.$(SUFFIX) clag2z.$(SUFFIX) zlat2c.$(SUFFIX) \ | |||
| + zhfrk.$(SUFFIX) ztfttp.$(SUFFIX) zlanhf.$(SUFFIX) zpftrf.$(SUFFIX) zpftri.$(SUFFIX) zpftrs.$(SUFFIX) ztfsm.$(SUFFIX) ztftri.$(SUFFIX) \ | |||
| + ztfttr.$(SUFFIX) ztpttf.$(SUFFIX) ztpttr.$(SUFFIX) ztrttf.$(SUFFIX) ztrttp.$(SUFFIX) \ | |||
| + zgeequb.$(SUFFIX) zgbequb.$(SUFFIX) zsyequb.$(SUFFIX) zpoequb.$(SUFFIX) zheequb.$(SUFFIX) \ | |||
| + zbbcsd.$(SUFFIX) zlapmr.$(SUFFIX) zunbdb.$(SUFFIX) zuncsd.$(SUFFIX) \ | |||
| + zgeqrt.$(SUFFIX) zgeqrt2.$(SUFFIX) zgeqrt3.$(SUFFIX) zgemqrt.$(SUFFIX) \ | |||
| + ztpqrt.$(SUFFIX) ztpqrt2.$(SUFFIX) ztpmqrt.$(SUFFIX) ztprfb.$(SUFFIX) | |||
| ifdef USEXBLAS | |||
| -ZXLASRC = zgesvxx.o zgerfsx.o zla_gerfsx_extended.o zla_geamv.o \ | |||
| - zla_gercond_c.o zla_gercond_x.o zla_gerpvgrw.o zsysvxx.o zsyrfsx.o \ | |||
| - zla_syrfsx_extended.o zla_syamv.o zla_syrcond_c.o zla_syrcond_x.o \ | |||
| - zla_syrpvgrw.o zposvxx.o zporfsx.o zla_porfsx_extended.o \ | |||
| - zla_porcond_c.o zla_porcond_x.o zla_porpvgrw.o zgbsvxx.o zgbrfsx.o \ | |||
| - zla_gbrfsx_extended.o zla_gbamv.o zla_gbrcond_c.o zla_gbrcond_x.o \ | |||
| - zla_gbrpvgrw.o zhesvxx.o zherfsx.o zla_herfsx_extended.o \ | |||
| - zla_heamv.o zla_hercond_c.o zla_hercond_x.o zla_herpvgrw.o \ | |||
| - zla_lin_berr.o zlarscl2.o zlascl2.o zla_wwaddw.o | |||
| +ZXLASRC = zgesvxx.$(SUFFIX) zgerfsx.$(SUFFIX) zla_gerfsx_extended.$(SUFFIX) zla_geamv.$(SUFFIX) \ | |||
| + zla_gercond_c.$(SUFFIX) zla_gercond_x.$(SUFFIX) zla_gerpvgrw.$(SUFFIX) zsysvxx.$(SUFFIX) zsyrfsx.$(SUFFIX) \ | |||
| + zla_syrfsx_extended.$(SUFFIX) zla_syamv.$(SUFFIX) zla_syrcond_c.$(SUFFIX) zla_syrcond_x.$(SUFFIX) \ | |||
| + zla_syrpvgrw.$(SUFFIX) zposvxx.$(SUFFIX) zporfsx.$(SUFFIX) zla_porfsx_extended.$(SUFFIX) \ | |||
| + zla_porcond_c.$(SUFFIX) zla_porcond_x.$(SUFFIX) zla_porpvgrw.$(SUFFIX) zgbsvxx.$(SUFFIX) zgbrfsx.$(SUFFIX) \ | |||
| + zla_gbrfsx_extended.$(SUFFIX) zla_gbamv.$(SUFFIX) zla_gbrcond_c.$(SUFFIX) zla_gbrcond_x.$(SUFFIX) \ | |||
| + zla_gbrpvgrw.$(SUFFIX) zhesvxx.$(SUFFIX) zherfsx.$(SUFFIX) zla_herfsx_extended.$(SUFFIX) \ | |||
| + zla_heamv.$(SUFFIX) zla_hercond_c.$(SUFFIX) zla_hercond_x.$(SUFFIX) zla_herpvgrw.$(SUFFIX) \ | |||
| + zla_lin_berr.$(SUFFIX) zlarscl2.$(SUFFIX) zlascl2.$(SUFFIX) zla_wwaddw.$(SUFFIX) | |||
| endif | |||
| ALLOBJ = $(SLASRC) $(DLASRC) $(DSLASRC) $(CLASRC) $(ZLASRC) $(ZCLASRC) \ | |||
| $(SCLAUX) $(DZLAUX) $(ALLAUX) | |||
| +ALLOBJ_P = $(ALLOBJ:.$(SUFFIX)=.$(PSUFFIX)) | |||
| + | |||
| ifdef USEXBLAS | |||
| ALLXOBJ = $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) | |||
| endif | |||
| all: ../$(LAPACKLIB) | |||
| +lapack_prof: ../$(LAPACKLIB_P) | |||
| + | |||
| ../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ) | |||
| $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ) | |||
| $(RANLIB) $@ | |||
| +../$(LAPACKLIB_P): $(ALLOBJ_P) | |||
| + $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ_P) | |||
| + $(RANLIB) $@ | |||
| + | |||
| single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX) | |||
| $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(DSLASRC) \ | |||
| $(SXLASRC) $(SCLAUX) $(ALLAUX) $(ALLXAUX) | |||
| @@ -451,15 +459,24 @@ | |||
| @FRC=$(FRC) | |||
| clean: | |||
| - rm -f *.o | |||
| + rm -f *.$(SUFFIX) *.$(PSUFFIX) | |||
| -.f.o: | |||
| +%.$(SUFFIX): %.f | |||
| $(FORTRAN) $(OPTS) -c $< -o $@ | |||
| -slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| -dlaruv.o: dlaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| -sla_wwaddw.o: sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| -dla_wwaddw.o: dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| -cla_wwaddw.o: cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| -zla_wwaddw.o: zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ | |||
| +%.$(PSUFFIX): %.f | |||
| + $(FORTRAN) $(POPTS) -c $< -o $@ | |||
| +slaruv.$(SUFFIX): slaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| +dlaruv.$(SUFFIX): dlaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| +sla_wwaddw.$(SUFFIX): sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| +dla_wwaddw.$(SUFFIX): dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| +cla_wwaddw.$(SUFFIX): cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| +zla_wwaddw.$(SUFFIX): zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ | |||
| + | |||
| +slaruv.$(PSUFFIX): slaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| +dlaruv.$(PSUFFIX): dlaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| +sla_wwaddw.$(PSUFFIX): sla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| +dla_wwaddw.$(PSUFFIX): dla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| +cla_wwaddw.$(PSUFFIX): cla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| +zla_wwaddw.$(PSUFFIX): zla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ | |||
| diff -ruN lapack-3.4.1.old/TESTING/EIG/Makefile lapack-3.4.1/TESTING/EIG/Makefile | |||
| --- lapack-3.4.1.old/TESTING/EIG/Makefile 2011-09-26 23:52:31 +0200 | |||
| +++ lapack-3.4.1/TESTING/EIG/Makefile 2012-04-22 21:41:45 +0200 | |||
| @@ -78,7 +78,7 @@ | |||
| cget35.o cget36.o cget37.o cget38.o cget51.o cget52.o \ | |||
| cget54.o cglmts.o cgqrts.o cgrqts.o cgsvts.o \ | |||
| chbt21.o chet21.o chet22.o chpt21.o chst01.o \ | |||
| - clarfy.o clarhs.o clatm4.o clctes.o clctsx.o clsets.o csbmv.o \ | |||
| + clarfy.o clarhs.o clatm4.o clctes.o clctsx.o clsets.o \ | |||
| csgt01.o cslect.o \ | |||
| cstt21.o cstt22.o cunt01.o cunt03.o | |||
| @@ -115,7 +115,7 @@ | |||
| zget35.o zget36.o zget37.o zget38.o zget51.o zget52.o \ | |||
| zget54.o zglmts.o zgqrts.o zgrqts.o zgsvts.o \ | |||
| zhbt21.o zhet21.o zhet22.o zhpt21.o zhst01.o \ | |||
| - zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o zsbmv.o \ | |||
| + zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o \ | |||
| zsgt01.o zslect.o \ | |||
| zstt21.o zstt22.o zunt01.o zunt03.o | |||
| @@ -129,22 +129,22 @@ | |||
| ../xeigtsts: $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(LAPACKLIB); \ | |||
| $(LOADER) $(LOADOPTS) -o xeigtsts \ | |||
| $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) \ | |||
| - ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtsts $@ | |||
| + ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtsts $@ | |||
| ../xeigtstc: $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(LAPACKLIB); \ | |||
| $(LOADER) $(LOADOPTS) -o xeigtstc \ | |||
| $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) \ | |||
| - ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstc $@ | |||
| + ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstc $@ | |||
| ../xeigtstd: $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(LAPACKLIB); \ | |||
| $(LOADER) $(LOADOPTS) -o xeigtstd \ | |||
| $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) \ | |||
| - ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstd $@ | |||
| + ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstd $@ | |||
| ../xeigtstz: $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(LAPACKLIB); \ | |||
| $(LOADER) $(LOADOPTS) -o xeigtstz \ | |||
| $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) \ | |||
| - ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstz $@ | |||
| + ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstz $@ | |||
| $(AEIGTST): $(FRC) | |||
| $(SCIGTST): $(FRC) | |||
| diff -ruN lapack-3.4.1.old/TESTING/LIN/Makefile lapack-3.4.1/TESTING/LIN/Makefile | |||
| --- lapack-3.4.1.old/TESTING/LIN/Makefile 2012-04-02 21:06:36 +0200 | |||
| +++ lapack-3.4.1/TESTING/LIN/Makefile 2012-04-22 21:43:30 +0200 | |||
| @@ -109,7 +109,7 @@ | |||
| cqpt01.o cqrt01.o cqrt01p.o cqrt02.o cqrt03.o cqrt11.o \ | |||
| cqrt12.o cqrt13.o cqrt14.o cqrt15.o cqrt16.o \ | |||
| cqrt17.o crqt01.o crqt02.o crqt03.o crzt01.o crzt02.o \ | |||
| - csbmv.o cspt01.o \ | |||
| + cspt01.o \ | |||
| cspt02.o cspt03.o csyt01.o csyt02.o csyt03.o \ | |||
| ctbt02.o ctbt03.o ctbt05.o ctbt06.o ctpt01.o \ | |||
| ctpt02.o ctpt03.o ctpt05.o ctpt06.o ctrt01.o \ | |||
| @@ -188,7 +188,7 @@ | |||
| zqpt01.o zqrt01.o zqrt01p.o zqrt02.o zqrt03.o zqrt11.o \ | |||
| zqrt12.o zqrt13.o zqrt14.o zqrt15.o zqrt16.o \ | |||
| zqrt17.o zrqt01.o zrqt02.o zrqt03.o zrzt01.o zrzt02.o \ | |||
| - zsbmv.o zspt01.o \ | |||
| + zspt01.o \ | |||
| zspt02.o zspt03.o zsyt01.o zsyt02.o zsyt03.o \ | |||
| ztbt02.o ztbt03.o ztbt05.o ztbt06.o ztpt01.o \ | |||
| ztpt02.o ztpt03.o ztpt05.o ztpt06.o ztrt01.o \ | |||
| @@ -214,7 +214,7 @@ | |||
| zdrvab.o zdrvac.o zerrab.o zerrac.o zget08.o \ | |||
| alaerh.o alahd.o aladhd.o alareq.o \ | |||
| chkxer.o zget02.o zlarhs.o zlatb4.o \ | |||
| - zsbmv.o xerbla.o zpot06.o zlaipd.o | |||
| + xerbla.o zpot06.o zlaipd.o | |||
| SLINTSTRFP = schkrfp.o sdrvrfp.o sdrvrf1.o sdrvrf2.o sdrvrf3.o sdrvrf4.o serrrfp.o \ | |||
| slatb4.o slarhs.o sget04.o spot01.o spot03.o spot02.o \ | |||
| @@ -225,11 +225,11 @@ | |||
| chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o | |||
| CLINTSTRFP = cchkrfp.o cdrvrfp.o cdrvrf1.o cdrvrf2.o cdrvrf3.o cdrvrf4.o cerrrfp.o \ | |||
| - claipd.o clatb4.o clarhs.o csbmv.o cget04.o cpot01.o cpot03.o cpot02.o \ | |||
| + claipd.o clatb4.o clarhs.o cget04.o cpot01.o cpot03.o cpot02.o \ | |||
| chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o | |||
| ZLINTSTRFP = zchkrfp.o zdrvrfp.o zdrvrf1.o zdrvrf2.o zdrvrf3.o zdrvrf4.o zerrrfp.o \ | |||
| - zlatb4.o zlaipd.o zlarhs.o zsbmv.o zget04.o zpot01.o zpot03.o zpot02.o \ | |||
| + zlatb4.o zlaipd.o zlarhs.o zget04.o zpot01.o zpot03.o zpot02.o \ | |||
| chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o | |||
| all: single double complex complex16 proto-single proto-double proto-complex proto-complex16 | |||
| @@ -246,43 +246,43 @@ | |||
| xlintsts : $(ALINTST) $(SLINTST) $(SCLNTST) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(ALINTST) $(SCLNTST) $(SLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstc : $(ALINTST) $(CLINTST) $(SCLNTST) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(ALINTST) $(SCLNTST) $(CLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstd : $(ALINTST) $(DLINTST) $(DZLNTST) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $^ \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstz : $(ALINTST) $(ZLINTST) $(DZLNTST) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(ALINTST) $(DZLNTST) $(ZLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstds : $(DSLINTST) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(DSLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstzc : $(ZCLINTST) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(ZCLINTST) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstrfs : $(SLINTSTRFP) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(SLINTSTRFP) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstrfd : $(DLINTSTRFP) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(DLINTSTRFP) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstrfc : $(CLINTSTRFP) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(CLINTSTRFP) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| xlintstrfz : $(ZLINTSTRFP) ../../$(LAPACKLIB) | |||
| $(LOADER) $(LOADOPTS) $(ZLINTSTRFP) \ | |||
| - ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ | |||
| + ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) | |||
| ../xlintsts: xlintsts | |||
| mv xlintsts $@ | |||
| diff -ruN lapack-3.4.1.old/lapacke/src/Makefile lapack-3.4.1/lapacke/src/Makefile | |||
| --- lapack-3.4.1.old/lapacke/src/Makefile 2012-04-02 22:16:32 +0200 | |||
| +++ lapack-3.4.1/lapacke/src/Makefile 2012-04-22 21:38:38 +0200 | |||
| @@ -2040,19 +2040,21 @@ | |||
| lapacke_zlagsy.o \ | |||
| lapacke_zlagsy_work.o | |||
| -ALLOBJ = $(SRC_OBJ) $(MATGEN_OBJ) | |||
| +OBJ_FILES := $(SRC_OBJ) | |||
| -ifdef USEXBLAS | |||
| -ALLXOBJ = $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) | |||
| +ifdef LAPACKE_EXTENDED | |||
| +OBJ_FILES += $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) | |||
| endif | |||
| - | |||
| -OBJ_FILES := $(C_FILES:.o=.o) | |||
| +ifdef LAPACKE_TESTING | |||
| +OBJ_FILES += $(MATGEN_OBJ) | |||
| +endif | |||
| all: ../../$(LAPACKELIB) | |||
| -../../$(LAPACKELIB): $(ALLOBJ) $(ALLXOBJ) | |||
| - $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) | |||
| +../../$(LAPACKELIB): $(OBJ_FILES) | |||
| +# http://hackage.haskell.org/trac/gtk2hs/ticket/1146 | |||
| + echo $(OBJ_FILES) | xargs -n 100 $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) | |||
| $(RANLIB) ../../$(LAPACKELIB) | |||
| .c.o: | |||
| @@ -1,4 +1,4 @@ | |||
| #!/bin/bash | |||
| echo " Please read https://github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio " | |||
| make BINARY=64 CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran | |||
| make BINARY=64 CC=gcc FC=gfortran | |||