31template <KernelBackendSelector BackendSelector, uni20::MutableRankedMdspanLike<0> OutputMdspan,
32 uni20::RankedMdspanLike<2> MatrixMdspan>
34 std::same_as<typename std::remove_cvref_t<OutputMdspan>::value_type,
38 auto output_descriptor = std::forward<OutputMdspan>(output);
45template <KernelBackendSelector BackendSelector, uni20::RankedMdspanLike<2> MatrixMdspan>
64 std::same_as<uni20::tensor_element_t<OutputTensor>,
75template <uni20::MutableScalarTensorView OutputTensor, uni20::RankedTensorView<2> MatrixTensor>
77 std::same_as<uni20::tensor_element_t<OutputTensor>,
83 matrix_norm(selector, std::forward<OutputTensor>(output), matrix, kind);
90template <KernelBackendSelector BackendSelector, uni20::RankedTensorView<2> MatrixTensor>
92 requires(MatrixTensor
const& matrix) {
uni20::norm(matrix); }
98 matrix_norm(std::forward<BackendSelector>(selector), result, matrix, kind);
103template <uni20::RankedTensorView<2> MatrixTensor>
105 requires(MatrixTensor
const& matrix) {
uni20::norm(matrix); }
117template <KernelBackendSelector BackendSelector, uni20::RankedTensorView<2> MatrixTensor>
123 result_type result{};
130template <uni20::RankedTensorView<2> MatrixTensor>
Accessor-respecting reference CPU matrix norms.
LAPACK backend for dense matrix norms.
MutableTensorView whose writable mdspec has rank zero.
Definition tensor/concepts.hpp:175
TensorView whose readable mdspec has a specified static rank.
Definition tensor/concepts.hpp:149
Concept for types that are either real or complex.
Definition scalar_concepts.hpp:87
Operation-tag backend dispatch over tensor-view operands.
typename make_real< T >::type make_real_t
Alias for the underlying real-valued type of T.
Definition scalar_traits.hpp:168
Mdspan concept and accessor extensions for Uni20.
Definition linalg/async.hpp:28
auto matrix_norm_host(BackendSelector selector, async::Async< MatrixTensor > const &matrix, MatrixNorm kind)
Schedule a dense matrix norm returning a host C++ scalar through an explicit selector.
Definition async/matrix_norm.hpp:167
constexpr auto select_backend(Operation const &operation, FirstTensor const &, RestTensors const &...)
Select the default backend list for an operation on Tensor operands.
Definition backend_selector.hpp:252
void matrix_norm(BackendSelector selector, async::Async< OutputTensor > &output, async::Async< MatrixTensor > const &matrix, MatrixNorm kind)
Schedule a matrix norm into an explicit async scalar Tensor.
Definition async/matrix_norm.hpp:126
void dispatch_kernel(BackendSelector &&selector, Op op, Args &&... args)
Normalize a selector and dispatch or report that every eligible backend declined.
Definition dispatch.hpp:374
MatrixNorm
Matrix norm selected by matrix_norm_op.
Definition operation_tags.hpp:119
constexpr uninitialized_t uninitialized
Explicit allocation tag for overwrite outputs and scratch space.
Definition common/initialization.hpp:22
mpreal norm(mpcomplex const &z)
Definition mpcomplex.hpp:494
constexpr decltype(auto) mdspec_of(Tensor &tensor) noexcept(noexcept(tensor.mdspec()))
Return a tensor's immediate or descriptor-backed multidimensional metadata.
Definition tensor/concepts.hpp:50
constexpr auto make_const_mdspan(Span const &span)
Build a read-only mdspan descriptor over the same storage and mapping.
Definition mdspan/concepts.hpp:372
Dense rank-two matrix norm operation tag.
Definition operation_tags.hpp:135
MatrixNorm kind
Definition operation_tags.hpp:137
Concepts for tensor-level objects that resolve mdspan kernel operands.
Tensor sums, inner products, and Euclidean norms with explicit result residency.