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

Dense matrix norm front ends over operation-tag dispatch. More...

#include <uni20/core/scalar_concepts.hpp>
#include <uni20/core/scalar_traits.hpp>
#include <uni20/linalg/backends/cpu/matrix_norm.hpp>
#include <uni20/linalg/backends/lapack/matrix_norm.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/mdspan/concepts.hpp>
#include <uni20/tensor/concepts.hpp>
#include <uni20/tensor/reductions.hpp>
#include <concepts>
#include <type_traits>
#include <utility>
Include dependency graph for ops/matrix_norm.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<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
requires uni20::RealOrComplex<uni20::tensor_element_t<MatrixTensor>> && requires(MatrixTensor const& matrix) { uni20::norm(matrix); }
auto uni20::linalg::matrix_norm (BackendSelector &&selector, MatrixTensor const &matrix, MatrixNorm kind)
 Return a storage-preserving rank-zero Tensor matrix norm.
 
template<KernelBackendSelector BackendSelector, uni20::MutableRankedMdspanLike< 0 > OutputMdspan, uni20::RankedMdspanLike< 2 > MatrixMdspan>
requires uni20::RealOrComplex<typename std::remove_cvref_t<MatrixMdspan>::value_type> && std::same_as<typename std::remove_cvref_t<OutputMdspan>::value_type, uni20::make_real_t<typename std::remove_cvref_t<MatrixMdspan>::value_type>>
void uni20::linalg::matrix_norm (BackendSelector &&selector, OutputMdspan &&output, MatrixMdspan &&matrix, MatrixNorm kind)
 Compute a bare mdspan matrix norm into a rank-zero output.
 
template<KernelBackendSelector BackendSelector, uni20::MutableScalarTensorView OutputTensor, uni20::RankedTensorView< 2 > MatrixTensor>
requires uni20::RealOrComplex<uni20::tensor_element_t<MatrixTensor>> && std::same_as<uni20::tensor_element_t<OutputTensor>, uni20::make_real_t<uni20::tensor_element_t<MatrixTensor>>>
void uni20::linalg::matrix_norm (BackendSelector &&selector, OutputTensor &&output, MatrixTensor const &matrix, MatrixNorm kind)
 Compute a Tensor matrix norm into an existing real scalar Tensor.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
requires uni20::RealOrComplex<uni20::tensor_element_t<MatrixTensor>> && requires(MatrixTensor const& matrix) { uni20::norm(matrix); }
auto uni20::linalg::matrix_norm (MatrixTensor const &matrix, MatrixNorm kind)
 Return a storage-preserving rank-zero Tensor matrix norm using storage policy.
 
template<uni20::MutableScalarTensorView OutputTensor, uni20::RankedTensorView< 2 > MatrixTensor>
requires uni20::RealOrComplex<uni20::tensor_element_t<MatrixTensor>> && std::same_as<uni20::tensor_element_t<OutputTensor>, uni20::make_real_t<uni20::tensor_element_t<MatrixTensor>>>
void uni20::linalg::matrix_norm (OutputTensor &&output, MatrixTensor const &matrix, MatrixNorm kind)
 Compute a Tensor matrix norm using the operands' storage policy.
 
template<KernelBackendSelector BackendSelector, uni20::RankedMdspanLike< 2 > MatrixMdspan>
requires uni20::RealOrComplex<typename std::remove_cvref_t<MatrixMdspan>::value_type>
auto uni20::linalg::matrix_norm_host (BackendSelector &&selector, MatrixMdspan &&matrix, MatrixNorm kind) -> uni20::make_real_t< typename std::remove_cvref_t< MatrixMdspan >::value_type >
 Return a bare mdspan matrix norm as a host C++ scalar.
 
template<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > MatrixTensor>
requires uni20::RealOrComplex<uni20::tensor_element_t<MatrixTensor>>
auto uni20::linalg::matrix_norm_host (BackendSelector &&selector, MatrixTensor const &matrix, MatrixNorm kind) -> uni20::make_real_t< uni20::tensor_element_t< MatrixTensor > >
 Return a Tensor matrix norm as a host C++ scalar through an explicit selector.
 
template<uni20::RankedTensorView< 2 > MatrixTensor>
requires uni20::RealOrComplex<uni20::tensor_element_t<MatrixTensor>>
auto uni20::linalg::matrix_norm_host (MatrixTensor const &matrix, MatrixNorm kind) -> uni20::make_real_t< uni20::tensor_element_t< MatrixTensor > >
 Return a Tensor matrix norm as a host C++ scalar using storage policy.
 

Detailed Description

Dense matrix norm front ends over operation-tag dispatch.