13void gemm(std::size_t m, std::size_t n, std::size_t k, float80
const& alpha, std::span<float80 const> a,
14 std::span<float80 const> b, float80
const&
beta, std::span<float80>
c);
16void gemm(std::size_t m, std::size_t n, std::size_t k, complex160
const& alpha, std::span<complex160 const> a,
17 std::span<complex160 const> b, complex160
const&
beta, std::span<complex160>
c);
20std::size_t
getrf(std::size_t n, std::span<float80> a, std::vector<std::size_t>& pivots);
21#if UNI20_HAS_MPLAPACK_FLOAT80_COMPLEX
23std::size_t
getrf(std::size_t n, std::span<complex160> a, std::vector<std::size_t>& pivots);
26void getrs(std::size_t n, std::size_t nrhs, std::span<float80 const> a, std::span<std::size_t const> pivots,
27 std::span<float80> b);
28#if UNI20_HAS_MPLAPACK_FLOAT80_COMPLEX
30void getrs(std::size_t n, std::size_t nrhs, std::span<complex160 const> a, std::span<std::size_t const> pivots,
31 std::span<complex160> b);
34void qr(std::size_t m, std::size_t n, std::span<float80> a, std::span<float80> q, std::span<float80> triangular,
38void lq(std::size_t m, std::size_t n, std::span<float80> a, std::span<float80> q, std::span<float80> triangular,
43void eigh(std::size_t n, std::span<float80> a, std::span<float80> values,
bool vectors,
char triangle, Precision
p);
49void svd(std::size_t m, std::size_t n, std::span<float80> a, std::span<float80> values, std::span<float80> u,
50 std::span<float80> vh,
char jobu,
char jobvt, Precision
p);
55void eigen(std::size_t n, std::span<float80> a, std::span<complex160> values, std::span<complex160> vectors,
56 bool compute_vectors, Precision
p);
58#if UNI20_HAS_MPLAPACK_FLOAT80_COMPLEX
60void qr(std::size_t m, std::size_t n, std::span<complex160> a, std::span<complex160> q,
61 std::span<complex160> triangular, Precision
p);
64void lq(std::size_t m, std::size_t n, std::span<complex160> a, std::span<complex160> q,
65 std::span<complex160> triangular, Precision
p);
68void eigh(std::size_t n, std::span<complex160> a, std::span<float80> values,
bool vectors,
char triangle, Precision
p);
71void svd(std::size_t m, std::size_t n, std::span<complex160> a, std::span<float80> values, std::span<complex160> u,
72 std::span<complex160> vh,
char jobu,
char jobvt, Precision
p);
75void eigen(std::size_t n, std::span<complex160> a, std::span<complex160> values, std::span<complex160> vectors,
76 bool compute_vectors, Precision
p);
82std::size_t
gelss(std::size_t m, std::size_t n, std::size_t nrhs, std::span<float80> a, std::span<float80> b,
83 std::span<float80> values, float80
const& cutoff, std::size_t& rank, Precision
p);
86float80
gecon(std::size_t n, std::span<float80 const> a, float80
const& anorm,
char norm, Precision
p);
87#if UNI20_HAS_MPLAPACK_FLOAT80_COMPLEX
91std::size_t
gelss(std::size_t m, std::size_t n, std::size_t nrhs, std::span<complex160> a, std::span<complex160> b,
92 std::span<float80> values, float80
const& cutoff, std::size_t& rank, Precision
p);
95float80
gecon(std::size_t n, std::span<complex160 const> a, float80
const& anorm,
char norm, Precision
p);
Definition binary80.cpp:16
void eigen(std::size_t n, std::span< float80 > a, std::span< complex160 > values, std::span< complex160 > vectors, bool compute_vectors, Precision p)
Compute unsorted complex eigenvalues and optional right eigenvectors, destroying a.
Definition binary80.cpp:248
void lq(std::size_t m, std::size_t n, std::span< float80 > a, std::span< float80 > q, std::span< float80 > triangular, Precision p)
Overwrite m-by-n input work and return Q (k-by-n) and L (m-by-k), k=min(m,n).
Definition binary80.cpp:231
std::size_t getrf(std::size_t n, std::span< float80 > a, std::vector< std::size_t > &pivots)
Factor a square binary80 matrix, returning zero or a one-based singular pivot.
Definition binary80.cpp:203
void eigh(std::size_t n, std::span< float80 > a, std::span< float80 > values, bool vectors, char triangle, Precision p)
Compute ascending eigenvalues and optionally overwrite a with eigenvector columns.
Definition binary80.cpp:237
std::size_t gelss(std::size_t m, std::size_t n, std::size_t nrhs, std::span< float80 > a, std::span< float80 > b, std::span< float80 > values, float80 const &cutoff, std::size_t &rank, Precision p)
Packed GELSS; B has max(m,n) rows, values has min(m,n) entries.
Definition binary80.cpp:285
void getrs(std::size_t n, std::size_t nrhs, std::span< float80 const > a, std::span< std::size_t const > pivots, std::span< float80 > b)
Solve from read-only binary80 LU factors and zero-based pivots.
Definition binary80.cpp:213
void gemm(std::size_t m, std::size_t n, std::size_t k, float80 const &alpha, std::span< float80 const > a, std::span< float80 const > b, float80 const &beta, std::span< float80 > c)
Packed column-major binary80 GEMM; provider representations stay private.
Definition binary80.cpp:193
void svd(std::size_t m, std::size_t n, std::span< float80 > a, std::span< float80 > values, std::span< float80 > u, std::span< float80 > vh, char jobu, char jobvt, Precision p)
Compute descending singular values and requested U/Vh factors, destroying a.
Definition binary80.cpp:242
float80 gecon(std::size_t n, std::span< float80 const > a, float80 const &anorm, char norm, Precision p)
Estimate reciprocal condition from packed successful LU and the original matrix norm.
Definition binary80.cpp:290
void qr(std::size_t m, std::size_t n, std::span< float80 > a, std::span< float80 > q, std::span< float80 > triangular, Precision p)
Overwrite m-by-n input work and return Q (m-by-k) and R (k-by-n), k=min(m,n).
Definition binary80.cpp:225
Definition data_table.cpp:8
mpreal norm(mpcomplex const &z)
Definition mpcomplex.hpp:494
mpreal beta(mpreal const &a, mpreal const &x)
Real Beta function; positive rational/integer pairs retain exact values.
Definition mpreal_special.hpp:164