Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Functions
contract.hpp File Reference
#include <uni20/core/scalar_concepts.hpp>
#include <uni20/mdspan/mdspan.hpp>
#include <uni20/mdspan/strides.hpp>
#include <uni20/kernel/cpu/contract.hpp>
Include dependency graph for kernel/contract.hpp:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::kernel
 

Functions

template<typename T , StridedMdspanLike AType, StridedMdspanLike BType, std::size_t N, typename U , MutableStridedMdspanLike CType>
requires (AType::rank() + BType::rank() == CType::rank() + 2 * N) && DefaultAccessorMdspanLike<AType> && DefaultAccessorMdspanLike<BType> && DefaultAccessorMdspanLike<CType>
void uni20::kernel::contract (T const &alpha, AType A, BType B, std::array< std::pair< std::size_t, std::size_t >, N > const &contractDims, U const &beta, CType C)
 
template<typename T , StridedMdspanLike AType, StridedMdspanLike BType, typename U , MutableStridedMdspanLike CType, std::size_t N>
requires DefaultAccessorMdspanLike<AType> && DefaultAccessorMdspanLike<BType> && DefaultAccessorMdspanLike<CType>
void uni20::kernel::contract (T const &alpha, AType A, BType B, std::pair< std::size_t, std::size_t > const (&dims)[N], U const &beta, CType C)