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

Accessor-respecting reference CPU tensor contraction. More...

#include <uni20/common/trace.hpp>
#include <uni20/core/scalar_concepts.hpp>
#include <uni20/linalg/contraction_axes.hpp>
#include <uni20/mdspan/concepts.hpp>
#include <uni20/mdspan/diagonal_accessor.hpp>
#include <uni20/tensor/output.hpp>
#include <algorithm>
#include <array>
#include <concepts>
#include <cstddef>
#include <type_traits>
#include <utility>
Include dependency graph for linalg/cpu/contract.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
 
namespace  uni20::linalg::cpu
 

Concepts

concept  uni20::linalg::cpu::ContractionCompatible
 Report whether resolved mdspans support reference contraction expressions.
 

Functions

template<class OutputMdspan , uni20::Scalar Scalar, class LhsMdspan , class RhsMdspan , std::size_t LhsRank, std::size_t RhsRank, std::size_t ContractedRank>
requires ContractionCompatible<OutputMdspan, Scalar, LhsMdspan, RhsMdspan, LhsRank, RhsRank, ContractedRank>
void uni20::linalg::cpu::contract (OutputMdspan &output, Scalar alpha, LhsMdspan &lhs, RhsMdspan &rhs, Scalar beta, ContractionAxes< LhsRank, RhsRank, ContractedRank > const &axes)
 Execute a fixed-output pairwise contraction over resolved host mdspans.
 

Detailed Description

Accessor-respecting reference CPU tensor contraction.