10#ifndef EIGEN_CXX11_TENSOR_TENSOR_DIMENSION_LIST_H
11#define EIGEN_CXX11_TENSOR_TENSOR_DIMENSION_LIST_H
14#include "./InternalHeaderCheck.h"
26template <
typename Index, std::
size_t Rank>
28 EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
const Index operator[](
const Index i)
const {
return i; }
33template <
typename Index, std::
size_t Rank>
34struct array_size<DimensionList<
Index, Rank> > {
35 static const size_t value = Rank;
37template <
typename Index, std::
size_t Rank>
38struct array_size<const DimensionList<
Index, Rank> > {
39 static const size_t value = Rank;
42template <DenseIndex n,
typename Index, std::
size_t Rank>
43const Index array_get(DimensionList<Index, Rank>&) {
46template <DenseIndex n,
typename Index, std::
size_t Rank>
47const Index array_get(
const DimensionList<Index, Rank>&) {
51template <
typename Index, std::
size_t Rank>
52struct index_known_statically_impl<DimensionList<
Index, Rank> > {
53 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex) {
return true; }
55template <
typename Index, std::
size_t Rank>
56struct index_known_statically_impl<const DimensionList<
Index, Rank> > {
57 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex) {
return true; }
60template <
typename Index, std::
size_t Rank>
61struct all_indices_known_statically_impl<DimensionList<
Index, Rank> > {
62 EIGEN_DEVICE_FUNC
static constexpr bool run() {
return true; }
64template <
typename Index, std::
size_t Rank>
65struct all_indices_known_statically_impl<const DimensionList<
Index, Rank> > {
66 EIGEN_DEVICE_FUNC
static constexpr bool run() {
return true; }
69template <
typename Index, std::
size_t Rank>
70struct indices_statically_known_to_increase_impl<DimensionList<
Index, Rank> > {
71 EIGEN_DEVICE_FUNC
static constexpr bool run() {
return true; }
73template <
typename Index, std::
size_t Rank>
74struct indices_statically_known_to_increase_impl<const DimensionList<
Index, Rank> > {
75 EIGEN_DEVICE_FUNC
static constexpr bool run() {
return true; }
78template <
typename Index, std::
size_t Rank>
79struct index_statically_eq_impl<DimensionList<
Index, Rank> > {
80 static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
return i == value; }
82template <
typename Index, std::
size_t Rank>
83struct index_statically_eq_impl<const DimensionList<
Index, Rank> > {
84 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
return i == value; }
87template <
typename Index, std::
size_t Rank>
88struct index_statically_ne_impl<DimensionList<
Index, Rank> > {
89 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
return i != value; }
91template <
typename Index, std::
size_t Rank>
92struct index_statically_ne_impl<const DimensionList<
Index, Rank> > {
93 static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
return i != value; }
96template <
typename Index, std::
size_t Rank>
97struct index_statically_gt_impl<DimensionList<
Index, Rank> > {
98 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
return i > value; }
100template <
typename Index, std::
size_t Rank>
101struct index_statically_gt_impl<const DimensionList<
Index, Rank> > {
102 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
return i > value; }
105template <
typename Index, std::
size_t Rank>
106struct index_statically_lt_impl<DimensionList<
Index, Rank> > {
107 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
return i < value; }
109template <
typename Index, std::
size_t Rank>
110struct index_statically_lt_impl<const DimensionList<
Index, Rank> > {
111 EIGEN_DEVICE_FUNC
static constexpr bool run(
const DenseIndex i,
const DenseIndex value) {
return i < value; }
Namespace containing all symbols from the Eigen library.
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index