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

Normalized axis metadata for fixed-rank pairwise tensor contractions. More...

#include <uni20/common/trace.hpp>
#include <uni20/core/types.hpp>
#include <uni20/mdspan/mdspan.hpp>
#include <algorithm>
#include <array>
#include <cstddef>
#include <utility>
Include dependency graph for contraction_axes.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::linalg::ContractionAxes< LhsRank, RhsRank, ContractedRank >
 Canonical contracted and surviving axes for two fixed-rank operands. More...
 

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 

Functions

template<std::size_t LhsRank, std::size_t RhsRank, std::size_t ContractedRank>
constexpr bool uni20::linalg::contraction_axes_are_valid (ContractionAxes< LhsRank, RhsRank, ContractedRank > const &axes) noexcept
 Return whether contraction axes form canonical partitions of both inputs.
 
template<class Lhs , class Rhs , std::size_t LhsRank, std::size_t RhsRank, std::size_t ContractedRank>
auto uni20::linalg::contraction_output_extents (Lhs const &lhs, Rhs const &rhs, ContractionAxes< LhsRank, RhsRank, ContractedRank > const &axes) -> stdex::dextents< uni20::index_type, ContractionAxes< LhsRank, RhsRank, ContractedRank >::output_rank >
 Validate paired extents and return the canonical contraction output shape.
 
template<std::size_t LhsRank, std::size_t RhsRank, std::size_t ContractedRank>
auto uni20::linalg::make_contraction_axes (std::array< std::pair< std::size_t, std::size_t >, ContractedRank > requested_axes) -> ContractionAxes< LhsRank, RhsRank, ContractedRank >
 Normalize and validate a fixed-size array of contraction-axis pairs.
 

Detailed Description

Normalized axis metadata for fixed-rank pairwise tensor contractions.