Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
uni20::DiagonalMdspecLike Concept Reference

Full logical mdspec with a rank-one view of its generalized diagonal components. More...

#include <concepts.hpp>

Concept definition

template<class S>
concept uni20::DiagonalMdspecLike = MdspecLike<std::remove_cvref_t<S>> && requires(std::remove_cvref_t<S> const& span) {
requires RankedMdspecLike<decltype(diagonal_components(span)), 1>;
requires std::same_as<typename std::remove_cvref_t<decltype(diagonal_components(span))>::element_type,
typename std::remove_cvref_t<S>::element_type>;
}
Full logical mdspec with a rank-one view of its generalized diagonal components.
Definition mdspan/concepts.hpp:465
Mdspan metadata whose data handle is immediate or available through a data descriptor.
Definition mdspan/concepts.hpp:304
An mdspec-like type with a specified static rank.
Definition mdspan/concepts.hpp:454
constexpr auto diagonal_components(stdex::mdspan< ElementType, Extents, LayoutPolicy, diagonal_accessor< ElementType, AccessorExtents > > const &span)
Expose the physically stored values of a generalized-diagonal mdspan.
Definition diagonal_accessor.hpp:252
std::size_t span
Definition presentation.cpp:2017

Detailed Description

Full logical mdspec with a rank-one view of its generalized diagonal components.

The ordinary mdspec interface presents the complete rank-N tensor, including structural zeros away from equal logical indices. diagonal_components(span) exposes the physical rank-one values used by structure-aware kernels.

Template Parameters
SCandidate mdspec-like type.