3#ifndef pRC_CORE_CONTAINER_SUBSCRIPTS_H
4#define pRC_CORE_CONTAINER_SUBSCRIPTS_H
25 template<
class E =
typename Sizes::IsLinearizable, If<E> = 0>
26 static constexpr auto size()
51 template<Index D = Dimension(), If<IsSatisfied<(D == 0)>> = 0>
57 template<Index D = Dimension(), If<IsSatisfied<(D > 1)>> = 0,
65 [
this](
auto index,
auto const...
seq)
75 template<
class E =
typename Sizes::IsLinearizable, If<E> = 0>
76 explicit constexpr operator Index()
const
122 auto lhsE = mSubscripts[
i - 1];
150 [
this](
auto const...
seq)
158 return *
this %=
Sizes();
161 template<
class X, If<IsInvocable<Add, Subscripts &, X>> = 0>
167 template<
class X, If<IsInvocable<Sub, Subscripts &, X>> = 0>
173 template<
class X, If<IsInvocable<Mul, Subscripts &, X>> = 0>
179 template<
class X, If<IsInvocable<Div, Subscripts &, X>> = 0>
185 template<
class X, If<IsInvocable<Mod, Subscripts &, X>> = 0>
196 if(!(index <
size()))
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
constexpr Subscripts & operator=(Subscripts const &) &=default
static constexpr auto size()
Definition subscripts.hpp:26
constexpr decltype(auto) operator[](Index const dimension) &&
Definition subscripts.hpp:97
constexpr auto & operator/=(X &&rhs) &
Definition subscripts.hpp:180
constexpr auto isOutOfRange() const
Definition subscripts.hpp:147
constexpr auto & operator+=(X &&rhs) &
Definition subscripts.hpp:162
constexpr auto & operator-=(X &&rhs) &
Definition subscripts.hpp:168
constexpr Subscripts(Index const index)
Definition subscripts.hpp:59
typename Sizes::Dimension Dimension
Definition subscripts.hpp:23
constexpr Subscripts()=default
constexpr Subscripts & operator=(Subscripts &&) &=default
constexpr Subscripts(Ss const ... subscripts)
Definition subscripts.hpp:46
constexpr decltype(auto) periodize() &
Definition subscripts.hpp:156
constexpr Subscripts(Index const index)
Definition subscripts.hpp:52
constexpr auto & operator%=(X &&rhs) &
Definition subscripts.hpp:186
static constexpr auto size(Index const dimension)
Definition subscripts.hpp:31
constexpr Subscripts(Subscripts &&)=default
constexpr Subscripts(Subscripts const &)=default
pRC::Sizes< Ns... > Sizes
Definition subscripts.hpp:22
constexpr bool operator<(const Subscripts &rhs) const
Definition subscripts.hpp:117
constexpr auto & operator*=(X &&rhs) &
Definition subscripts.hpp:174
static void error(Xs &&...args)
Definition log.hpp:14
Definition cholesky.hpp:18
static constexpr auto arg(Complex< T > const &a)
Definition arg.hpp:12
CommonArray< Allocation::Stack, T, Ns... > StackArray
Definition type_traits.hpp:52
static constexpr auto rotate(Sequence< T, First, Is... > const)
Definition sequence.hpp:470
static constexpr auto reverse(Direction const D)
Definition direction.hpp:24
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
std::size_t Size
Definition type_traits.hpp:20
static constexpr auto operator-(Sequence< T, As... > const, Sequence< T, Bs... > const)
Definition sequence.hpp:132
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 auto operator!=(JacobiRotation< TA > const &a, JacobiRotation< TB > const &b)
Definition jacobi_rotation.hpp:304
constexpr auto cDebugLevel
Definition config.hpp:46
static constexpr auto permute(Sequence< T, Is... > const)
Definition sequence.hpp:450
static constexpr auto operator==(JacobiRotation< TA > const &a, JacobiRotation< TB > const &b)
Definition jacobi_rotation.hpp:297
static constexpr auto operator+(Sequence< T, As... > const, Sequence< T, Bs... > const)
Definition sequence.hpp:110
Direction
Definition direction.hpp:9
static constexpr auto chip(Sequence< T, Is... > const)
Definition sequence.hpp:561
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
static constexpr X max(X &&a)
Definition max.hpp:13
#define BEGIN_IGNORE_DIAGNOSTIC_GCC(warning)
Definition pragma.hpp:42
#define END_IGNORE_DIAGNOSTIC_GCC
Definition pragma.hpp:43