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

Destructive-workspace and value-producing reduced real or complex LQ factorizations. More...

#include <uni20/core/scalar_concepts.hpp>
#include <uni20/linalg/backends/lapack/lq.hpp>
#include <uni20/linalg/decomposition_precision.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/tensor/concepts.hpp>
#include <uni20/tensor/copy.hpp>
#include <uni20/tensor/output.hpp>
#include <uni20/tensor/tensor.hpp>
#include <algorithm>
#include <concepts>
#include <type_traits>
#include <utility>
Include dependency graph for ops/lq.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::linalg::LqResult< LTensor, QTensor >
 Owning reduced factors returned by lq. More...
 

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 

Functions

template<KernelBackendSelector BackendSelector, class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2> && detail::DecompositionScalar<uni20::tensor_element_t<MatrixTensor>> && (!std::is_lvalue_reference_v<MatrixTensor>) && (!std::is_const_v<std::remove_reference_t<MatrixTensor>>)
auto uni20::linalg::lq (BackendSelector &&selector, MatrixTensor &&matrix, std::optional< Precision > requested={})
 Consume an owning real or complex matrix and return its reduced LQ factorization through an explicit selector.
 
template<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
requires detail::DecompositionScalar<uni20::tensor_element_t<MatrixTensor>>
auto uni20::linalg::lq (BackendSelector &&selector, MatrixTensor const &matrix, std::optional< Precision > requested={})
 Preserve a real or complex matrix and return its reduced LQ factorization through an explicit selector.
 
template<class MatrixTensor >
requires uni20::OwningTensor<MatrixTensor> && uni20::MutableRankedTensorView<MatrixTensor, 2> && detail::DecompositionScalar<uni20::tensor_element_t<MatrixTensor>> && (!std::is_lvalue_reference_v<MatrixTensor>) && (!std::is_const_v<std::remove_reference_t<MatrixTensor>>)
auto uni20::linalg::lq (MatrixTensor &&matrix, std::optional< Precision > requested={})
 Consume an owning real or complex matrix and return its reduced LQ factorization.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
requires detail::DecompositionScalar<uni20::tensor_element_t<MatrixTensor>>
auto uni20::linalg::lq (MatrixTensor const &matrix, std::optional< Precision > requested={})
 Preserve a real or complex matrix and return its reduced LQ factorization.
 
template<KernelBackendSelector BackendSelector, class LTensor , class QTensor , class MatrixTensor >
requires detail::CompatibleLqTensors<LTensor, QTensor, MatrixTensor>
void uni20::linalg::lq_factorization (BackendSelector &&selector, LTensor &&l, QTensor &&q, MatrixTensor &&matrix_work, std::optional< Precision > requested={})
 Compute reduced LQ in a destructive input workspace through an explicit selector.
 
template<class LTensor , class QTensor , class MatrixTensor >
requires detail::CompatibleLqTensors<LTensor, QTensor, MatrixTensor>
void uni20::linalg::lq_factorization (LTensor &&l, QTensor &&q, MatrixTensor &&matrix_work, std::optional< Precision > requested={})
 Compute reduced LQ in a destructive workspace using tensor storage policy.
 

Detailed Description

Destructive-workspace and value-producing reduced real or complex LQ factorizations.

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.