Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
backend/lapack/reference/tridiagonal.hpp
Go to the documentation of this file.
1#pragma once
2
10#include <uni20/config.hpp>
11
13{
14
15namespace detail
16{
17extern "C"
18{
19 void sgtsv_(blas_int const* n, blas_int const* nrhs, float* dl, float* d, float* du, float* b, blas_int const* ldb,
20 blas_int* info);
21
22 void dgtsv_(blas_int const* n, blas_int const* nrhs, double* dl, double* d, double* du, double* b,
23 blas_int const* ldb, blas_int* info);
24
25 void sgttrf_(blas_int const* n, float* dl, float* d, float* du, float* du2, blas_int* ipiv, blas_int* info);
26
27 void dgttrf_(blas_int const* n, double* dl, double* d, double* du, double* du2, blas_int* ipiv, blas_int* info);
28
29 void sgttrs_(char const* trans, blas_int const* n, blas_int const* nrhs, float* dl, float* d, float* du, float* du2,
30 blas_int const* ipiv, float* b, blas_int const* ldb, blas_int* info);
31
32 void dgttrs_(char const* trans, blas_int const* n, blas_int const* nrhs, double* dl, double* d, double* du,
33 double* du2, blas_int const* ipiv, double* b, blas_int const* ldb, blas_int* info);
34
35 void sgtcon_(char const* norm, blas_int const* n, float* dl, float* d, float* du, float* du2, blas_int const* ipiv,
36 float const* anorm, float* rcond, float* work, blas_int* iwork, blas_int* info);
37
38 void dgtcon_(char const* norm, blas_int const* n, double* dl, double* d, double* du, double* du2,
39 blas_int const* ipiv, double const* anorm, double* rcond, double* work, blas_int* iwork, blas_int* info);
40
41 void sgtrfs_(char const* trans, blas_int const* n, blas_int const* nrhs, float* dl, float* d, float* du, float* dlf,
42 float* df, float* duf, float* du2, blas_int const* ipiv, float* b, blas_int const* ldb, float* x,
43 blas_int const* ldx, float* ferr, float* berr, float* work, blas_int* iwork, blas_int* info);
44
45 void dgtrfs_(char const* trans, blas_int const* n, blas_int const* nrhs, double* dl, double* d, double* du,
46 double* dlf, double* df, double* duf, double* du2, blas_int const* ipiv, double* b, blas_int const* ldb,
47 double* x, blas_int const* ldx, double* ferr, double* berr, double* work, blas_int* iwork,
48 blas_int* info);
49
50 void sgtsvx_(char const* fact, char const* trans, blas_int const* n, blas_int const* nrhs, float* dl, float* d,
51 float* du, float* dlf, float* df, float* duf, float* du2, blas_int* ipiv, float* b, blas_int const* ldb,
52 float* x, blas_int const* ldx, float* rcond, float* ferr, float* berr, float* work, blas_int* iwork,
53 blas_int* info);
54
55 void dgtsvx_(char const* fact, char const* trans, blas_int const* n, blas_int const* nrhs, double* dl, double* d,
56 double* du, double* dlf, double* df, double* duf, double* du2, blas_int* ipiv, double* b,
57 blas_int const* ldb, double* x, blas_int const* ldx, double* rcond, double* ferr, double* berr,
58 double* work, blas_int* iwork, blas_int* info);
59
60 void sptsv_(blas_int const* n, blas_int const* nrhs, float* d, float* e, float* b, blas_int const* ldb,
61 blas_int* info);
62
63 void dptsv_(blas_int const* n, blas_int const* nrhs, double* d, double* e, double* b, blas_int const* ldb,
64 blas_int* info);
65
66 void spttrf_(blas_int const* n, float* d, float* e, blas_int* info);
67
68 void dpttrf_(blas_int const* n, double* d, double* e, blas_int* info);
69
70 void spttrs_(blas_int const* n, blas_int const* nrhs, float* d, float* e, float* b, blas_int const* ldb,
71 blas_int* info);
72
73 void dpttrs_(blas_int const* n, blas_int const* nrhs, double* d, double* e, double* b, blas_int const* ldb,
74 blas_int* info);
75
76 void sptcon_(blas_int const* n, float* d, float* e, float const* anorm, float* rcond, float* work, blas_int* info);
77
78 void dptcon_(blas_int const* n, double* d, double* e, double const* anorm, double* rcond, double* work,
79 blas_int* info);
80
81 void sptrfs_(blas_int const* n, blas_int const* nrhs, float* d, float* e, float* df, float* ef, float* b,
82 blas_int const* ldb, float* x, blas_int const* ldx, float* ferr, float* berr, float* work,
83 blas_int* info);
84
85 void dptrfs_(blas_int const* n, blas_int const* nrhs, double* d, double* e, double* df, double* ef, double* b,
86 blas_int const* ldb, double* x, blas_int const* ldx, double* ferr, double* berr, double* work,
87 blas_int* info);
88
89 void sptsvx_(char const* fact, blas_int const* n, blas_int const* nrhs, float* d, float* e, float* df, float* ef,
90 float* b, blas_int const* ldb, float* x, blas_int const* ldx, float* rcond, float* ferr, float* berr,
91 float* work, blas_int* info);
92
93 void dptsvx_(char const* fact, blas_int const* n, blas_int const* nrhs, double* d, double* e, double* df, double* ef,
94 double* b, blas_int const* ldb, double* x, blas_int const* ldx, double* rcond, double* ferr,
95 double* berr, double* work, blas_int* info);
96
97 void ssterf_(blas_int const* n, float* d, float* e, blas_int* info);
98
99 void dsterf_(blas_int const* n, double* d, double* e, blas_int* info);
100
101 void ssteqr_(char const* compz, blas_int const* n, float* d, float* e, float* z, blas_int const* ldz, float* work,
102 blas_int* info);
103
104 void dsteqr_(char const* compz, blas_int const* n, double* d, double* e, double* z, blas_int const* ldz, double* work,
105 blas_int* info);
106
107 void sstevd_(char const* jobz, blas_int const* n, float* d, float* e, float* z, blas_int const* ldz, float* work,
108 blas_int const* lwork, blas_int* iwork, blas_int const* liwork, blas_int* info);
109
110 void dstevd_(char const* jobz, blas_int const* n, double* d, double* e, double* z, blas_int const* ldz, double* work,
111 blas_int const* lwork, blas_int* iwork, blas_int const* liwork, blas_int* info);
112
113 void sstevr_(char const* jobz, char const* range, blas_int const* n, float* d, float* e, float const* vl,
114 float const* vu, blas_int const* il, blas_int const* iu, float const* abstol, blas_int* m, float* w,
115 float* z, blas_int const* ldz, blas_int* isuppz, float* work, blas_int const* lwork, blas_int* iwork,
116 blas_int const* liwork, blas_int* info);
117
118 void dstevr_(char const* jobz, char const* range, blas_int const* n, double* d, double* e, double const* vl,
119 double const* vu, blas_int const* il, blas_int const* iu, double const* abstol, blas_int* m, double* w,
120 double* z, blas_int const* ldz, blas_int* isuppz, double* work, blas_int const* lwork, blas_int* iwork,
121 blas_int const* liwork, blas_int* info);
122}
123} // namespace detail
124
125[[nodiscard]] inline blas_int gtsv(blas_int n, blas_int nrhs, float* dl, float* d, float* du, float* b, blas_int ldb)
126{
127 blas_int info = 0;
128 UNI20_EXTERNAL_API_CALL(LAPACK, sgtsv_, n, nrhs, dl, d, du, b, ldb);
129 detail::sgtsv_(&n, &nrhs, dl, d, du, b, &ldb, &info);
130 return info;
131}
132
133[[nodiscard]] inline blas_int gtsv(blas_int n, blas_int nrhs, double* dl, double* d, double* du, double* b,
134 blas_int ldb)
135{
136 blas_int info = 0;
137 UNI20_EXTERNAL_API_CALL(LAPACK, dgtsv_, n, nrhs, dl, d, du, b, ldb);
138 detail::dgtsv_(&n, &nrhs, dl, d, du, b, &ldb, &info);
139 return info;
140}
141
142[[nodiscard]] inline blas_int gttrf(blas_int n, float* dl, float* d, float* du, float* du2, blas_int* ipiv)
143{
144 blas_int info = 0;
145 UNI20_EXTERNAL_API_CALL(LAPACK, sgttrf_, n, dl, d, du, du2, ipiv);
146 detail::sgttrf_(&n, dl, d, du, du2, ipiv, &info);
147 return info;
148}
149
150[[nodiscard]] inline blas_int gttrf(blas_int n, double* dl, double* d, double* du, double* du2, blas_int* ipiv)
151{
152 blas_int info = 0;
153 UNI20_EXTERNAL_API_CALL(LAPACK, dgttrf_, n, dl, d, du, du2, ipiv);
154 detail::dgttrf_(&n, dl, d, du, du2, ipiv, &info);
155 return info;
156}
157
158[[nodiscard]] inline blas_int gttrs(char trans, blas_int n, blas_int nrhs, float* dl, float* d, float* du, float* du2,
159 blas_int const* ipiv, float* b, blas_int ldb)
160{
161 blas_int info = 0;
162 UNI20_EXTERNAL_API_CALL(LAPACK, sgttrs_, trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb);
163 detail::sgttrs_(&trans, &n, &nrhs, dl, d, du, du2, ipiv, b, &ldb, &info);
164 return info;
165}
166
167[[nodiscard]] inline blas_int gttrs(char trans, blas_int n, blas_int nrhs, double* dl, double* d, double* du,
168 double* du2, blas_int const* ipiv, double* b, blas_int ldb)
169{
170 blas_int info = 0;
171 UNI20_EXTERNAL_API_CALL(LAPACK, dgttrs_, trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb);
172 detail::dgttrs_(&trans, &n, &nrhs, dl, d, du, du2, ipiv, b, &ldb, &info);
173 return info;
174}
175
176[[nodiscard]] inline blas_int gtcon(char norm, blas_int n, float* dl, float* d, float* du, float* du2,
177 blas_int const* ipiv, float matrix_norm, float& rcond, float* work, blas_int* iwork)
178{
179 blas_int info = 0;
180 UNI20_EXTERNAL_API_CALL(LAPACK, sgtcon_, norm, n, dl, d, du, du2, ipiv, matrix_norm, work, iwork);
181 detail::sgtcon_(&norm, &n, dl, d, du, du2, ipiv, &matrix_norm, &rcond, work, iwork, &info);
182 return info;
183}
184
185[[nodiscard]] inline blas_int gtcon(char norm, blas_int n, double* dl, double* d, double* du, double* du2,
186 blas_int const* ipiv, double matrix_norm, double& rcond, double* work,
187 blas_int* iwork)
188{
189 blas_int info = 0;
190 UNI20_EXTERNAL_API_CALL(LAPACK, dgtcon_, norm, n, dl, d, du, du2, ipiv, matrix_norm, work, iwork);
191 detail::dgtcon_(&norm, &n, dl, d, du, du2, ipiv, &matrix_norm, &rcond, work, iwork, &info);
192 return info;
193}
194
195[[nodiscard]] inline blas_int gtrfs(char trans, blas_int n, blas_int nrhs, float* dl, float* d, float* du, float* dlf,
196 float* df, float* duf, float* du2, blas_int const* ipiv, float* b, blas_int ldb,
197 float* x, blas_int ldx, float* forward_error, float* backward_error, float* work,
198 blas_int* iwork)
199{
200 blas_int info = 0;
201 UNI20_EXTERNAL_API_CALL(LAPACK, sgtrfs_, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx,
202 forward_error, backward_error, work, iwork);
203 detail::sgtrfs_(&trans, &n, &nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, &ldb, x, &ldx, forward_error,
204 backward_error, work, iwork, &info);
205 return info;
206}
207
208[[nodiscard]] inline blas_int gtrfs(char trans, blas_int n, blas_int nrhs, double* dl, double* d, double* du,
209 double* dlf, double* df, double* duf, double* du2, blas_int const* ipiv, double* b,
210 blas_int ldb, double* x, blas_int ldx, double* forward_error,
211 double* backward_error, double* work, blas_int* iwork)
212{
213 blas_int info = 0;
214 UNI20_EXTERNAL_API_CALL(LAPACK, dgtrfs_, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx,
215 forward_error, backward_error, work, iwork);
216 detail::dgtrfs_(&trans, &n, &nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, &ldb, x, &ldx, forward_error,
217 backward_error, work, iwork, &info);
218 return info;
219}
220
221[[nodiscard]] inline blas_int gtsvx(char fact, char trans, blas_int n, blas_int nrhs, float* dl, float* d, float* du,
222 float* dlf, float* df, float* duf, float* du2, blas_int* ipiv, float* b,
223 blas_int ldb, float* x, blas_int ldx, float& rcond, float* forward_error,
224 float* backward_error, float* work, blas_int* iwork)
225{
226 blas_int info = 0;
227 UNI20_EXTERNAL_API_CALL(LAPACK, sgtsvx_, fact, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx,
228 work, iwork);
229 detail::sgtsvx_(&fact, &trans, &n, &nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, &ldb, x, &ldx, &rcond, forward_error,
230 backward_error, work, iwork, &info);
231 return info;
232}
233
234[[nodiscard]] inline blas_int gtsvx(char fact, char trans, blas_int n, blas_int nrhs, double* dl, double* d, double* du,
235 double* dlf, double* df, double* duf, double* du2, blas_int* ipiv, double* b,
236 blas_int ldb, double* x, blas_int ldx, double& rcond, double* forward_error,
237 double* backward_error, double* work, blas_int* iwork)
238{
239 blas_int info = 0;
240 UNI20_EXTERNAL_API_CALL(LAPACK, dgtsvx_, fact, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx,
241 work, iwork);
242 detail::dgtsvx_(&fact, &trans, &n, &nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, &ldb, x, &ldx, &rcond, forward_error,
243 backward_error, work, iwork, &info);
244 return info;
245}
246
247[[nodiscard]] inline blas_int ptsv(blas_int n, blas_int nrhs, float* d, float* e, float* b, blas_int ldb)
248{
249 blas_int info = 0;
250 UNI20_EXTERNAL_API_CALL(LAPACK, sptsv_, n, nrhs, d, e, b, ldb);
251 detail::sptsv_(&n, &nrhs, d, e, b, &ldb, &info);
252 return info;
253}
254
255[[nodiscard]] inline blas_int ptsv(blas_int n, blas_int nrhs, double* d, double* e, double* b, blas_int ldb)
256{
257 blas_int info = 0;
258 UNI20_EXTERNAL_API_CALL(LAPACK, dptsv_, n, nrhs, d, e, b, ldb);
259 detail::dptsv_(&n, &nrhs, d, e, b, &ldb, &info);
260 return info;
261}
262
263[[nodiscard]] inline blas_int pttrf(blas_int n, float* d, float* e)
264{
265 blas_int info = 0;
266 UNI20_EXTERNAL_API_CALL(LAPACK, spttrf_, n, d, e);
267 detail::spttrf_(&n, d, e, &info);
268 return info;
269}
270
271[[nodiscard]] inline blas_int pttrf(blas_int n, double* d, double* e)
272{
273 blas_int info = 0;
274 UNI20_EXTERNAL_API_CALL(LAPACK, dpttrf_, n, d, e);
275 detail::dpttrf_(&n, d, e, &info);
276 return info;
277}
278
279[[nodiscard]] inline blas_int pttrs(blas_int n, blas_int nrhs, float* d, float* e, float* b, blas_int ldb)
280{
281 blas_int info = 0;
282 UNI20_EXTERNAL_API_CALL(LAPACK, spttrs_, n, nrhs, d, e, b, ldb);
283 detail::spttrs_(&n, &nrhs, d, e, b, &ldb, &info);
284 return info;
285}
286
287[[nodiscard]] inline blas_int pttrs(blas_int n, blas_int nrhs, double* d, double* e, double* b, blas_int ldb)
288{
289 blas_int info = 0;
290 UNI20_EXTERNAL_API_CALL(LAPACK, dpttrs_, n, nrhs, d, e, b, ldb);
291 detail::dpttrs_(&n, &nrhs, d, e, b, &ldb, &info);
292 return info;
293}
294
295[[nodiscard]] inline blas_int ptcon(blas_int n, float* d, float* e, float matrix_norm, float& rcond, float* work)
296{
297 blas_int info = 0;
298 UNI20_EXTERNAL_API_CALL(LAPACK, sptcon_, n, d, e, matrix_norm, work);
299 detail::sptcon_(&n, d, e, &matrix_norm, &rcond, work, &info);
300 return info;
301}
302
303[[nodiscard]] inline blas_int ptcon(blas_int n, double* d, double* e, double matrix_norm, double& rcond, double* work)
304{
305 blas_int info = 0;
306 UNI20_EXTERNAL_API_CALL(LAPACK, dptcon_, n, d, e, matrix_norm, work);
307 detail::dptcon_(&n, d, e, &matrix_norm, &rcond, work, &info);
308 return info;
309}
310
311[[nodiscard]] inline blas_int ptrfs(blas_int n, blas_int nrhs, float* d, float* e, float* df, float* ef, float* b,
312 blas_int ldb, float* x, blas_int ldx, float* forward_error, float* backward_error,
313 float* work)
314{
315 blas_int info = 0;
316 UNI20_EXTERNAL_API_CALL(LAPACK, sptrfs_, n, nrhs, d, e, df, ef, b, ldb, x, ldx, forward_error, backward_error, work);
317 detail::sptrfs_(&n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, forward_error, backward_error, work, &info);
318 return info;
319}
320
321[[nodiscard]] inline blas_int ptrfs(blas_int n, blas_int nrhs, double* d, double* e, double* df, double* ef, double* b,
322 blas_int ldb, double* x, blas_int ldx, double* forward_error,
323 double* backward_error, double* work)
324{
325 blas_int info = 0;
326 UNI20_EXTERNAL_API_CALL(LAPACK, dptrfs_, n, nrhs, d, e, df, ef, b, ldb, x, ldx, forward_error, backward_error, work);
327 detail::dptrfs_(&n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, forward_error, backward_error, work, &info);
328 return info;
329}
330
331[[nodiscard]] inline blas_int ptsvx(char fact, blas_int n, blas_int nrhs, float* d, float* e, float* df, float* ef,
332 float* b, blas_int ldb, float* x, blas_int ldx, float& rcond, float* forward_error,
333 float* backward_error, float* work)
334{
335 blas_int info = 0;
336 UNI20_EXTERNAL_API_CALL(LAPACK, sptsvx_, fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, work);
337 detail::sptsvx_(&fact, &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, &rcond, forward_error, backward_error, work, &info);
338 return info;
339}
340
341[[nodiscard]] inline blas_int ptsvx(char fact, blas_int n, blas_int nrhs, double* d, double* e, double* df, double* ef,
342 double* b, blas_int ldb, double* x, blas_int ldx, double& rcond,
343 double* forward_error, double* backward_error, double* work)
344{
345 blas_int info = 0;
346 UNI20_EXTERNAL_API_CALL(LAPACK, dptsvx_, fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, work);
347 detail::dptsvx_(&fact, &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, &rcond, forward_error, backward_error, work, &info);
348 return info;
349}
350
351[[nodiscard]] inline blas_int sterf(blas_int n, float* d, float* e)
352{
353 blas_int info = 0;
354 UNI20_EXTERNAL_API_CALL(LAPACK, ssterf_, n, d, e);
355 detail::ssterf_(&n, d, e, &info);
356 return info;
357}
358
359[[nodiscard]] inline blas_int sterf(blas_int n, double* d, double* e)
360{
361 blas_int info = 0;
362 UNI20_EXTERNAL_API_CALL(LAPACK, dsterf_, n, d, e);
363 detail::dsterf_(&n, d, e, &info);
364 return info;
365}
366
367[[nodiscard]] inline blas_int steqr(char compz, blas_int n, float* d, float* e, float* z, blas_int ldz, float* work)
368{
369 blas_int info = 0;
370 UNI20_EXTERNAL_API_CALL(LAPACK, ssteqr_, compz, n, d, e, z, ldz, work);
371 detail::ssteqr_(&compz, &n, d, e, z, &ldz, work, &info);
372 return info;
373}
374
375[[nodiscard]] inline blas_int steqr(char compz, blas_int n, double* d, double* e, double* z, blas_int ldz, double* work)
376{
377 blas_int info = 0;
378 UNI20_EXTERNAL_API_CALL(LAPACK, dsteqr_, compz, n, d, e, z, ldz, work);
379 detail::dsteqr_(&compz, &n, d, e, z, &ldz, work, &info);
380 return info;
381}
382
383[[nodiscard]] inline blas_int stevd(char jobz, blas_int n, float* d, float* e, float* z, blas_int ldz, float* work,
384 blas_int lwork, blas_int* iwork, blas_int liwork)
385{
386 blas_int info = 0;
387 UNI20_EXTERNAL_API_CALL(LAPACK, sstevd_, jobz, n, d, e, z, ldz, work, lwork, iwork, liwork);
388 detail::sstevd_(&jobz, &n, d, e, z, &ldz, work, &lwork, iwork, &liwork, &info);
389 return info;
390}
391
392[[nodiscard]] inline blas_int stevd(char jobz, blas_int n, double* d, double* e, double* z, blas_int ldz, double* work,
393 blas_int lwork, blas_int* iwork, blas_int liwork)
394{
395 blas_int info = 0;
396 UNI20_EXTERNAL_API_CALL(LAPACK, dstevd_, jobz, n, d, e, z, ldz, work, lwork, iwork, liwork);
397 detail::dstevd_(&jobz, &n, d, e, z, &ldz, work, &lwork, iwork, &liwork, &info);
398 return info;
399}
400
401[[nodiscard]] inline blas_int stevr(char jobz, char range, blas_int n, float* d, float* e, float vl, float vu,
402 blas_int il, blas_int iu, float abstol, blas_int& selected_count, float* w,
403 float* z, blas_int ldz, blas_int* isuppz, float* work, blas_int lwork,
404 blas_int* iwork, blas_int liwork)
405{
406 blas_int info = 0;
407 UNI20_EXTERNAL_API_CALL(LAPACK, sstevr_, jobz, range, n, d, e, vl, vu, il, iu, abstol, selected_count, w, z, ldz,
408 isuppz, work, lwork, iwork, liwork);
409 detail::sstevr_(&jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &selected_count, w, z, &ldz, isuppz, work,
410 &lwork, iwork, &liwork, &info);
411 return info;
412}
413
414[[nodiscard]] inline blas_int stevr(char jobz, char range, blas_int n, double* d, double* e, double vl, double vu,
415 blas_int il, blas_int iu, double abstol, blas_int& selected_count, double* w,
416 double* z, blas_int ldz, blas_int* isuppz, double* work, blas_int lwork,
417 blas_int* iwork, blas_int liwork)
418{
419 blas_int info = 0;
420 UNI20_EXTERNAL_API_CALL(LAPACK, dstevr_, jobz, range, n, d, e, vl, vu, il, iu, abstol, selected_count, w, z, ldz,
421 isuppz, work, lwork, iwork, liwork);
422 detail::dstevr_(&jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &selected_count, w, z, &ldz, isuppz, work,
423 &lwork, iwork, &liwork, &info);
424 return info;
425}
426
427} // namespace uni20::lapack::unchecked
#define UNI20_EXTERNAL_API_CALL(module, func,...)
Emits a trace log entry for an outgoing backend API call.
Definition backend.hpp:90
Definition mplapack/band.hpp:25
blas_int gtsv(blas_int n, blas_int nrhs, uni20::float128 *dl, uni20::float128 *d, uni20::float128 *du, uni20::float128 *b, blas_int ldb)
Definition backend/lapack/mplapack/tridiagonal.hpp:27
blas_int gtrfs(char trans, blas_int n, blas_int nrhs, uni20::float128 *dl, uni20::float128 *d, uni20::float128 *du, uni20::float128 *dlf, uni20::float128 *df, uni20::float128 *duf, uni20::float128 *du2, blas_int const *ipiv, uni20::float128 *b, blas_int ldb, uni20::float128 *x, blas_int ldx, uni20::float128 *forward_error, uni20::float128 *backward_error, uni20::float128 *work, blas_int *iwork)
Definition backend/lapack/mplapack/tridiagonal.hpp:73
blas_int steqr(char compz, blas_int n, uni20::float128 *d, uni20::float128 *e, uni20::float128 *z, blas_int ldz, uni20::float128 *work)
Definition backend/lapack/mplapack/tridiagonal.hpp:181
blas_int stevd(char jobz, blas_int n, uni20::float128 *d, uni20::float128 *e, uni20::float128 *z, blas_int ldz, uni20::float128 *work, blas_int lwork, blas_int *iwork, blas_int liwork)
Definition backend/lapack/mplapack/tridiagonal.hpp:190
blas_int ptrfs(blas_int n, blas_int nrhs, uni20::float128 *d, uni20::float128 *e, uni20::float128 *df, uni20::float128 *ef, uni20::float128 *b, blas_int ldb, uni20::float128 *x, blas_int ldx, uni20::float128 *forward_error, uni20::float128 *backward_error, uni20::float128 *work)
Definition backend/lapack/mplapack/tridiagonal.hpp:147
blas_int gtsvx(char fact, char trans, blas_int n, blas_int nrhs, uni20::float128 *dl, uni20::float128 *d, uni20::float128 *du, uni20::float128 *dlf, uni20::float128 *df, uni20::float128 *duf, uni20::float128 *du2, blas_int *ipiv, uni20::float128 *b, blas_int ldb, uni20::float128 *x, blas_int ldx, uni20::float128 &rcond, uni20::float128 *forward_error, uni20::float128 *backward_error, uni20::float128 *work, blas_int *iwork)
Definition backend/lapack/mplapack/tridiagonal.hpp:91
blas_int stevr(char jobz, char range, blas_int n, uni20::float128 *d, uni20::float128 *e, uni20::float128 vl, uni20::float128 vu, blas_int il, blas_int iu, uni20::float128 abstol, blas_int &selected_count, uni20::float128 *w, uni20::float128 *z, blas_int ldz, blas_int *isuppz, uni20::float128 *work, blas_int lwork, blas_int *iwork, blas_int liwork)
Definition backend/lapack/mplapack/tridiagonal.hpp:204
blas_int ptsv(blas_int n, blas_int nrhs, uni20::float128 *d, uni20::float128 *e, uni20::float128 *b, blas_int ldb)
Definition backend/lapack/mplapack/tridiagonal.hpp:110
blas_int ptcon(blas_int n, uni20::float128 *d, uni20::float128 *e, uni20::float128 matrix_norm, uni20::float128 &rcond, uni20::float128 *work)
Definition backend/lapack/mplapack/tridiagonal.hpp:138
blas_int gttrs(char trans, blas_int n, blas_int nrhs, uni20::float128 *dl, uni20::float128 *d, uni20::float128 *du, uni20::float128 *du2, blas_int const *ipiv, uni20::float128 *b, blas_int ldb)
Definition backend/lapack/mplapack/tridiagonal.hpp:48
blas_int gtcon(char norm, blas_int n, uni20::float128 *dl, uni20::float128 *d, uni20::float128 *du, uni20::float128 *du2, blas_int const *ipiv, uni20::float128 matrix_norm, uni20::float128 &rcond, uni20::float128 *work, blas_int *iwork)
Definition backend/lapack/mplapack/tridiagonal.hpp:60
blas_int ptsvx(char fact, blas_int n, blas_int nrhs, uni20::float128 *d, uni20::float128 *e, uni20::float128 *df, uni20::float128 *ef, uni20::float128 *b, blas_int ldb, uni20::float128 *x, blas_int ldx, uni20::float128 &rcond, uni20::float128 *forward_error, uni20::float128 *backward_error, uni20::float128 *work)
Definition backend/lapack/mplapack/tridiagonal.hpp:159
blas_int gttrf(blas_int n, uni20::float128 *dl, uni20::float128 *d, uni20::float128 *du, uni20::float128 *du2, blas_int *ipiv)
Definition backend/lapack/mplapack/tridiagonal.hpp:37
blas_int pttrf(blas_int n, uni20::float128 *d, uni20::float128 *e)
Definition backend/lapack/mplapack/tridiagonal.hpp:120
blas_int sterf(blas_int n, uni20::float128 *d, uni20::float128 *e)
Definition backend/lapack/mplapack/tridiagonal.hpp:173
blas_int pttrs(blas_int n, blas_int nrhs, uni20::float128 *d, uni20::float128 *e, uni20::float128 *b, blas_int ldb)
Definition backend/lapack/mplapack/tridiagonal.hpp:128
mpreal norm(mpcomplex const &z)
Definition mpcomplex.hpp:494