Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Functions
mpfr.hpp File Reference

Synchronous packed-array boundary to the serial MPFR/MPC provider. More...

#include <cstddef>
#include <span>
#include <uni20/core/mpcomplex.hpp>
#include <vector>
Include dependency graph for backend/mplapack/mpfr.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::mplapack
 

Functions

void uni20::mplapack::eigen (std::size_t n, std::span< mpcomplex > a, std::span< mpcomplex > values, std::span< mpcomplex > vectors, bool compute_vectors, Precision p)
 Complex counterpart of the packed general eigensystem.
 
void uni20::mplapack::eigen (std::size_t n, std::span< mpreal > a, std::span< mpcomplex > values, std::span< mpcomplex > vectors, bool compute_vectors, Precision p)
 Compute unsorted complex eigenvalues and optional right eigenvectors, destroying a.
 
void uni20::mplapack::eigh (std::size_t n, std::span< mpcomplex > a, std::span< mpreal > values, bool vectors, char triangle, Precision p)
 Hermitian counterpart of the packed real self-adjoint eigensystem.
 
void uni20::mplapack::eigh (std::size_t n, std::span< mpreal > a, std::span< mpreal > values, bool vectors, char triangle, Precision p)
 Compute ascending eigenvalues and optionally overwrite a with eigenvector columns.
 
mpreal uni20::mplapack::gecon (std::size_t n, std::span< mpcomplex const > a, mpreal const &anorm, char norm, Precision p)
 Estimate reciprocal condition from packed successful LU and the original matrix norm.
 
mpreal uni20::mplapack::gecon (std::size_t n, std::span< mpreal const > a, mpreal const &anorm, char norm, Precision p)
 Estimate reciprocal condition from packed successful LU and the original matrix norm.
 
std::size_t uni20::mplapack::gelss (std::size_t m, std::size_t n, std::size_t nrhs, std::span< mpcomplex > a, std::span< mpcomplex > b, std::span< mpreal > values, mpreal const &cutoff, std::size_t &rank, Precision p)
 Packed GELSS; B has max(m,n) rows, values has min(m,n) entries.
 
std::size_t uni20::mplapack::gelss (std::size_t m, std::size_t n, std::size_t nrhs, std::span< mpreal > a, std::span< mpreal > b, std::span< mpreal > values, mpreal const &cutoff, std::size_t &rank, Precision p)
 Packed GELSS; B has max(m,n) rows, values has min(m,n) entries.
 
void uni20::mplapack::gemm (std::size_t m, std::size_t n, std::size_t k, mpcomplex const &alpha, std::span< mpcomplex const > a, std::span< mpcomplex const > b, mpcomplex const &beta, std::span< mpcomplex > c, Precision p)
 Complex counterpart of the packed real GEMM adapter.
 
void uni20::mplapack::gemm (std::size_t m, std::size_t n, std::size_t k, mpreal const &alpha, std::span< mpreal const > a, std::span< mpreal const > b, mpreal const &beta, std::span< mpreal > c, Precision p)
 Multiply packed column-major Uni20 real arrays at explicit precision.
 
std::size_t uni20::mplapack::getrf (std::size_t n, std::span< mpcomplex > a, std::vector< std::size_t > &pivots, Precision p)
 Complex counterpart of the packed real LU factorization adapter.
 
std::size_t uni20::mplapack::getrf (std::size_t n, std::span< mpreal > a, std::vector< std::size_t > &pivots, Precision p)
 Factor a packed square matrix, returning zero or a one-based singular pivot.
 
void uni20::mplapack::getrs (std::size_t n, std::size_t nrhs, std::span< mpcomplex const > a, std::span< std::size_t const > pivots, std::span< mpcomplex > b, Precision p)
 Complex counterpart of the packed real LU solve adapter.
 
void uni20::mplapack::getrs (std::size_t n, std::size_t nrhs, std::span< mpreal const > a, std::span< std::size_t const > pivots, std::span< mpreal > b, Precision p)
 Solve from packed LU factors and zero-based pivots, overwriting the RHS array.
 
void uni20::mplapack::lq (std::size_t m, std::size_t n, std::span< mpcomplex > a, std::span< mpcomplex > q, std::span< mpcomplex > triangular, Precision p)
 Complex LQ counterpart, with unitary rows in Q.
 
void uni20::mplapack::lq (std::size_t m, std::size_t n, std::span< mpreal > a, std::span< mpreal > q, std::span< mpreal > triangular, Precision p)
 Overwrite m-by-n input work and return Q (k-by-n) and L (m-by-k), k=min(m,n).
 
void uni20::mplapack::qr (std::size_t m, std::size_t n, std::span< mpcomplex > a, std::span< mpcomplex > q, std::span< mpcomplex > triangular, Precision p)
 Complex QR counterpart, with unitary columns in Q.
 
void uni20::mplapack::qr (std::size_t m, std::size_t n, std::span< mpreal > a, std::span< mpreal > q, std::span< mpreal > triangular, Precision p)
 Overwrite m-by-n input work and return Q (m-by-k) and R (k-by-n), k=min(m,n).
 
void uni20::mplapack::svd (std::size_t m, std::size_t n, std::span< mpcomplex > a, std::span< mpreal > values, std::span< mpcomplex > u, std::span< mpcomplex > vh, char jobu, char jobvt, Precision p)
 Complex SVD counterpart; Vh is the conjugate transpose of V.
 
void uni20::mplapack::svd (std::size_t m, std::size_t n, std::span< mpreal > a, std::span< mpreal > values, std::span< mpreal > u, std::span< mpreal > vh, char jobu, char jobvt, Precision p)
 Compute descending singular values and requested U/Vh factors, destroying a.
 

Detailed Description

Synchronous packed-array boundary to the serial MPFR/MPC provider.

Arrays use column-major order and may not overlap. Every call needs finite working precision, copies into owning provider objects, and restores the executing thread's precision context before returning or throwing.