|
cMHN 1.2
C++ library for learning MHNs with pRC
|
#include <prc/core/basic/functions/is_even.hpp>#include <prc/core/basic/functions/min.hpp>#include <prc/core/functors/max.hpp>#include <prc/core/functors/view.hpp>#include <prc/core/tensor/declarations.hpp>#include <prc/core/tensor/views/contract.hpp>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) |