|
Uni20
Asynchronous tensor and runtime library.
|
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>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. | |
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.