Merge pull request #2145 from martin-frbg/1912-3
[platform/upstream/openblas.git] / relapack / README.md
1 ReLAPACK
2 ========
3
4 [![Build Status](https://travis-ci.org/HPAC/ReLAPACK.svg?branch=master)](https://travis-ci.org/HPAC/ReLAPACK)
5
6 [Recursive LAPACK Collection](https://github.com/HPAC/ReLAPACK)
7
8 ReLAPACK offers a collection of recursive algorithms for many of LAPACK's
9 compute kernels.  Since it preserves LAPACK's established interfaces, ReLAPACK
10 integrates effortlessly into existing application codes.  ReLAPACK's routines
11 not only outperform the reference LAPACK but also improve upon the performance
12 of tuned implementations, such as OpenBLAS and MKL.
13
14
15 Coverage
16 --------
17 For a detailed list of covered operations and an overview of operations to which
18 recursion is not efficiently applicable, see [coverage.md](coverage.md).
19
20
21 Installation
22 ------------
23 To compile with the default configuration, simply run `make` to create the
24 library `librelapack.a`.
25
26 ### Linking with MKL
27 Note that to link with MKL, you currently need to set the flag
28 `COMPLEX_FUNCTIONS_AS_ROUTINES` to `1` to avoid problems in `ctrsyl` and
29 `ztrsyl`.  For further configuration options see [config.md](config.md).
30
31
32 ### Dependencies
33 ReLAPACK builds on top of [BLAS](http://www.netlib.org/blas/) and unblocked
34 kernels from [LAPACK](http://www.netlib.org/lapack/).  There are many optimized
35 and machine specific implementations of these libraries, which are commonly
36 provided by hardware vendors or available as open source (e.g.,
37 [OpenBLAS](http://www.openblas.net/)).
38
39
40 Testing
41 -------
42 ReLAPACK's test suite compares its routines numerically with LAPACK's
43 counterparts.  To set up the tests (located int `test/`) you need to specify
44 link flags for BLAS and LAPACK (version 3.5.0 or newer) in `make.inc`; then
45 `make test` runs the tests.  For details on the performed tests, see
46 [test/README.md](test/README.md).
47
48
49 Examples
50 --------
51 Since ReLAPACK replaces parts of LAPACK, any LAPACK example involving the
52 covered routines applies directly to ReLAPACK.  A few separate examples are
53 given in `examples/`. For details, see [examples/README.md](examples/README.md).
54
55
56 Citing
57 ------
58 When referencing ReLAPACK, please cite the preprint of the paper
59 [Recursive Algorithms for Dense Linear Algebra: The ReLAPACK Collection](http://arxiv.org/abs/1602.06763):
60
61     @article{relapack,
62       author    = {Elmar Peise and Paolo Bientinesi},
63       title     = {Recursive Algorithms for Dense Linear Algebra: The ReLAPACK Collection},
64       journal   = {CoRR},
65       volume    = {abs/1602.06763},
66       year      = {2016},
67       url       = {http://arxiv.org/abs/1602.06763},
68     }