3#ifndef pRC_CORE_TENSOR_FUNCTIONS_CHIP_H
4#define pRC_CORE_TENSOR_FUNCTIONS_CHIP_H
12 template<
Index... Ds,
class X, IsConvertible<Index>... Is,
14 requires(
sizeof...(Is) ==
sizeof...(Ds)) &&
15 requires {
chip<Ds...>(
typename R::Sizes()); }
16 static inline constexpr auto chip(X &&a, Is
const... indices)
20 if constexpr(
sizeof...(Ds) == 0)
22 return view(forward<X>(a));
24 else if constexpr(
sizeof...(Ds) == 1)
29 decltype(
chip<D>(
typename R::Sizes())),
D, V>(
30 view(forward<X>(a)), indices...);
36 [&a](
auto const subscripts,
auto const... seq)
39 return chip<((S::value(seq) < S::value(0))
41 : S::value(seq) - 1)...>(
42 chip<S::value(0)>(a, subscripts[0]),
46 [indices...](
auto const... seq)
48 return Subscripts<seq...>(indices...);
pRC::Size const D
Definition CalculatePThetaTests.cpp:9
Definition sequence.hpp:29
static constexpr auto value(Index const index)
Definition sequence.hpp:49
Definition concepts.hpp:31
TN::Subscripts S
Definition externs_nonTT.hpp:9
Definition cholesky.hpp:10
static constexpr auto select(Sequence< T, Is... > const)
Definition sequence.hpp:610
Size Index
Definition basics.hpp:32
std::remove_reference_t< T > RemoveReference
Definition basics.hpp:41
static constexpr decltype(auto) view(X &&a)
Definition view.hpp:13
static constexpr auto makeRange()
Definition sequence.hpp:421
static constexpr auto chip(Sequence< T, Is... > const)
Definition sequence.hpp:584
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
Definition sequence.hpp:383
static constexpr decltype(auto) eval(X &&a)
Definition eval.hpp:12