3#ifndef pRC_TENSOR_TRAIN_TENSOR_TENSOR_H
4#define pRC_TENSOR_TRAIN_TENSOR_TENSOR_H
16 requires(IsValue<T> || IsComplex<T>) &&
29 static constexpr auto Dimension = N::Dimension;
33 requires(S::Dimension == Ranks::Dimension)
44 static constexpr auto n()
45 requires requires { N::size(); }
50 static constexpr auto n(
Index const dimension)
52 return N::size(dimension);
55 static constexpr auto size()
66 template<
class X, IsConvertible<Index>... Is>
68 static constexpr auto Single(X &&
value, Is const... indices)
104 *
this = forward<X>(other);
111 view(*
this) = forward<X>(rhs);
116 constexpr decltype(
auto)
core() &&
118 return get<C>(move(mCores));
122 constexpr decltype(
auto)
core()
const &&
124 return get<C>(move(mCores));
128 constexpr decltype(
auto)
core() &
130 return get<C>(mCores);
134 constexpr decltype(
auto)
core()
const &
136 return get<C>(mCores);
139 template<IsConvertible<Index>... Is>
140 requires(
sizeof...(Is) == Dimension)
141 constexpr decltype(
auto)
operator()(Is
const... indices)
const
143 return view(*
this)(indices...);
146 constexpr decltype(
auto)
operator()(
Subscripts const &subscripts)
const
148 return view(*
this)(subscripts);
155 return *
this = *
this + forward<X>(rhs);
162 return *
this = *
this - forward<X>(rhs);
169 view(*this).applyOnTheLeft(forward<X>(lhs));
177 view(*this).applyOnTheRight(forward<X>(rhs));
185 view(*
this) *= forward<X>(rhs);
193 return *
this = *
this / forward<X>(rhs);
197 requires requires {
typename pRC::Tensor<
T, Ns...>; } &&
199 explicit constexpr operator X()
const
205 template<
Index... seq>
217 template<
class T,
class N,
class Ranks,
class F>
223 template<
class T,
Size... Ns,
class R>
Definition sequence.hpp:29
static constexpr Size Dimension
Definition sequence.hpp:47
static constexpr auto size()
Definition sequence.hpp:69
Definition subscripts.hpp:21
Definition enumerate.hpp:20
Definition declarations.hpp:21
constexpr Tensor(Tensor &&)=default
constexpr auto & operator*=(X &&rhs) &
Definition tensor.hpp:183
constexpr auto & applyOnTheLeft(X &&lhs) &
Definition tensor.hpp:167
constexpr Tensor(Tensor const &)=default
constexpr auto & operator=(X &&rhs) &
Definition tensor.hpp:109
constexpr Tensor()=default
constexpr auto & applyOnTheRight(X &&rhs) &
Definition tensor.hpp:175
static constexpr auto n()
Definition tensor.hpp:44
constexpr Tensor & operator=(Tensor &&) &=default
constexpr decltype(auto) core() &&
Definition tensor.hpp:116
constexpr auto & operator/=(X &&rhs) &
Definition tensor.hpp:191
static constexpr auto size()
Definition tensor.hpp:55
static constexpr auto Single(X &&value, Subscripts const &subscripts)
Definition tensor.hpp:75
constexpr decltype(auto) core() const &&
Definition tensor.hpp:122
constexpr decltype(auto) core() &
Definition tensor.hpp:128
static constexpr auto n(Index const dimension)
Definition tensor.hpp:50
constexpr Tensor(X &&other)
Definition tensor.hpp:102
constexpr auto & operator-=(X &&rhs) &
Definition tensor.hpp:160
constexpr decltype(auto) core() const &
Definition tensor.hpp:134
static constexpr auto size(Index const dimension)
Definition tensor.hpp:61
constexpr auto & operator+=(X &&rhs) &
Definition tensor.hpp:153
constexpr Tensor & operator=(Tensor const &) &=default
Definition declarations.hpp:16
static constexpr auto size()
Definition tensor.hpp:39
Definition concepts.hpp:40
Definition concepts.hpp:37
Definition concepts.hpp:31
Definition concepts.hpp:28
pRC::Float<> T
Definition externs_nonTT.hpp:1
int value
Definition gmock-actions_test.cc:1714
Definition from_cores.hpp:11
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
std::tuple< Ts... > Tuple
Definition basics.hpp:23
static constexpr decltype(auto) view(X &&a)
Definition view.hpp:13
Tensor(TensorViews::View< T, Sizes< Ns... >, F > const &) -> Tensor< T, Ns... >
static constexpr auto makeSeries()
Definition sequence.hpp:390
RemoveConst< RemoveReference< T > > RemoveConstReference
Definition basics.hpp:47
static constexpr auto identity()
Definition identity.hpp:13