10#ifndef EIGEN_CXX11_TENSOR_TENSOR_DIMENSION_LIST_H
11#define EIGEN_CXX11_TENSOR_TENSOR_DIMENSION_LIST_H
23template <
typename Index, std::
size_t Rank>
25 EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
const Index operator[](
const Index i)
const {
return i; }
30template<
typename Index, std::
size_t Rank>
struct array_size<DimensionList<
Index, Rank> > {
31 static const size_t value = Rank;
33template<
typename Index, std::
size_t Rank>
struct array_size<const DimensionList<
Index, Rank> > {
34 static const size_t value = Rank;
37template<DenseIndex n,
typename Index, std::
size_t Rank>
const Index array_get(DimensionList<Index, Rank>&) {
40template<DenseIndex n,
typename Index, std::
size_t Rank>
const Index array_get(
const DimensionList<Index, Rank>&) {
45#if EIGEN_HAS_CONSTEXPR
46template <
typename Index, std::
size_t Rank>
47struct index_known_statically_impl<DimensionList<
Index, Rank> > {
48 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex) {
52template <
typename Index, std::
size_t Rank>
53struct index_known_statically_impl<const DimensionList<
Index, Rank> > {
54 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex) {
59template <
typename Index, std::
size_t Rank>
60struct all_indices_known_statically_impl<DimensionList<
Index, Rank> > {
61 EIGEN_DEVICE_FUNC
static constexpr bool run() {
65template <
typename Index, std::
size_t Rank>
66struct all_indices_known_statically_impl<const DimensionList<
Index, Rank> > {
67 EIGEN_DEVICE_FUNC
static constexpr bool run() {
72template <
typename Index, std::
size_t Rank>
73struct indices_statically_known_to_increase_impl<DimensionList<
Index, Rank> > {
74 EIGEN_DEVICE_FUNC
static constexpr bool run() {
78template <
typename Index, std::
size_t Rank>
79struct indices_statically_known_to_increase_impl<const DimensionList<
Index, Rank> > {
80 EIGEN_DEVICE_FUNC
static constexpr bool run() {
85template <
typename Index, std::
size_t Rank>
86struct index_statically_eq_impl<DimensionList<
Index, Rank> > {
87 static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
91template <
typename Index, std::
size_t Rank>
92struct index_statically_eq_impl<const DimensionList<
Index, Rank> > {
93 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
98template <
typename Index, std::
size_t Rank>
99struct index_statically_ne_impl<DimensionList<
Index, Rank> > {
100 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
104template <
typename Index, std::
size_t Rank>
105struct index_statically_ne_impl<const DimensionList<
Index, Rank> > {
106 static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
111template <
typename Index, std::
size_t Rank>
112struct index_statically_gt_impl<DimensionList<
Index, Rank> > {
113 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
117template <
typename Index, std::
size_t Rank>
118struct index_statically_gt_impl<const DimensionList<
Index, Rank> > {
119 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
124template <
typename Index, std::
size_t Rank>
125struct index_statically_lt_impl<DimensionList<
Index, Rank> > {
126 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
130template <
typename Index, std::
size_t Rank>
131struct index_statically_lt_impl<const DimensionList<
Index, Rank> > {
132 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
138template <
typename Index, std::
size_t Rank>
139struct index_known_statically_impl<DimensionList<
Index, Rank> > {
140 EIGEN_DEVICE_FUNC
static EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex) {
144template <
typename Index, std::
size_t Rank>
145struct index_known_statically_impl<const DimensionList<
Index, Rank> > {
146 EIGEN_DEVICE_FUNC
static EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex) {
151template <
typename Index, std::
size_t Rank>
152struct all_indices_known_statically_impl<DimensionList<
Index, Rank> > {
153 EIGEN_DEVICE_FUNC
static EIGEN_ALWAYS_INLINE
bool run() {
157template <
typename Index, std::
size_t Rank>
158struct all_indices_known_statically_impl<const DimensionList<
Index, Rank> > {
159 EIGEN_DEVICE_FUNC
static EIGEN_ALWAYS_INLINE
bool run() {
164template <
typename Index, std::
size_t Rank>
165struct indices_statically_known_to_increase_impl<DimensionList<
Index, Rank> > {
166 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run() {
170template <
typename Index, std::
size_t Rank>
171struct indices_statically_known_to_increase_impl<const DimensionList<
Index, Rank> > {
172 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run() {
177template <
typename Index, std::
size_t Rank>
178struct index_statically_eq_impl<DimensionList<
Index, Rank> > {
179 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex,
const DenseIndex) {
183template <
typename Index, std::
size_t Rank>
184struct index_statically_eq_impl<const DimensionList<
Index, Rank> > {
185 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex,
const DenseIndex) {
190template <
typename Index, std::
size_t Rank>
191struct index_statically_ne_impl<DimensionList<
Index, Rank> > {
192 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex,
const DenseIndex){
196template <
typename Index, std::
size_t Rank>
197struct index_statically_ne_impl<const DimensionList<
Index, Rank> > {
198 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex,
const DenseIndex) {
203template <
typename Index, std::
size_t Rank>
204struct index_statically_gt_impl<DimensionList<
Index, Rank> > {
205 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex,
const DenseIndex) {
209template <
typename Index, std::
size_t Rank>
210struct index_statically_gt_impl<const DimensionList<
Index, Rank> > {
211 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex,
const DenseIndex) {
216template <
typename Index, std::
size_t Rank>
217struct index_statically_lt_impl<DimensionList<
Index, Rank> > {
218 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex,
const DenseIndex) {
222template <
typename Index, std::
size_t Rank>
223struct index_statically_lt_impl<const DimensionList<
Index, Rank> > {
224 static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
bool run(
const DenseIndex,
const DenseIndex) {
Namespace containing all symbols from the Eigen library.
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index