3#ifndef pRC_CORE_TENSOR_VIEWS_PERMUTE_H
4#define pRC_CORE_TENSOR_VIEWS_PERMUTE_H
12 template<
class T,
class N,
class P,
class V>
15 template<
class T,
class N,
Index... Ps,
class V>
19 Assignable<T, N, Permute<T, N, Sequence<Index, Ps...>, V>>,
20 View<T, N, Permute<T, N, Sequence<Index, Ps...>, V>>>
34 using Base::operator=;
36 template<IsConvertible<Index>... Is>
37 requires(
sizeof...(Is) == Base::Dimension)
38 constexpr decltype(
auto)
operator()(Is
const... indices)
40 return this->call(indices...);
43 template<IsConvertible<Index>... Is>
44 requires(
sizeof...(Is) == Base::Dimension)
45 constexpr decltype(
auto)
operator()(Is
const... indices)
const
47 return this->call(indices...);
50 constexpr decltype(
auto)
operator()(
51 typename Base::Subscripts
const &subscripts)
54 [
this, &subscripts](
auto const... seq) ->
decltype(
auto)
56 return mA(subscripts[seq]...);
60 constexpr decltype(
auto)
operator()(
61 typename Base::Subscripts
const &subscripts)
const
64 [
this, &subscripts](
auto const... seq) ->
decltype(
auto)
66 return mA(subscripts[seq]...);
70 constexpr decltype(
auto)
operator[](
Index const index)
77 constexpr decltype(
auto)
operator[](
Index const index)
const
Definition gtest_unittest.cc:5120
Definition sequence.hpp:29
Definition assignable.hpp:21
Permute(X &&a)
Definition permute.hpp:29
Definition permute.hpp:13
Definition declarations.hpp:20
Definition concepts.hpp:28
Definition subscript.hpp:21
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 makeSeriesFor()
Definition sequence.hpp:399
std::conditional_t< B, T, F > Conditional
Definition basics.hpp:56
static constexpr auto getPermutation(Sequence< T, From, Froms... > const, Sequence< T, To, Tos... > const, Sequence< T, P, Ps... > const)
Definition sequence.hpp:673
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
Definition sequence.hpp:383