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