1Coverage of ReLAPACK
2====================
3
4This file lists all LAPACK compute routines that are covered by recursive
5algorithms in ReLAPACK, it also lists all of LAPACK's blocked algorithms which
6are not (yet) part of ReLAPACK.
7
8<!-- START doctoc generated TOC please keep comment here to allow auto update -->
9<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
10**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*
11
12- [List of covered LAPACK routines](#list-of-covered-lapack-routines)
13  - [`xlauum`](#xlauum)
14  - [`xsygst`](#xsygst)
15  - [`xtrtri`](#xtrtri)
16  - [`xpotrf`](#xpotrf)
17  - [`xpbtrf`](#xpbtrf)
18  - [`xsytrf`](#xsytrf)
19  - [`xgetrf`](#xgetrf)
20  - [`xgbtrf`](#xgbtrf)
21  - [`xtrsyl`](#xtrsyl)
22  - [`xtgsyl`](#xtgsyl)
23- [Covered BLAS extension](#covered-blas-extension)
24  - [`xgemmt`](#xgemmt)
25- [Not covered yet](#not-covered-yet)
26  - [`xpstrf`](#xpstrf)
27- [Not covered: extra FLOPs](#not-covered-extra-flops)
28  - [QR decomposition (and related)](#qr-decomposition-and-related)
29  - [Symmetric reduction to tridiagonal](#symmetric-reduction-to-tridiagonal)
30  - [Symmetric reduction to bidiagonal](#symmetric-reduction-to-bidiagonal)
31  - [Reduction to upper Hessenberg](#reduction-to-upper-hessenberg)
32
33<!-- END doctoc generated TOC please keep comment here to allow auto update -->
34
35
36List of covered LAPACK routines
37-------------------------------
38
39### `xlauum`
40Multiplication of a triangular matrix with its (complex conjugate) transpose,
41resulting in a symmetric (Hermitian) matrix.
42
43Routines: `slauum`, `dlauum`, `clauum`, `zlauum`
44
45Operations:
46* A = L^T L
47* A = U U^T
48
49### `xsygst`
50Simultaneous two-sided multiplication of a symmetric matrix with a triangular
51matrix and its transpose
52
53Routines: `ssygst`, `dsygst`, `chegst`, `zhegst`
54
55Operations:
56* A = inv(L) A inv(L^T)
57* A = inv(U^T) A inv(U)
58* A = L^T A L
59* A = U A U^T
60
61### `xtrtri`
62Inversion of a triangular matrix
63
64Routines: `strtri`, `dtrtri`, `ctrtri`, `ztrtri`
65
66Operations:
67* L = inv(L)
68* U = inv(U)
69
70### `xpotrf`
71Cholesky decomposition of a symmetric (Hermitian) positive definite matrix
72
73Routines: `spotrf`, `dpotrf`, `cpotrf`, `zpotrf`
74
75Operations:
76* L L^T = A
77* U^T U = A
78
79### `xpbtrf`
80Cholesky decomposition of a banded symmetric (Hermitian) positive definite matrix
81
82Routines: `spbtrf`, `dpbtrf`, `cpbtrf`, `zpbtrf`
83
84Operations:
85* L L^T = A
86* U^T U = A
87
88### `xsytrf`
89LDL decomposition of a symmetric (or Hermitian) matrix
90
91Routines:
92* `ssytrf`, `dsytrf`, `csytrf`, `chetrf`, `zsytrf`, `zhetrf`,
93* `ssytrf_rook`, `dsytrf_rook`, `csytrf_rook`, `chetrf_rook`, `zsytrf_rook`,
94  `zhetrf_rook`
95
96Operations:
97* L D L^T = A
98* U^T D U = A
99
100### `xgetrf`
101LU decomposition of a general matrix with pivoting
102
103Routines: `sgetrf`, `dgetrf`, `cgetrf`, `zgetrf`
104
105Operation: P L U = A
106
107### `xgbtrf`
108LU decomposition of a general banded matrix with pivoting
109
110Routines: `sgbtrf`, `dgbtrf`, `cgbtrf`, `zgbtrf`
111
112Operation: L U = A
113
114### `xtrsyl`
115Solution of the quasi-triangular Sylvester equation
116
117Routines: `strsyl`, `dtrsyl`, `ctrsyl`, `ztrsyl`
118
119Operations:
120* A X + B Y = C -> X
121* A^T X + B Y = C -> X
122* A X + B^T Y = C -> X
123* A^T X + B^T Y = C -> X
124* A X - B Y = C -> X
125* A^T X - B Y = C -> X
126* A X - B^T Y = C -> X
127* A^T X - B^T Y = C -> X
128
129### `xtgsyl`
130Solution of the generalized Sylvester equations
131
132Routines: `stgsyl`, `dtgsyl`, `ctgsyl`, `ztgsyl`
133
134Operations:
135* A R - L B = C, D R - L E = F -> L, R
136* A^T R + D^T L = C, R B^T - L E^T = -F -> L, R
137
138
139Covered BLAS extension
140----------------------
141
142### `xgemmt`
143Matrix-matrix product updating only a triangular part of the result
144
145Routines: `sgemmt`, `dgemmt`, `cgemmt`, `zgemmt`
146
147Operations:
148* C = alpha A B + beta C
149* C = alpha A B^T + beta C
150* C = alpha A^T B + beta C
151* C = alpha A^T B^T + beta C
152
153
154Not covered yet
155---------------
156The following operation is implemented as a blocked algorithm in LAPACK but
157currently not yet covered in ReLAPACK as a recursive algorithm
158
159### `xpstrf`
160Cholesky decomposition of a positive semi-definite matrix with complete pivoting.
161
162Routines: `spstrf`, `dpstrf`, `cpstrf`, `zpstrf`
163
164Operations:
165* P L L^T P^T = A
166* P U^T U P^T = A
167
168
169Not covered: extra FLOPs
170------------------------
171The following routines are not covered because recursive variants would require
172considerably more FLOPs or operate on banded matrices.
173
174### QR decomposition (and related)
175Routines:
176* `sgeqrf`, `dgeqrf`, `cgeqrf`, `zgeqrf`
177* `sgerqf`, `dgerqf`, `cgerqf`, `zgerqf`
178* `sgeqlf`, `dgeqlf`, `cgeqlf`, `zgeqlf`
179* `sgelqf`, `dgelqf`, `cgelqf`, `zgelqf`
180* `stzrzf`, `dtzrzf`, `ctzrzf`, `ztzrzf`
181
182Operations: Q R = A, R Q = A, Q L = A, L Q = A, R Z = A
183
184Routines for multiplication with Q:
185* `sormqr`, `dormqr`, `cunmqr`, `zunmqr`
186* `sormrq`, `dormrq`, `cunmrq`, `zunmrq`
187* `sormql`, `dormql`, `cunmql`, `zunmql`
188* `sormlq`, `dormlq`, `cunmlq`, `zunmlq`
189* `sormrz`, `dormrz`, `cunmrz`, `zunmrz`
190
191Operations: C = Q C, C = C Q, C = Q^T C, C = C Q^T
192
193Routines for construction of Q:
194* `sorgqr`, `dorgqr`, `cungqr`, `zungqr`
195* `sorgrq`, `dorgrq`, `cungrq`, `zungrq`
196* `sorgql`, `dorgql`, `cungql`, `zungql`
197* `sorglq`, `dorglq`, `cunglq`, `zunglq`
198
199### Symmetric reduction to tridiagonal
200Routines: `ssytrd`, `dsytrd`, `csytrd`, `zsytrd`
201
202Operation: Q T Q^T = A
203
204### Symmetric reduction to bidiagonal
205Routines: `ssybrd`, `dsybrd`, `csybrd`, `zsybrd`
206
207Operation: Q T P^T = A
208
209### Reduction to upper Hessenberg
210Routines: `sgehrd`, `dgehrd`, `cgehrd`, `zgehrd`
211
212Operation: Q H Q^T = A
213