3#ifndef pRC_CORE_TENSOR_VIEWS_VIEW_H
4#define pRC_CORE_TENSOR_VIEWS_VIEW_H
17 template<
class T,
Size...
Ns,
class F>
21 "Tensor<T, Ns..>: T has to be of type Value, Complex, or Bool.");
37 template<
class V, If<IsValue<V>> = 0>
53 template<
class E =
typename Sizes::IsLinearizable, If<E> = 0>
54 static constexpr auto size()
72 template<
class X, If<IsConstructible<T, X>> = 0>
83 return (this->self())(
indices...);
90 return (this->self())(
indices...);
103 template<
class V = F, If<IsSubscriptable<V>> = 0>
104 constexpr decltype(
auto)
operator[](
Index const index)
106 return (this->self())[index];
109 template<
class V = F, If<IsSubscriptable<V>> = 0>
110 constexpr decltype(
auto)
operator[](
Index const index)
const
112 return (this->self())[index];
115 template<
class E = IsSatisfied<(Dimension() == 0)>, If<E> = 0>
116 explicit constexpr operator T()
121 template<
class E = IsSatisfied<(Dimension() == 0)>, If<E> = 0>
122 explicit constexpr operator T()
const
145 auto const...
seq) ->
decltype(
auto)
157 auto const...
seq) ->
decltype(
auto)
Float< W > NonComplex
Definition float.hpp:45
pRC::Constant< Size, W > Width
Definition float.hpp:39
Float< W > Value
Definition float.hpp:31
Complex< Float< W > > Complexify
Definition float.hpp:44
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
Definition subscripts.hpp:20
constexpr View & operator=(View const &)=delete
static constexpr auto Single(X &&value, Is const ... indices)
Definition view.hpp:67
constexpr decltype(auto) call(Subscripts const &subscripts) const
Definition view.hpp:152
typename T::Width Width
Definition view.hpp:45
static constexpr auto Single(X &&value, Subscripts const &subscripts)
Definition view.hpp:73
static constexpr auto size(Index const dimension)
Definition view.hpp:59
constexpr View()
Definition view.hpp:133
typename T::IsComplexified IsComplexified
Definition view.hpp:49
static constexpr auto size()
Definition view.hpp:54
constexpr View(View const &)=default
constexpr decltype(auto) operator()(Is const ... indices) const
Definition view.hpp:88
typename T::Signed Signed
Definition view.hpp:40
constexpr decltype(auto) call(Subscripts const &subscripts)
Definition view.hpp:140
constexpr decltype(auto) operator()(Is const ... indices)
Definition view.hpp:81
constexpr View(View &&)=default
constexpr View & operator=(View &&)=delete
typename T::Value Value
Definition view.hpp:36
typename Sizes::Dimension Dimension
Definition view.hpp:34
Definition type_traits.hpp:32
static constexpr auto Single(X &&value, Is const ... indices)
Definition tensor.hpp:78
pRC::Float<> T
Definition externs_nonTT.hpp:1
Definition diagonal.hpp:11
static constexpr auto makeConstantSequence()
Definition sequence.hpp:402
Size Index
Definition type_traits.hpp:21
std::size_t Size
Definition type_traits.hpp:20
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
Definition sequence.hpp:344
std::is_invocable< F, Args... > IsInvocable
Definition type_traits.hpp:134
Definition type_traits.hpp:15