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

Async Tensor wrappers for truncated dense singular value decompositions. More...

#include <uni20/async/async.hpp>
#include <uni20/async/debug_scheduler.hpp>
#include <uni20/linalg/async/svd.hpp>
#include <uni20/linalg/ops/truncated_svd.hpp>
#include <type_traits>
#include <utility>
Include dependency graph for async/truncated_svd.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::truncated_svd (async::Async< Matrix > &&matrix, Precision p, SvdTruncationPolicy< make_real_t< tensor_element_t< Matrix > > > policy={})
 Compute and truncate at explicit working precision; cutoff scalars retain their precision rules.
 
template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::truncated_svd (async::Async< Matrix > const &matrix, Precision p, SvdTruncationPolicy< make_real_t< tensor_element_t< Matrix > > > policy={})
 Compute and truncate at explicit working precision; cutoff scalars retain their precision rules.
 
template<class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::truncated_svd (async::Async< MatrixTensor > &&matrix, detail::svd_truncation_policy_t< MatrixTensor > policy={}, std::optional< Precision > requested={})
 Schedule a consuming truncated SVD using the static Tensor selector.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::truncated_svd (async::Async< MatrixTensor > const &matrix, detail::svd_truncation_policy_t< MatrixTensor > policy={}, std::optional< Precision > requested={})
 Schedule a preserving truncated SVD using the static Tensor selector.
 
template<KernelBackendSelector BackendSelector, class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::truncated_svd (BackendSelector selector, async::Async< MatrixTensor > &&matrix, detail::svd_truncation_policy_t< MatrixTensor > policy={}, std::optional< Precision > requested={})
 Schedule a consuming truncated SVD through an explicit selector.
 
template<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::truncated_svd (BackendSelector selector, async::Async< MatrixTensor > const &matrix, detail::svd_truncation_policy_t< MatrixTensor > policy={}, std::optional< Precision > requested={})
 Schedule a preserving truncated SVD through an explicit selector.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::truncated_svd (Selector &&selector, async::Async< Matrix > &&matrix, Precision p, SvdTruncationPolicy< make_real_t< tensor_element_t< Matrix > > > policy={})
 Compute and truncate at explicit working precision; cutoff scalars retain their precision rules.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::truncated_svd (Selector &&selector, async::Async< Matrix > const &matrix, Precision p, SvdTruncationPolicy< make_real_t< tensor_element_t< Matrix > > > policy={})
 Compute and truncate at explicit working precision; cutoff scalars retain their precision rules.
 

Detailed Description

Async Tensor wrappers for truncated dense singular value decompositions.

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.