3#ifndef pRC_CORE_TENSOR_OPERATOR_VIEWS_FROM_DIAGONAL_H
4#define pRC_CORE_TENSOR_OPERATOR_VIEWS_FROM_DIAGONAL_H
11 template<
class T,
class N,
class V>
12 requires IsTensorView<V>
26 template<IsConvertible<Index>... Is>
27 requires(
sizeof...(Is) == Base::Dimension)
28 constexpr decltype(
auto)
operator()(Is
const... indices)
30 return this->call(indices...);
33 template<IsConvertible<Index>... Is>
34 requires(
sizeof...(Is) == Base::Dimension)
35 constexpr decltype(
auto)
operator()(Is
const... indices)
const
37 return this->call(indices...);
40 constexpr decltype(
auto)
operator()(
41 typename Base::Subscripts
const &subscripts)
44 [
this, &subscripts](
auto const... seq) ->
T
46 if(((subscripts[seq] ==
47 subscripts[Base::Dimension / 2 + seq]) &&
50 return mA(subscripts[seq]...);
57 constexpr decltype(
auto)
operator()(
58 typename Base::Subscripts
const &subscripts)
const
61 [
this, &subscripts](
auto const... seq) ->
T
63 if(((subscripts[seq] ==
64 subscripts[Base::Dimension / 2 + seq]) &&
67 return mA(subscripts[seq]...);
74 constexpr decltype(
auto)
operator[](
Index const index) =
delete;
75 constexpr decltype(
auto)
operator[](
Index const index)
const =
delete;
Definition from_diagonal.hpp:14
FromDiagonal(X &&a)
Definition from_diagonal.hpp:21
Definition declarations.hpp:20
Definition concepts.hpp:28
Definition declarations.hpp:18
Size Index
Definition basics.hpp:32
static constexpr auto makeSeries()
Definition sequence.hpp:390
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
Definition sequence.hpp:383
static constexpr auto zero()
Definition zero.hpp:12