cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
contract.hpp File Reference

Go to the source code of this file.

Namespaces

namespace  pRC
 

Functions

template<Index... Is, class X , IsTensorish R = RemoveReference<X>>
requires (isEven(sizeof...(Is)) && sizeof...(Is) <= R::Dimension) && (max(Is...) < R::Dimension) && (cut<2, 0>(select<Is...>(typename R::Sizes())) == cut<2, 1>(select<Is...>(typename R::Sizes())))
static constexpr auto pRC::contract (X &&a)
 
template<Index... Is, class XA , class XB , IsTensorish RA = RemoveReference<XA>, IsTensorish RB = RemoveReference<XB>>
requires (isEven(sizeof...(Is)) && sizeof...(Is) / 2 <= min(RA::Dimension, RB::Dimension)) && (reduce<Max>(cut<2, 0>(Sizes<Is...>())) < RA::Dimension && reduce<Max>(cut<2, 1>(Sizes<Is...>())) < RB::Dimension) && (expand(cut<2, 0>(Sizes<Is...>()), [](auto const... indices) { return select<indices...>(typename RA::Sizes()); }) == expand(cut<2, 1>(Sizes<Is...>()), [](auto const... indices) { return select<indices...>(typename RB::Sizes()); }))
static constexpr auto pRC::contract (XA &&a, XB &&b)