10 #ifndef EIGEN_CXX11_TENSOR_TENSOR_DIMENSION_LIST_H
11 #define EIGEN_CXX11_TENSOR_TENSOR_DIMENSION_LIST_H
25 template <
typename Index, std::
size_t Rank>
struct DimensionList {
26 const Index operator[] (
const Index i)
const {
return i; }
31 template<
typename Index, std::
size_t Rank>
struct array_size<DimensionList<Index, Rank> > {
32 static const size_t value = Rank;
34 template<
typename Index, std::
size_t Rank>
struct array_size<const DimensionList<Index, Rank> > {
35 static const size_t value = Rank;
38 template<DenseIndex n,
typename Index, std::
size_t Rank>
const Index array_get(DimensionList<Index, Rank>&) {
41 template<DenseIndex n,
typename Index, std::
size_t Rank>
const Index array_get(
const DimensionList<Index, Rank>&) {
46 #if defined(EIGEN_HAS_CONSTEXPR)
47 template <
typename Index, std::
size_t Rank>
48 struct index_known_statically<DimensionList<Index, Rank> > {
49 constexpr
bool operator() (
const DenseIndex)
const {
53 template <
typename Index, std::
size_t Rank>
54 struct index_known_statically<const DimensionList<Index, Rank> > {
55 constexpr
bool operator() (
const DenseIndex)
const {
60 template <
typename Index, std::
size_t Rank>
61 struct all_indices_known_statically<DimensionList<Index, Rank> > {
62 constexpr
bool operator() ()
const {
66 template <
typename Index, std::
size_t Rank>
67 struct all_indices_known_statically<const DimensionList<Index, Rank> > {
68 constexpr
bool operator() ()
const {
73 template <
typename Index, std::
size_t Rank>
74 struct indices_statically_known_to_increase<DimensionList<Index, Rank> > {
75 constexpr
bool operator() ()
const {
79 template <
typename Index, std::
size_t Rank>
80 struct indices_statically_known_to_increase<const DimensionList<Index, Rank> > {
81 constexpr
bool operator() ()
const {
86 template <
typename Index, std::
size_t Rank>
87 struct index_statically_eq<DimensionList<Index, Rank> > {
88 constexpr
bool operator() (
const DenseIndex i,
const DenseIndex value)
const {
92 template <
typename Index, std::
size_t Rank>
93 struct index_statically_eq<const DimensionList<Index, Rank> > {
94 constexpr
bool operator() (
const DenseIndex i,
const DenseIndex value)
const {
99 template <
typename Index, std::
size_t Rank>
100 struct index_statically_ne<DimensionList<Index, Rank> > {
101 constexpr
bool operator() (
const DenseIndex i,
const DenseIndex value)
const {
105 template <
typename Index, std::
size_t Rank>
106 struct index_statically_ne<const DimensionList<Index, Rank> > {
107 constexpr
bool operator() (
const DenseIndex i,
const DenseIndex value)
const {
112 template <
typename Index, std::
size_t Rank>
113 struct index_statically_gt<DimensionList<Index, Rank> > {
114 constexpr
bool operator() (
const DenseIndex i,
const DenseIndex value)
const {
118 template <
typename Index, std::
size_t Rank>
119 struct index_statically_gt<const DimensionList<Index, Rank> > {
120 constexpr
bool operator() (
const DenseIndex i,
const DenseIndex value)
const {
125 template <
typename Index, std::
size_t Rank>
126 struct index_statically_lt<DimensionList<Index, Rank> > {
127 constexpr
bool operator() (
const DenseIndex i,
const DenseIndex value)
const {
131 template <
typename Index, std::
size_t Rank>
132 struct index_statically_lt<const DimensionList<Index, Rank> > {
133 constexpr
bool operator() (
const DenseIndex i,
const DenseIndex value)
const {
139 template <
typename Index, std::
size_t Rank>
140 struct index_known_statically<DimensionList<Index, Rank> > {
141 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex)
const {
145 template <
typename Index, std::
size_t Rank>
146 struct index_known_statically<const DimensionList<Index, Rank> > {
147 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex)
const {
152 template <
typename Index, std::
size_t Rank>
153 struct all_indices_known_statically<DimensionList<Index, Rank> > {
154 EIGEN_ALWAYS_INLINE
bool operator() ()
const {
158 template <
typename Index, std::
size_t Rank>
159 struct all_indices_known_statically<const DimensionList<Index, Rank> > {
160 EIGEN_ALWAYS_INLINE
bool operator() ()
const {
165 template <
typename Index, std::
size_t Rank>
166 struct indices_statically_known_to_increase<DimensionList<Index, Rank> > {
167 EIGEN_ALWAYS_INLINE
bool operator() ()
const {
171 template <
typename Index, std::
size_t Rank>
172 struct indices_statically_known_to_increase<const DimensionList<Index, Rank> > {
173 EIGEN_ALWAYS_INLINE
bool operator() ()
const {
178 template <
typename Index, std::
size_t Rank>
179 struct index_statically_eq<DimensionList<Index, Rank> > {
180 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex,
const DenseIndex)
const {
184 template <
typename Index, std::
size_t Rank>
185 struct index_statically_eq<const DimensionList<Index, Rank> > {
186 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex,
const DenseIndex)
const {
191 template <
typename Index, std::
size_t Rank>
192 struct index_statically_ne<DimensionList<Index, Rank> > {
193 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex,
const DenseIndex)
const {
197 template <
typename Index, std::
size_t Rank>
198 struct index_statically_ne<const DimensionList<Index, Rank> > {
199 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex,
const DenseIndex)
const {
204 template <
typename Index, std::
size_t Rank>
205 struct index_statically_gt<DimensionList<Index, Rank> > {
206 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex,
const DenseIndex)
const {
210 template <
typename Index, std::
size_t Rank>
211 struct index_statically_gt<const DimensionList<Index, Rank> > {
212 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex,
const DenseIndex)
const {
217 template <
typename Index, std::
size_t Rank>
218 struct index_statically_lt<DimensionList<Index, Rank> > {
219 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex,
const DenseIndex)
const {
223 template <
typename Index, std::
size_t Rank>
224 struct index_statically_lt<const DimensionList<Index, Rank> > {
225 EIGEN_ALWAYS_INLINE
bool operator() (
const DenseIndex,
const DenseIndex)
const {
235 #endif // EIGEN_CXX11_TENSOR_TENSOR_DIMENSION_LIST_H
Namespace containing all symbols from the Eigen library.
Definition: CXX11Meta.h:13