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

Async Tensor wrappers for complete self-adjoint eigensystems. More...

#include <uni20/async/async.hpp>
#include <uni20/async/debug_scheduler.hpp>
#include <uni20/linalg/ops/self_adjoint_eigh.hpp>
#include <type_traits>
#include <utility>
Include dependency graph for async/self_adjoint_eigh.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::linalg
 

Functions

template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::eigh (async::Async< Matrix > &&matrix, Precision p, MatrixTriangle triangle=MatrixTriangle::Upper)
 Compute a self-adjoint eigensystem at explicit working precision with optional output settings.
 
template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::eigh (async::Async< Matrix > const &matrix, Precision p, MatrixTriangle triangle=MatrixTriangle::Upper)
 Compute a self-adjoint eigensystem at explicit working precision with optional output settings.
 
template<class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::eigh (async::Async< MatrixTensor > &&matrix, MatrixTriangle triangle=MatrixTriangle::Upper, std::optional< Precision > requested={})
 Schedule a consuming self-adjoint eigensystem using the static Tensor selector.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::eigh (async::Async< MatrixTensor > const &matrix, MatrixTriangle triangle=MatrixTriangle::Upper, std::optional< Precision > requested={})
 Schedule a preserving self-adjoint eigensystem using the static Tensor selector.
 
template<KernelBackendSelector BackendSelector, class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::eigh (BackendSelector selector, async::Async< MatrixTensor > &&matrix, MatrixTriangle triangle=MatrixTriangle::Upper, std::optional< Precision > requested={})
 Schedule a consuming self-adjoint eigensystem through an explicit selector.
 
template<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::eigh (BackendSelector selector, async::Async< MatrixTensor > const &matrix, MatrixTriangle triangle=MatrixTriangle::Upper, std::optional< Precision > requested={})
 Schedule a preserving self-adjoint eigensystem through an explicit selector.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::eigh (Selector &&selector, async::Async< Matrix > &&matrix, Precision p, MatrixTriangle triangle=MatrixTriangle::Upper)
 Compute a self-adjoint eigensystem at explicit working precision with optional output settings.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::eigh (Selector &&selector, async::Async< Matrix > const &matrix, Precision p, MatrixTriangle triangle=MatrixTriangle::Upper)
 Compute a self-adjoint eigensystem at explicit working precision with optional output settings.
 

Detailed Description

Async Tensor wrappers for complete self-adjoint eigensystems.

Precision may be inferred from the input matrix or supplied explicitly. Fixed results require their native precision; runtime decompositions require finite precision. Owning results record the selected default. Inference occurs only after the input epoch is readable.