[WIP] Update LAPACK to 3.9.0 (#2353)

* Update make.inc entries for LAPACK 3.9.0

Reference-LAPACK PR 347 changed some variable names and relative paths

* Update LAPACK to 3.9.0

* Add new functions from LAPACK 3.9.0

* Add new functions from LAPACK 3.9.0

* Restore LOADER command 

as it makes it easier to specify pthread as needed

* Restore LOADER

* Restore EIG/LIN prefixes in cmdbase

* add binary path to lapack_testing.py call

* Restore OpenMP version check

* Restore OpenMP version check

* Restore fix for out-of-bounds array accesses

from #2096
This commit is contained in:
Martin Kroeker
2020-01-01 13:18:53 +01:00
committed by GitHub
parent 6c85cb1869
commit 375b1875c8
812 changed files with 36421 additions and 12050 deletions

View File

@@ -1,5 +1,3 @@
include ../../make.inc
#######################################################################
# This is the makefile to create a the variants libraries for LAPACK.
# The files are organized as follows:
@@ -17,6 +15,9 @@ include ../../make.inc
# 1065-1081. http://dx.doi.org/10.1137/S0895479896297744
#######################################################################
TOPSRCDIR = ../..
include $(TOPSRCDIR)/make.inc
CHOLRL = cholesky/RL/cpotrf.o cholesky/RL/dpotrf.o cholesky/RL/spotrf.o cholesky/RL/zpotrf.o
CHOLTOP = cholesky/TOP/cpotrf.o cholesky/TOP/dpotrf.o cholesky/TOP/spotrf.o cholesky/TOP/zpotrf.o
@@ -30,37 +31,36 @@ LUREC = lu/REC/cgetrf.o lu/REC/dgetrf.o lu/REC/sgetrf.o lu/REC/zgetrf.o
QRLL = qr/LL/cgeqrf.o qr/LL/dgeqrf.o qr/LL/sgeqrf.o qr/LL/zgeqrf.o qr/LL/sceil.o
.PHONY: all
all: cholrl.a choltop.a lucr.a lull.a lurec.a qrll.a
cholrl.a: $(CHOLRL)
$(ARCH) $(ARCHFLAGS) $@ $^
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
choltop.a: $(CHOLTOP)
$(ARCH) $(ARCHFLAGS) $@ $^
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
lucr.a: $(LUCR)
$(ARCH) $(ARCHFLAGS) $@ $^
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
lull.a: $(LULL)
$(ARCH) $(ARCHFLAGS) $@ $^
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
lurec.a: $(LUREC)
$(ARCH) $(ARCHFLAGS) $@ $^
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
qrll.a: $(QRLL)
$(ARCH) $(ARCHFLAGS) $@ $^
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
.PHONY: clean cleanobj cleanlib
clean: cleanobj cleanlib
cleanobj:
rm -f $(CHOLRL) $(CHOLTOP) $(LUCR) $(LULL) $(LUREC) $(QRLL)
cleanlib:
rm -f *.a
.f.o:
$(FORTRAN) $(OPTS) -c -o $@ $<

View File

@@ -34,7 +34,7 @@ References:For a more detailed description please refer to
=========
These variants are compiled by default in the build process but they are not tested by default.
The build process creates one new library per variants in the four arithmetics (single real/double real/single complex/double complex).
The build process creates one new library per variants in the four arithmetic (single real/double real/single complex/double complex).
The libraries are in the SRC/VARIANTS directory.
Corresponding libraries created in SRC/VARIANTS:
@@ -64,16 +64,16 @@ You should then see the following files in the TESTING directory:
= LINKING YOUR PROGRAM =
========================
You just need to add the variants methods library in your linking sequence before your lapack libary.
You just need to add the variants methods library in your linking sequence before your lapack library.
Here is a quick example for LU
Default using LU Right Looking version:
$(FORTRAN) -c myprog.f
$(FORTRAN) -o myexe myprog.o $(LAPACKLIB) $(BLASLIB)
$(FC) $(FFLAGS) -c myprog.f
$(FC) $(FFLAGS) $(LDFLAGS) -o myexe myprog.o $(LAPACKLIB) $(BLASLIB)
Using LU Left Looking version:
$(FORTRAN) -c myprog.f
$(FORTRAN) -o myexe myprog.o $(PATH TO LAPACK/SRC/VARIANTS)/lull.a $(LAPACKLIB) $(BLASLIB)
$(FC) $(FFLAGS) -c myprog.f
$(FC) $(FFLAGS) $(LDFLAGS) -o myexe myprog.o $(PATH TO LAPACK/SRC/VARIANTS)/lull.a $(LAPACKLIB) $(BLASLIB)
===========
= SUPPORT =