8#include <uni20/config.hpp>
11#if UNI20_HAS_MPLAPACK_MPREAL
14#if UNI20_HAS_MPLAPACK_FLOAT80
21template <
class S,
class... P>
22concept KernelPrecision = (has_runtime_precision_v<S> &&
sizeof...(P) == 1 && (std::same_as<P, Precision> && ...)) ||
23 (!has_runtime_precision_v<S> &&
sizeof...(P) == 0);
27 require_precision<S>(
p);
35concept EighScalar =
requires(std::size_t n, std::span<S> a, std::span<make_real_t<S>> v, Precision
p) {
39concept SvdScalar =
requires(std::size_t n, std::span<S> a, std::span<make_real_t<S>> v, Precision
p) {
43concept EigenScalar =
requires(std::size_t n, std::span<S> a, std::span<complex<make_real_t<S>>> z, Precision
p) {
Synchronous packed-array boundary to the serial MPFR/MPC provider.
Exact arithmetic or an explicit binary working precision.
Definition core/precision.hpp:13
Definition packed_decomposition_capabilities.hpp:43
Definition packed_decomposition_capabilities.hpp:35
Definition packed_decomposition_capabilities.hpp:22
Definition packed_decomposition_capabilities.hpp:33
Definition packed_decomposition_capabilities.hpp:31
Definition packed_decomposition_capabilities.hpp:39
Definition decompositions_packed.hpp:21
Precision working_precision()
Definition packed_decomposition_capabilities.hpp:24
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
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
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
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