OpenBLAS/lapack-netlib/SRC/VARIANTS
Martin Kroeker 375b1875c8
[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
2020-01-01 13:18:53 +01:00
..
cholesky added lapack 3.7.0 with latest patches from git 2017-01-06 11:48:40 +01:00
lu added lapack 3.7.0 with latest patches from git 2017-01-06 11:48:40 +01:00
qr/LL added lapack 3.7.0 with latest patches from git 2017-01-06 11:48:40 +01:00
Makefile [WIP] Update LAPACK to 3.9.0 (#2353) 2020-01-01 13:18:53 +01:00
README [WIP] Update LAPACK to 3.9.0 (#2353) 2020-01-01 13:18:53 +01:00

README

		   ===============
		   = README File =
		   ===============

This README File is for the LAPACK driver variants.
It is composed of 5 sections:
	- Description: contents a quick description of each of the variants. For a more detailed description please refer to LAWN XXX.
	- Build
	- Testing
	- Linking your program
	- Support

Author: Peng DU and Julie LANGOU, May 2008

===============
= DESCRIPTION =
===============

This directory contains several variants of LAPACK routines in single/double/complex/double complex precision:
	- [sdcz]getrf with LU Crout Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/lu/CR
	- [sdcz]getrf with LU Left Looking Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/lu/LL
	- [sdcz]getrf with Sivan Toledo's recursive LU algorithm [1] - Directory: SRC/VARIANTS/lu/REC
	- [sdcz]geqrf with QR Left Looking Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/qr/LL
	- [sdcz]potrf with Cholesky Right Looking Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/cholesky/RL
	- [sdcz]potrf with Cholesky Top Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/cholesky/TOP

References:For a more detailed description please refer to
	- [1] Toledo, S. 1997. Locality of Reference in LU Decomposition with Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997),
          1065-1081. http://dx.doi.org/10.1137/S0895479896297744
	- [2]LAWN XXX

=========
= BUILD =
=========

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 arithmetic (single real/double real/single complex/double complex).
The libraries are in the SRC/VARIANTS directory.

Corresponding libraries created in SRC/VARIANTS:
	- LU Crout : lucr.a
	- LU Left Looking : lull.a
	- LU Sivan Toledo's recursive : lurec.a
	- QR Left Looking : qrll.a
	- Cholesky Right Looking : cholrl.a
	- Cholesky Top : choltop.a


===========
= TESTING =
===========

To test these variants you can type 'make variants-testing'
This will rerun the linear methods testings once per variants and append the short name of the variants to the output files.
You should then see the following files in the TESTING directory:
[scdz]test_cholrl.out
[scdz]test_choltop.out
[scdz]test_lucr.out
[scdz]test_lull.out
[scdz]test_lurec.out
[scdz]test_qrll.out

========================
= LINKING YOUR PROGRAM =
========================

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:
 $(FC) $(FFLAGS) -c myprog.f
 $(FC) $(FFLAGS) $(LDFLAGS) -o myexe myprog.o $(LAPACKLIB) $(BLASLIB)

Using LU Left Looking version:
 $(FC) $(FFLAGS) -c myprog.f
 $(FC) $(FFLAGS) $(LDFLAGS) -o myexe myprog.o $(PATH TO LAPACK/SRC/VARIANTS)/lull.a $(LAPACKLIB) $(BLASLIB)

===========
= SUPPORT =
===========

You can use either LAPACK forum or the LAPACK mailing list to get support.
LAPACK forum : http://icl.cs.utk.edu/lapack-forum
LAPACK mailing list : lapack@cs.utk.edu