3#ifndef pRC_CORE_TENSOR_VIEWS_CONTRACT_H
4#define pRC_CORE_TENSOR_VIEWS_CONTRACT_H
12 template<
class T,
class N,
class S1,
class S2,
class V>
15 template<
class T,
class N,
Index... ILs,
Index... IRs,
class V>
33 template<IsConvertible<Index>... Is>
34 requires(
sizeof...(Is) == Base::Dimension)
35 constexpr decltype(
auto)
operator()(Is
const... indices)
40 [
this, &c, indices...](
auto const...
loop)
42 c +=
chip<ILs..., IRs...>(mA,
loop...,
loop...)(indices...);
48 template<IsConvertible<Index>... Is>
49 requires(
sizeof...(Is) == Base::Dimension)
50 constexpr decltype(
auto)
operator()(Is
const... indices)
const
55 [
this, &c, indices...](
auto const...
loop)
57 c +=
chip<ILs..., IRs...>(mA,
loop...,
loop...)(indices...);
63 constexpr decltype(
auto)
operator()(
64 typename Base::Subscripts
const &subscripts)
66 return this->call(subscripts);
69 constexpr decltype(
auto)
operator()(
70 typename Base::Subscripts
const &subscripts)
const
72 return this->call(subscripts);
75 constexpr decltype(
auto)
operator[](
Index const index) =
delete;
76 constexpr decltype(
auto)
operator[](
Index const index)
const =
delete;
Definition sequence.hpp:29
Contract(X &&a)
Definition contract.hpp:28
Definition contract.hpp:13
Definition declarations.hpp:20
Definition concepts.hpp:28
Definition declarations.hpp:36
pRC::Float<> T
Definition externs_nonTT.hpp:1
Definition declarations.hpp:18
Size Index
Definition basics.hpp:32
static constexpr auto loop(F &&f, Xs &&...args)
Definition loop.hpp:20
static constexpr auto chip(Sequence< T, Is... > const)
Definition sequence.hpp:584
static constexpr auto range(F &&f, Xs &&...args)
Definition range.hpp:18
Definition identity.hpp:11