3#ifndef pRC_CORE_TENSOR_OPERATOR_VIEWS_OFF_DIAGONAL_H
4#define pRC_CORE_TENSOR_OPERATOR_VIEWS_OFF_DIAGONAL_H
12 template<
class T,
class N,
class V>
21 template<
class X, If<IsConstructible<V, X>> = 0>
28 If<
IsSatisfied<(
sizeof...(Is) ==
typename Base::Dimension())>> = 0>
36 indices[
typename Base::Dimension() / 2 +
seq]) &&
43 indices[
typename Base::Dimension() / 2 +
seq]...);
49 If<
IsSatisfied<(
sizeof...(Is) ==
typename Base::Dimension())>> = 0>
57 indices[
typename Base::Dimension() / 2 +
seq]) &&
64 indices[
typename Base::Dimension() / 2 +
seq]...);
69 constexpr decltype(
auto)
operator()(
75 constexpr decltype(
auto)
operator()(
76 typename Base::Subscripts
const &
subscripts)
const
Definition indices.hpp:15
Definition off_diagonal.hpp:14
constexpr decltype(auto) operator()(Is const ... indices) const
Definition off_diagonal.hpp:50
OffDiagonal(X &&a)
Definition off_diagonal.hpp:22
constexpr decltype(auto) operator()(Is const ... indices)
Definition off_diagonal.hpp:29
Definition type_traits.hpp:32
Definition diagonal.hpp:11
static constexpr auto zero()
Definition zero.hpp:12
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
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