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

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

#include <uni20/async/async.hpp>
#include <uni20/async/debug_scheduler.hpp>
#include <uni20/linalg/ops/svd.hpp>
#include <type_traits>
#include <utility>
Include dependency graph for async/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<class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::singular_values (async::Async< MatrixTensor > &&matrix, std::optional< Precision > requested={})
 Schedule consuming exact singular values using the static Tensor selector.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::singular_values (async::Async< MatrixTensor > const &matrix, std::optional< Precision > requested={})
 Schedule preserving exact singular values using the static Tensor selector.
 
template<KernelBackendSelector BackendSelector, class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::singular_values (BackendSelector selector, async::Async< MatrixTensor > &&matrix, std::optional< Precision > requested={})
 Schedule consuming exact singular values through an explicit selector.
 
template<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::singular_values (BackendSelector selector, async::Async< MatrixTensor > const &matrix, std::optional< Precision > requested={})
 Schedule preserving exact singular values through an explicit selector.
 
template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd (async::Async< Matrix > &&matrix, Precision p, SvdOptions options={})
 Compute SVD at explicit working precision with optional output settings.
 
template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd (async::Async< Matrix > const &matrix, Precision p, SvdOptions options={})
 Compute SVD at explicit working precision with optional output settings.
 
template<class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::svd (async::Async< MatrixTensor > &&matrix, SvdOptions options={}, std::optional< Precision > requested={})
 Schedule a consuming exact SVD using the static Tensor selector.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::svd (async::Async< MatrixTensor > const &matrix, SvdOptions options={}, std::optional< Precision > requested={})
 Schedule a preserving exact SVD using the static Tensor selector.
 
template<KernelBackendSelector BackendSelector, class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::svd (BackendSelector selector, async::Async< MatrixTensor > &&matrix, SvdOptions options={}, std::optional< Precision > requested={})
 Schedule a consuming exact SVD through an explicit selector.
 
template<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::svd (BackendSelector selector, async::Async< MatrixTensor > const &matrix, SvdOptions options={}, std::optional< Precision > requested={})
 Schedule a preserving exact SVD through an explicit selector.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd (Selector &&selector, async::Async< Matrix > &&matrix, Precision p, SvdOptions options={})
 Compute SVD at explicit working precision with optional output settings.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd (Selector &&selector, async::Async< Matrix > const &matrix, Precision p, SvdOptions options={})
 Compute SVD at explicit working precision with optional output settings.
 
template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd_left (async::Async< Matrix > &&matrix, Precision p, SvdVectorExtent extent=SvdVectorExtent::Reduced)
 Compute left SVD factors at explicit working precision with optional output settings.
 
template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd_left (async::Async< Matrix > const &matrix, Precision p, SvdVectorExtent extent=SvdVectorExtent::Reduced)
 Compute left SVD factors at explicit working precision with optional output settings.
 
template<class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::svd_left (async::Async< MatrixTensor > &&matrix, SvdVectorExtent extent=SvdVectorExtent::Reduced, std::optional< Precision > requested={})
 Schedule consuming left singular vectors using the static Tensor selector.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::svd_left (async::Async< MatrixTensor > const &matrix, SvdVectorExtent extent=SvdVectorExtent::Reduced, std::optional< Precision > requested={})
 Schedule preserving left singular vectors using the static Tensor selector.
 
template<KernelBackendSelector BackendSelector, class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::svd_left (BackendSelector selector, async::Async< MatrixTensor > &&matrix, SvdVectorExtent extent=SvdVectorExtent::Reduced, std::optional< Precision > requested={})
 Schedule consuming left singular vectors through an explicit selector.
 
template<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::svd_left (BackendSelector selector, async::Async< MatrixTensor > const &matrix, SvdVectorExtent extent=SvdVectorExtent::Reduced, std::optional< Precision > requested={})
 Schedule preserving left singular vectors through an explicit selector.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd_left (Selector &&selector, async::Async< Matrix > &&matrix, Precision p, SvdVectorExtent extent=SvdVectorExtent::Reduced)
 Compute left SVD factors at explicit working precision with optional output settings.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd_left (Selector &&selector, async::Async< Matrix > const &matrix, Precision p, SvdVectorExtent extent=SvdVectorExtent::Reduced)
 Compute left SVD factors at explicit working precision with optional output settings.
 
template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd_right (async::Async< Matrix > &&matrix, Precision p, SvdVectorExtent extent=SvdVectorExtent::Reduced)
 Compute right SVD factors at explicit working precision with optional output settings.
 
template<RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd_right (async::Async< Matrix > const &matrix, Precision p, SvdVectorExtent extent=SvdVectorExtent::Reduced)
 Compute right SVD factors at explicit working precision with optional output settings.
 
template<class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::svd_right (async::Async< MatrixTensor > &&matrix, SvdVectorExtent extent=SvdVectorExtent::Reduced, std::optional< Precision > requested={})
 Schedule consuming right singular vectors using the static Tensor selector.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::svd_right (async::Async< MatrixTensor > const &matrix, SvdVectorExtent extent=SvdVectorExtent::Reduced, std::optional< Precision > requested={})
 Schedule preserving right singular vectors using the static Tensor selector.
 
template<KernelBackendSelector BackendSelector, class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2>
auto uni20::linalg::svd_right (BackendSelector selector, async::Async< MatrixTensor > &&matrix, SvdVectorExtent extent=SvdVectorExtent::Reduced, std::optional< Precision > requested={})
 Schedule consuming right singular vectors through an explicit selector.
 
template<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
auto uni20::linalg::svd_right (BackendSelector selector, async::Async< MatrixTensor > const &matrix, SvdVectorExtent extent=SvdVectorExtent::Reduced, std::optional< Precision > requested={})
 Schedule preserving right singular vectors through an explicit selector.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd_right (Selector &&selector, async::Async< Matrix > &&matrix, Precision p, SvdVectorExtent extent=SvdVectorExtent::Reduced)
 Compute right SVD factors at explicit working precision with optional output settings.
 
template<KernelBackendSelector Selector, RankedTensorView< 2 > Matrix>
auto uni20::linalg::svd_right (Selector &&selector, async::Async< Matrix > const &matrix, Precision p, SvdVectorExtent extent=SvdVectorExtent::Reduced)
 Compute right SVD factors at explicit working precision with optional output settings.
 

Detailed Description

Async Tensor wrappers for exact 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.