3#ifndef pRC_TENSOR_TRAIN_OPERATOR_VIEWS_VIEW_H
4#define pRC_TENSOR_TRAIN_OPERATOR_VIEWS_VIEW_H
14 template<
class T,
Size... Ms,
Size... Ns,
Size... Rs,
class F>
30 static constexpr auto Dimension = N::Dimension;
34 requires(S::Dimension == Ranks::Dimension)
45 static constexpr auto m()
46 requires requires { M::size(); }
51 static constexpr auto m(
Index const dimension)
53 return M::size(dimension);
56 static constexpr auto n()
57 requires requires { N::size(); }
62 static constexpr auto n(
Index const dimension)
64 return N::size(dimension);
67 static constexpr auto size()
78 template<
class X, IsConvertible<Index>... Is>
80 static constexpr auto Single(X &&
value, Is const... indices)
104 constexpr decltype(
auto)
core()
106 return this->self().template core<C>();
110 constexpr decltype(
auto)
core()
const
112 return this->self().template core<C>();
115 template<IsConvertible<Index>... Is>
116 requires(
sizeof...(Is) == 2 * Dimension)
117 constexpr decltype(
auto)
operator()(Is
const... indices)
122 template<IsConvertible<Index>... Is>
123 requires(
sizeof...(Is) == 2 * Dimension)
124 constexpr decltype(
auto)
operator()(Is
const... indices)
const
129 constexpr decltype(
auto)
operator()(
Subscripts const &subscripts)
132 [
this, &subscripts](
auto const... seq) ->
decltype(
auto)
139 constexpr decltype(
auto)
operator()(
Subscripts const &subscripts)
const
142 [
this, &subscripts](
auto const... seq) ->
decltype(
auto)
152 [
this, &is, &js](
auto const... seq)
155 this->
template core<seq>(), is[seq], js[seq])...)(0, 0);
163 [
this, &is, &js](
auto const... seq)
166 this->
template core<seq>(), is[seq], js[seq])...)(0, 0);
171 requires requires {
typename pRC::Tensor<
T, Ms..., Ns...>; } &&
173 explicit constexpr operator X()
178 [
this, &full](
auto const... indices)
180 full(indices...) = (*this)(indices...);
187 requires requires {
typename pRC::Tensor<
T, Ms..., Ns...>; } &&
189 explicit constexpr operator X()
const
194 [
this, &full](
auto const... indices)
196 full(indices...) = (*this)(indices...);
214 template<
class T,
Size... Ms,
Size... Ns,
class R,
class F>
216 F>
const &) ->
Tensor<
T, Ms..., Ns...>;
Definition sequence.hpp:29
static constexpr auto size()
Definition sequence.hpp:69
Definition subscripts.hpp:21
static constexpr auto m(Index const dimension)
Definition view.hpp:51
constexpr decltype(auto) core() const
Definition view.hpp:110
static constexpr auto m()
Definition view.hpp:45
static constexpr auto n()
Definition view.hpp:56
static constexpr auto n(Index const dimension)
Definition view.hpp:62
static constexpr auto size(Index const dimension)
Definition view.hpp:73
constexpr decltype(auto) core()
Definition view.hpp:104
static constexpr auto Single(X &&value, SubscriptsM const &is, SubscriptsN const &js)
Definition view.hpp:96
constexpr View(View const &)=default
constexpr View & operator=(View const &)=delete
constexpr auto operator()(SubscriptsM const &is, SubscriptsN const &js) const
Definition view.hpp:159
constexpr View(View &&)=default
static constexpr auto Single(X &&value, Subscripts const &subscripts)
Definition view.hpp:88
static constexpr auto size()
Definition view.hpp:67
constexpr View & operator=(View &&)=delete
constexpr auto operator()(SubscriptsM const &is, SubscriptsN const &js)
Definition view.hpp:149
Definition declarations.hpp:25
Definition declarations.hpp:20
static constexpr auto size()
Definition tensor.hpp:39
Definition concepts.hpp:37
Definition concepts.hpp:28
pRC::Float<> T
Definition externs_nonTT.hpp:1
int value
Definition gmock-actions_test.cc:1714
Definition declarations.hpp:23
Operator(OperatorViews::View< T, M, N, Ranks, F > const &) -> Operator< T, M, N, Ranks >
Definition cholesky.hpp:10
Size Index
Definition basics.hpp:32
std::size_t Size
Definition basics.hpp:31
Tensor(TensorViews::View< T, Sizes< Ns... >, F > const &) -> Tensor< T, Ns... >
Sequence< Size, Ns... > Sizes
Definition sequence.hpp:100
static constexpr auto makeSeries()
Definition sequence.hpp:390
static constexpr decltype(auto) fold(X &&a)
Definition fold.hpp:14
static constexpr auto chip(Sequence< T, Is... > const)
Definition sequence.hpp:584
static constexpr auto range(F &&f, Xs &&...args)
Definition range.hpp:18
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
Definition sequence.hpp:383