3#ifndef pRC_TENSOR_TRAIN_OPERATOR_VIEWS_VIEW_H
4#define pRC_TENSOR_TRAIN_OPERATOR_VIEWS_VIEW_H
23 static_assert(
sizeof...(Ms) ==
sizeof...(
Ns));
24 static_assert(
sizeof...(Ns) - 1 ==
sizeof...(
Rs));
26 "Operator<T, Sizes<Ns...>>: T has to be of type Value or Complex.");
54 using Value =
typename T::Value;
55 template<
class V, If<IsValue<V>> = 0>
64 using Width =
typename T::Width;
73 template<
class E =
typename M::IsLinearizable, If<E> = 0>
74 static constexpr auto m()
84 template<
class E =
typename N::IsLinearizable, If<E> = 0>
85 static constexpr auto n()
95 template<
class E =
typename Sizes::IsLinearizable, If<E> = 0>
96 static constexpr auto size()
114 template<
class X, If<IsConstructible<T, X>> = 0>
115 static inline constexpr auto Single(
X &&value,
122 template<
class X, If<IsConstructible<T, X>> = 0>
131 constexpr decltype(
auto)
core()
133 return this->self().template
core<C>();
137 constexpr decltype(
auto)
core()
const
139 return this->self().template
core<C>();
142 template<
class...
Is,
149 template<
class...
Is,
179 [
this, &
is, &
js](
auto const...
seq)
190 [
this, &
is, &
js](
auto const...
seq)
233 constexpr View(View
const &) =
default;
234 constexpr View(View &&) =
default;
235 constexpr View &operator=(View
const &) =
delete;
236 constexpr View &operator=(View &&) =
delete;
Definition sequence.hpp:56
static constexpr auto size()
Definition sequence.hpp:88
Constant< Size, sizeof...(Ns)> Dimension
Definition sequence.hpp:74
Constant< Bool, linearizable()> IsLinearizable
Definition sequence.hpp:75
Definition subscripts.hpp:20
static constexpr auto m(Index const dimension)
Definition view.hpp:79
constexpr decltype(auto) core() const
Definition view.hpp:137
typename T::Value Value
Definition view.hpp:54
T Type
Definition view.hpp:50
typename T::Width Width
Definition view.hpp:64
static constexpr auto n(Index const dimension)
Definition view.hpp:90
static constexpr auto size(Index const dimension)
Definition view.hpp:101
constexpr decltype(auto) core()
Definition view.hpp:131
static constexpr auto Single(X &&value, Subscripts const &subscripts)
Definition view.hpp:115
static constexpr auto m()
Definition view.hpp:74
static constexpr auto Single(X &&value, SubscriptsM const &is, SubscriptsN const &js)
Definition view.hpp:123
static constexpr auto size()
Definition view.hpp:96
constexpr auto operator()(SubscriptsM const &is, SubscriptsN const &js) const
Definition view.hpp:186
static constexpr auto Single(X &&value, Is const ... indices)
Definition view.hpp:108
constexpr decltype(auto) operator()(Is const ... indices)
Definition view.hpp:144
typename T::Signed Signed
Definition view.hpp:59
typename N::Dimension Dimension
Definition view.hpp:39
typename T::IsComplexified IsComplexified
Definition view.hpp:69
static constexpr auto n()
Definition view.hpp:85
constexpr decltype(auto) operator()(Is const ... indices) const
Definition view.hpp:151
constexpr auto operator()(SubscriptsM const &is, SubscriptsN const &js)
Definition view.hpp:176
Definition type_traits.hpp:37
Definition type_traits.hpp:17
Class storing tensors.
Definition tensor.hpp:44
static constexpr auto size()
Returns the number of entries of the Tensor class.
Definition tensor.hpp:84
Definition type_traits.hpp:35
Definition cholesky.hpp:18
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
std::size_t Size
Definition type_traits.hpp:20
static constexpr auto range(F &&f, Xs &&...args)
Definition range.hpp:16
static constexpr auto makeSeries()
Definition sequence.hpp:361
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71
static constexpr Conditional< IsSatisfied< C >, RemoveConstReference< X >, X > copy(X &&a)
Definition copy.hpp:13
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
forwards the values in a pRC::Sequence to a function as parameters
Definition sequence.hpp:354
Size Index
Definition type_traits.hpp:21
Definition type_traits.hpp:15