10#ifndef EIGEN_EMULATE_ARRAY_H
11#define EIGEN_EMULATE_ARRAY_H
18#if (__cplusplus <= 199711L && EIGEN_COMP_MSVC < 1900) || defined(EIGEN_GPUCC) || defined(EIGEN_AVOID_STL_ARRAY)
21template <
typename T,
size_t n>
class array {
44 static std::size_t
size() {
return n; }
89 const T& v5,
const T& v6) {
100 const T& v5,
const T& v6,
const T& v7) {
112 const T&
v1,
const T&
v2,
const T& v3,
const T& v4,
113 const T& v5,
const T& v6,
const T& v7,
const T& v8) {
125#if EIGEN_HAS_VARIADIC_TEMPLATES
175#if EIGEN_HAS_VARIADIC_TEMPLATES
188template<
class T, std::
size_t N>
190 for (std::size_t
i = 0;
i <
N; ++
i) {
191 if (lhs[
i] != rhs[
i]) {
200template<std::
size_t I_,
class T, std::
size_t N>
204template<std::
size_t I_,
class T, std::
size_t N>
209template<
class T, std::
size_t N>
struct array_size<
array<
T,
N> > {
212template<
class T, std::
size_t N>
struct array_size<
array<
T,
N>& > {
215template<
class T, std::
size_t N>
struct array_size<const
array<
T,
N> > {
218template<
class T, std::
size_t N>
struct array_size<const
array<
T,
N>& > {
231template <
typename T, std::
size_t N>
using array = std::array<T, N>;
242#if defined(__GLIBCXX__) && __GLIBCXX__ < 20120322
243#define STD_GET_ARR_HACK a._M_instance[I_]
244#elif defined(_LIBCPP_VERSION)
245#define STD_GET_ARR_HACK a.__elems_[I_]
247#define STD_GET_ARR_HACK std::template get<I_, T, N>(a)
250template<std::
size_t I_,
class T, std::
size_t N>
constexpr inline T&
array_get(std::array<T,N>&
a) {
return (
T&) STD_GET_ARR_HACK; }
251template<std::
size_t I_,
class T, std::
size_t N>
constexpr inline T&&
array_get(std::array<T,N>&&
a) {
return (
T&&) STD_GET_ARR_HACK; }
252template<std::
size_t I_,
class T, std::
size_t N>
constexpr inline T const&
array_get(std::array<T,N>
const&
a) {
return (
T const&) STD_GET_ARR_HACK; }
254#undef STD_GET_ARR_HACK
ArrayXXi a
Definition Array_initializer_list_23_cxx11.cpp:1
Array< int, Dynamic, 1 > v
Definition Array_initializer_list_vector_cxx11.cpp:1
int n
Definition BiCGSTAB_simple.cpp:1
int i
Definition BiCGSTAB_step_by_step.cpp:9
#define EIGEN_ALWAYS_INLINE
Definition Macros.h:932
#define eigen_internal_assert(x)
Definition Macros.h:1043
#define EIGEN_UNUSED_VARIABLE(var)
Definition Macros.h:1076
#define EIGEN_DEVICE_FUNC
Definition Macros.h:976
#define eigen_assert(x)
Definition Macros.h:1037
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
int array[24]
Definition Map_general_stride.cpp:1
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition StaticAssert.h:127
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
Map< RowVectorXf > v2(M2.data(), M2.size())
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T & back()
Definition EmulateArray.h:160
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T & front() const
Definition EmulateArray.h:155
static EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE std::size_t size()
Definition EmulateArray.h:170
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T & front()
Definition EmulateArray.h:150
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array()
Definition EmulateArray.h:173
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T & back() const
Definition EmulateArray.h:165
Definition EmulateArray.h:21
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array(const T &v1, const T &v2, const T &v3)
Definition EmulateArray.h:62
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array(const T &v1, const T &v2, const T &v3, const T &v4, const T &v5, const T &v6, const T &v7)
Definition EmulateArray.h:99
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array(const T &v)
Definition EmulateArray.h:51
EIGEN_DEVICE_FUNC static EIGEN_ALWAYS_INLINE std::size_t size()
Definition EmulateArray.h:44
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array(const T &v1, const T &v2, const T &v3, const T &v4, const T &v5)
Definition EmulateArray.h:78
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array(const T &v1, const T &v2)
Definition EmulateArray.h:56
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T & operator[](size_t index)
Definition EmulateArray.h:24
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T & at(size_t index)
Definition EmulateArray.h:29
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T & back()
Definition EmulateArray.h:39
T values[n]
Definition EmulateArray.h:46
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array()
Definition EmulateArray.h:49
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T & front() const
Definition EmulateArray.h:36
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T & front()
Definition EmulateArray.h:34
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array(const T &v1, const T &v2, const T &v3, const T &v4, const T &v5, const T &v6, const T &v7, const T &v8)
Definition EmulateArray.h:111
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array(const T &v1, const T &v2, const T &v3, const T &v4)
Definition EmulateArray.h:69
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE array(const T &v1, const T &v2, const T &v3, const T &v4, const T &v5, const T &v6)
Definition EmulateArray.h:88
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T & back() const
Definition EmulateArray.h:41
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T & at(size_t index) const
Definition EmulateArray.h:31
@ N
Definition constructor.cpp:23
const Index array_get(DimensionList< Index, Rank > &)
Definition TensorDimensionList.h:39
EIGEN_DEVICE_FUNC void smart_copy(const T *start, const T *end, T *target)
Definition Memory.h:515
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator==(const Tuple< U, V > &x, const Tuple< U, V > &y)
Definition TensorMeta.h:235
Definition BandTriangularSolver.h:13
@ value
Definition Meta.h:446