3#ifndef pRC_TENSOR_TRAIN_TENSOR_VIEWS_VIEW_H
4#define pRC_TENSOR_TRAIN_TENSOR_VIEWS_VIEW_H
14 template<
class T,
Size... Ns,
Size... Rs,
class F>
27 static constexpr auto Dimension = N::Dimension;
31 requires(S::Dimension == Ranks::Dimension)
42 static constexpr auto n()
43 requires requires { N::size(); }
48 static constexpr auto n(
Index const dimension)
50 return N::size(dimension);
53 static constexpr auto size()
64 template<
class X, IsConvertible<Index>... Is>
66 static constexpr auto Single(X &&
value, Is const... indices)
80 constexpr decltype(
auto)
core()
82 return this->self().template core<C>();
86 constexpr decltype(
auto)
core()
const
88 return this->self().template core<C>();
91 template<IsConvertible<Index>... Is>
92 requires(
sizeof...(Is) == Dimension)
96 [
this, &indices...](
auto const... seq)
98 return fold<Mul, true, Direction::Backwards>(
99 chip<1>(this->template core<seq>(), indices)...)(0, 0);
103 template<IsConvertible<Index>... Is>
104 requires(
sizeof...(Is) == Dimension)
108 [
this, &indices...](
auto const... seq)
110 return fold<Mul, true, Direction::Backwards>(
111 chip<1>(this->template core<seq>(), indices)...)(0, 0);
115 constexpr decltype(
auto)
operator()(
Subscripts const &subscripts)
118 [
this, &subscripts](
auto const... seq) ->
decltype(
auto)
120 return (*
this)(subscripts[seq]...);
124 constexpr decltype(
auto)
operator()(
Subscripts const &subscripts)
const
127 [
this, &subscripts](
auto const... seq) ->
decltype(
auto)
129 return (*
this)(subscripts[seq]...);
134 requires requires {
typename pRC::Tensor<
T, Ns...>; } &&
136 explicit constexpr operator X()
141 [
this, &full](
auto const... indices)
143 full(indices...) = (*this)(indices...);
150 requires requires {
typename pRC::Tensor<
T, Ns...>; } &&
152 explicit constexpr operator X()
const
157 [
this, &full](
auto const... indices)
159 full(indices...) = (*this)(indices...);
177 template<
class T,
Size... Ns,
class R,
class F>
Definition sequence.hpp:29
static constexpr auto size()
Definition sequence.hpp:69
Definition subscripts.hpp:21
static constexpr auto size(Index const dimension)
Definition view.hpp:59
constexpr auto operator()(Is const ... indices) const
Definition view.hpp:105
constexpr auto operator()(Is const ... indices)
Definition view.hpp:93
constexpr View & operator=(View &&)=delete
constexpr View & operator=(View const &)=delete
static constexpr auto n()
Definition view.hpp:42
static constexpr auto Single(X &&value, Subscripts const &subscripts)
Definition view.hpp:73
static constexpr auto n(Index const dimension)
Definition view.hpp:48
constexpr decltype(auto) core()
Definition view.hpp:80
constexpr View(View const &)=default
static constexpr auto size()
Definition view.hpp:53
constexpr decltype(auto) core() const
Definition view.hpp:86
constexpr View(View &&)=default
Definition declarations.hpp:21
Definition declarations.hpp:16
static constexpr auto size()
Definition tensor.hpp:39
static constexpr auto Single(X &&value, Is const ... indices)
Definition tensor.hpp:51
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:19
Tensor(TensorViews::View< T, N, Ranks, F > const &) -> Tensor< T, 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 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