3#ifndef pRC_CORE_TENSOR_VIEWS_CHIP_H
4#define pRC_CORE_TENSOR_VIEWS_CHIP_H
13 template<
class T,
class N, Index D,
class V>
16 Assignable<T, N, Chip<T, N, D, V>>, View<T, N, Chip<T, N, D, V>>>
25 template<
class X, If<IsSame<V, RemoveReference<X>>> = 0>
32 if(!(mIndex < V::size(
D)))
39 using Base::operator=;
42 If<
IsSatisfied<(
sizeof...(Is) ==
typename Base::Dimension())>> = 0>
51 If<
IsSatisfied<(
sizeof...(Is) ==
typename Base::Dimension())>> = 0>
59 constexpr decltype(
auto)
operator()(
65 constexpr decltype(
auto)
operator()(
66 typename Base::Subscripts
const &
subscripts)
const
71 template<
class E = IsSubscriptable<V>,
72 class L1 = IsSatisfied<(D ==
typename Base::Dimension())>,
73 class L2 = IsSatisfied<(D == 0)>, If<All<E, Any<L1, L2>>> = 0>
74 constexpr decltype(
auto)
operator[](
Index const index)
78 return mA[V::size(0) * index + mIndex];
82 return mA[Base::size() * mIndex + index];
86 template<
class E = IsSubscriptable<V>,
87 class L1 = IsSatisfied<(D ==
typename Base::Dimension())>,
88 class L2 = IsSatisfied<(D == 0)>, If<All<E, Any<L1, L2>>> = 0>
89 constexpr decltype(
auto)
operator[](
Index const index)
const
93 return mA[V::size(0) * index + mIndex];
97 return mA[Base::size() * mIndex + index];
103 constexpr decltype(
auto)
operator()(
111 constexpr decltype(
auto)
operator()(
112 Indices<
typename Base::Dimension{}>
const &
indices,
Definition indices.hpp:15
Definition sequence.hpp:34
Definition assignable.hpp:22
constexpr decltype(auto) operator()(Is const ... indices)
Definition chip.hpp:43
constexpr decltype(auto) operator()(Is const ... indices) const
Definition chip.hpp:52
Chip(X &&a, Index const index)
Definition chip.hpp:26
Definition type_traits.hpp:32
static void error(Xs &&...args)
Definition log.hpp:14
Definition diagonal.hpp:11
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
static constexpr auto makeRange()
Definition sequence.hpp:389
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71
static constexpr Conditional< IsSatisfied< C >, RemoveConstReference< X >, X > copy(X &&a)
Definition copy.hpp:13
constexpr auto cDebugLevel
Definition config.hpp:46
Sequence(std::integer_sequence< T, Seq... > const) -> Sequence< T, Seq... >
std::conditional_t< B{}, T, F > Conditional
Definition type_traits.hpp:131
Size Index
Definition type_traits.hpp:21