3#ifndef pRC_TENSOR_TRAIN_OPERATOR_OPERATOR_H
4#define pRC_TENSOR_TRAIN_OPERATOR_OPERATOR_H
19 template<
class T,
class M,
class N,
class Ranks,
class F>
56 template<
class V, If<IsValue<V>> = 0>
74 template<
class E =
typename M::IsLinearizable, If<E> = 0>
75 static constexpr auto m()
85 template<
class E =
typename N::IsLinearizable, If<E> = 0>
86 static constexpr auto n()
96 template<
class E =
typename Sizes::IsLinearizable, If<E> = 0>
97 static constexpr auto size()
114 template<
class X, If<IsConstructible<T, X>> = 0>
115 static inline constexpr auto Single(
X &&value,
121 return Single(forward<X>(value),
127 template<
class X, If<IsConstructible<T, X>> = 0>
131 auto const f = [
is,
js, value =
T(forward<X>(value))]<
Index C>()
170 constexpr decltype(
auto)
core() &&
176 constexpr decltype(
auto)
core()
const &&
182 constexpr decltype(
auto)
core() &
188 constexpr decltype(
auto)
core()
const &
211 template<
class X, If<IsInvocable<Add, Operator &, X>> = 0>
217 template<
class X, If<IsInvocable<Sub, Operator &, X>> = 0>
223 template<
class X, If<IsInvocable<Mul, X, Operator &>> = 0>
226 view(*this).applyOnTheLeft(forward<X>(
lhs));
230 template<
class X, If<IsInvocable<Mul, Operator &, X>> = 0>
233 view(*this).applyOnTheRight(forward<X>(
rhs));
237 template<
class X, If<IsInvocable<Mul, Operator &, X>> = 0>
244 template<
class X, If<IsInvocable<Div, Operator &, X>> = 0>
263 return tuple<Cores<seq>...>{};
pRC::Constant< Size, W > Width
Definition float.hpp:39
Float< W > Value
Definition float.hpp:31
False<> IsComplexified
Definition float.hpp:43
True<> Signed
Definition float.hpp:35
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 sequence.hpp:34
Definition subscripts.hpp:20
Definition enumerate.hpp:19
Definition type_traits.hpp:37
typename T::Value Value
Definition operator.hpp:55
static constexpr auto size()
Definition operator.hpp:97
constexpr auto & operator/=(X &&rhs) &
Definition operator.hpp:245
constexpr auto & operator-=(X &&rhs) &
Definition operator.hpp:218
static constexpr auto Single(X &&value, Is const ... indices)
Definition operator.hpp:109
constexpr Operator & operator=(Operator &&) &=default
static constexpr auto Single(X &&value, SubscriptsM const &is, SubscriptsN const &js)
Definition operator.hpp:128
constexpr decltype(auto) core() &&
Definition operator.hpp:170
constexpr decltype(auto) core() const &&
Definition operator.hpp:176
constexpr auto & applyOnTheLeft(X &&lhs) &
Definition operator.hpp:224
constexpr Operator(X &&other)
Definition operator.hpp:156
constexpr auto & operator=(X &&rhs) &
Definition operator.hpp:163
static constexpr auto size(Index const dimension)
Definition operator.hpp:102
constexpr decltype(auto) core() &
Definition operator.hpp:182
typename T::IsComplexified IsComplexified
Definition operator.hpp:70
constexpr Operator()=default
static constexpr auto Single(X &&value, Subscripts const &subscripts)
Definition operator.hpp:115
constexpr Operator(Operator &&)=default
constexpr Operator & operator=(Operator const &) &=default
static constexpr auto m()
Definition operator.hpp:75
constexpr decltype(auto) core() const &
Definition operator.hpp:188
constexpr auto & applyOnTheRight(X &&rhs) &
Definition operator.hpp:231
typename T::Width Width
Definition operator.hpp:65
constexpr Operator(Operator const &)=default
constexpr auto & operator+=(X &&rhs) &
Definition operator.hpp:212
typename T::Signed Signed
Definition operator.hpp:60
constexpr auto & operator*=(X &&rhs) &
Definition operator.hpp:238
constexpr decltype(auto) operator()(Is const ... indices) const
Definition operator.hpp:195
typename N::Dimension Dimension
Definition operator.hpp:40
static constexpr auto m(Index const dimension)
Definition operator.hpp:80
static constexpr auto n()
Definition operator.hpp:86
static constexpr auto n(Index const dimension)
Definition operator.hpp:91
Definition type_traits.hpp:17
static constexpr auto size()
Definition tensor.hpp:65
TN::Subscripts S
Definition externs_nonTT.hpp:9
pRC::Float<> T
Definition externs_nonTT.hpp:1
Definition from_cores.hpp:11
Definition cholesky.hpp:18
static constexpr auto makeConstantSequence()
Definition sequence.hpp:402
Size Index
Definition type_traits.hpp:21
std::size_t Size
Definition type_traits.hpp:20
static constexpr X view(X &&a)
Definition view.hpp:12
std::disjunction< Bs... > Any
Definition type_traits.hpp:80
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71
Tensor(TensorViews::View< T, Sizes< Ns... >, F > const &) -> Tensor< T, Ns... >
static constexpr auto makeSeries()
Definition sequence.hpp:351
RemoveConst< RemoveReference< T > > RemoveConstReference
Definition type_traits.hpp:62
std::conjunction< Bs... > All
Definition type_traits.hpp:77
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
Definition sequence.hpp:344
Any< IsFloat< T >, IsInteger< T > > IsValue
Definition type_traits.hpp:72
Definition type_traits.hpp:15