22#ifndef UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_LEAF_COUNT_HPP
23#define UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_LEAF_COUNT_HPP
31template <
typename Expr>
34template<
typename... Args>
struct CategoryCount;
36template<>
struct CategoryCount<>
38 static const size_t Count =0;
41template<
typename Arg,
typename... Args>
42struct CategoryCount<Arg,Args...>{
43 static const size_t Count = LeafCount<Arg>::Count + CategoryCount<Args...>::Count;
47template <
typename PlainObjectType,
int Options_,
template <
class>
class MakePointer_>
48struct LeafCount<const TensorMap<PlainObjectType, Options_, MakePointer_> > {
49 static const size_t Count =1;
53template <
typename PlainObjectType,
int Options_,
template <
class>
class MakePointer_>
54struct LeafCount<TensorMap<PlainObjectType, Options_, MakePointer_> > :LeafCount<const TensorMap<PlainObjectType, Options_, MakePointer_> >{};
57template <
template <
class,
class...>
class CategoryExpr,
typename OP,
typename... RHSExpr>
58struct LeafCount<const CategoryExpr<OP, RHSExpr...> >: CategoryCount<RHSExpr...> {};
60template <
template <
class,
class...>
class CategoryExpr,
typename OP,
typename... RHSExpr>
61struct LeafCount<CategoryExpr<OP, RHSExpr...> > :LeafCount<const CategoryExpr<OP, RHSExpr...> >{};
64template <
typename IfExpr,
typename ThenExpr,
typename ElseExpr>
65struct LeafCount<const TensorSelectOp<IfExpr, ThenExpr, ElseExpr> > : CategoryCount<IfExpr, ThenExpr, ElseExpr> {};
67template <
typename IfExpr,
typename ThenExpr,
typename ElseExpr>
68struct LeafCount<TensorSelectOp<IfExpr, ThenExpr, ElseExpr> >: LeafCount<const TensorSelectOp<IfExpr, ThenExpr, ElseExpr> > {};
72template <
typename LHSExpr,
typename RHSExpr>
73struct LeafCount<const TensorAssignOp<LHSExpr, RHSExpr> >: CategoryCount<LHSExpr,RHSExpr> {};
77template <
typename LHSExpr,
typename RHSExpr>
78struct LeafCount<TensorAssignOp<LHSExpr, RHSExpr> > :LeafCount<const TensorAssignOp<LHSExpr, RHSExpr> >{};
81template <
typename Expr>
82struct LeafCount<const TensorForcedEvalOp<Expr> > {
83 static const size_t Count =1;
87template <
typename Expr>
88struct LeafCount<TensorForcedEvalOp<Expr> >: LeafCount<const TensorForcedEvalOp<Expr> > {};
91template <
typename Expr>
92struct LeafCount<const TensorEvalToOp<Expr> > {
93 static const size_t Count = 1 + CategoryCount<Expr>::Count;
97template <
typename OP,
typename Dim,
typename Expr>
98struct LeafCount<const TensorReductionOp<OP, Dim, Expr> > {
99 static const size_t Count =1;
103template <
typename OP,
typename Dim,
typename Expr>
104struct LeafCount<TensorReductionOp<OP, Dim, Expr> >: LeafCount<const TensorReductionOp<OP, Dim, Expr> >{};
107template <
typename Expr>
108struct LeafCount<TensorEvalToOp<Expr> >: LeafCount<const TensorEvalToOp<Expr> >{};
Namespace containing all symbols from the Eigen library.
Definition: AdolcForward:45