3#ifndef pRC_CORE_TENSOR_VIEWS_VIEW_H
4#define pRC_CORE_TENSOR_VIEWS_VIEW_H
14 template<
class T,
Size... Ns,
class F>
15 requires IsDefined<
Tensor<
T, Ns...>>
31 static constexpr auto size()
41 template<
class X, IsConvertible<Index>... Is>
56 template<IsConvertible<Index>... Is>
57 requires(
sizeof...(Is) == Dimension)
58 constexpr decltype(
auto)
operator()(Is
const... indices)
60 return (this->self())(indices...);
63 template<IsConvertible<Index>... Is>
64 requires(
sizeof...(Is) == Dimension)
65 constexpr decltype(
auto)
operator()(Is
const... indices)
const
67 return (this->self())(indices...);
70 constexpr decltype(
auto)
operator()(
Subscripts const &subscripts)
72 return (this->self())(subscripts);
75 constexpr decltype(
auto)
operator()(
Subscripts const &subscripts)
const
77 return (this->self())(subscripts);
80 constexpr decltype(
auto)
operator[](
Index const index)
83 return (this->self())[index];
86 constexpr decltype(
auto)
operator[](
Index const index)
const
89 return (this->self())[index];
92 explicit constexpr operator T()
93 requires(Dimension == 0)
98 explicit constexpr operator T() const
99 requires(Dimension == 0)
104 explicit constexpr operator Bool()
107 return static_cast<Bool>(
eval(*
this));
110 explicit constexpr operator Bool() const
113 return static_cast<Bool>(
eval(*
this));
124 template<IsConvertible<Index>... Is>
125 requires(
sizeof...(Is) == Dimension)
126 constexpr decltype(
auto)
call(Is
const... indices)
131 template<IsConvertible<Index>... Is>
132 requires(
sizeof...(Is) == Dimension)
133 constexpr decltype(
auto)
call(Is
const... indices)
const
142 [
this](
auto const &subscripts,
143 auto const... seq) ->
decltype(
auto)
145 return (*
this)(subscripts[seq]...);
154 [
this](
auto const &subscripts,
155 auto const... seq) ->
decltype(
auto)
157 return (*
this)(subscripts[seq]...);
Definition sequence.hpp:29
static constexpr Size Dimension
Definition sequence.hpp:47
static constexpr auto size()
Definition sequence.hpp:69
Definition subscripts.hpp:21
constexpr View & operator=(View const &)=delete
constexpr decltype(auto) call(Subscripts const &subscripts) const
Definition view.hpp:150
static constexpr auto size(Index const dimension)
Definition view.hpp:36
static constexpr auto size()
Definition view.hpp:31
constexpr decltype(auto) call(Is const ... indices)
Definition view.hpp:126
constexpr decltype(auto) call(Is const ... indices) const
Definition view.hpp:133
constexpr View(View const &)=default
constexpr decltype(auto) call(Subscripts const &subscripts)
Definition view.hpp:138
static constexpr auto Single(X &&value, Subscripts const &subscripts)
Definition view.hpp:50
constexpr View(View &&)=default
constexpr View & operator=(View &&)=delete
Definition declarations.hpp:20
static constexpr auto Single(X &&value, Is const ... indices)
Definition tensor.hpp:51
Definition concepts.hpp:37
Definition concepts.hpp:28
Definition subscript.hpp:21
pRC::Float<> T
Definition externs_nonTT.hpp:1
int value
Definition gmock-actions_test.cc:1714
Definition declarations.hpp:18
bool Bool
Definition basics.hpp:29
Size Index
Definition basics.hpp:32
std::size_t Size
Definition basics.hpp:31
static constexpr auto makeSeriesFor()
Definition sequence.hpp:399
Tensor(TensorViews::View< T, Sizes< Ns... >, F > const &) -> Tensor< T, Ns... >
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
Definition gtest_pred_impl_unittest.cc:54