3#ifndef pRC_CORE_TENSOR_VIEWS_TENSOR_PRODUCT_H
4#define pRC_CORE_TENSOR_VIEWS_TENSOR_PRODUCT_H
11 template<
class T,
class N,
class VA,
class VB>
21 template<
class XA,
class XB, If<IsSame<VA, RemoveReference<XA>>> = 0,
22 If<IsSame<VB, RemoveReference<XB>>> = 0>
30 If<
IsSatisfied<(
sizeof...(Is) ==
typename Base::Dimension())>> = 0>
36 auto const...
seq) ->
decltype(
auto)
43 typename Base::Dimension{}>(),
45 auto const...
seq) ->
decltype(
auto)
53 If<
IsSatisfied<(
sizeof...(Is) ==
typename Base::Dimension())>> = 0>
59 auto const...
seq) ->
decltype(
auto)
66 typename Base::Dimension{}>(),
68 auto const...
seq) ->
decltype(
auto)
75 constexpr decltype(
auto)
operator()(
81 constexpr decltype(
auto)
operator()(
82 typename Base::Subscripts
const &
subscripts)
const
Definition indices.hpp:15
Definition tensor_product.hpp:13
constexpr decltype(auto) operator()(Is const ... indices)
Definition tensor_product.hpp:31
TensorProduct(XA &&a, XB &&b)
Definition tensor_product.hpp:23
constexpr decltype(auto) operator()(Is const ... indices) const
Definition tensor_product.hpp:54
Definition type_traits.hpp:32
Definition diagonal.hpp:11
static constexpr auto makeConstantSequence()
Definition sequence.hpp:402
Size Index
Definition type_traits.hpp:21
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71
static constexpr auto makeRange()
Definition sequence.hpp:379
static constexpr auto makeSeries()
Definition sequence.hpp:351
static constexpr decltype(auto) expand(Sequence< T, Seq... > const, F &&f, Xs &&...args)
Definition sequence.hpp:344