18 template<
typename Scalar_,
int Rows_,
int Cols_,
int Options_,
int MaxRows_,
int MaxCols_>
19 struct traits<Array<Scalar_, Rows_, Cols_, Options_, MaxRows_, MaxCols_> > : traits<Matrix<Scalar_, Rows_, Cols_, Options_, MaxRows_, MaxCols_> >
21 typedef ArrayXpr XprKind;
22 typedef ArrayBase<Array<Scalar_, Rows_, Cols_, Options_, MaxRows_, MaxCols_> > XprBase;
46 template<
typename Scalar_,
int Rows_,
int Cols_,
int Options_,
int MaxRows_,
int MaxCols_>
48 :
public PlainObjectBase<Array<Scalar_, Rows_, Cols_, Options_, MaxRows_, MaxCols_> >
59 template <
typename Derived,
typename OtherDerived,
bool IsVector>
60 friend struct internal::conservative_resize_like_impl;
76 template<
typename OtherDerived>
107 template<
typename OtherDerived>
139 #ifndef EIGEN_PARSED_BY_DOXYGEN
143 Array(internal::constructor_without_unaligned_array_assert)
144 :
Base(
internal::constructor_without_unaligned_array_assert())
170 template <
typename... ArgTypes>
173 :
Base(a0, a1, a2, a3, args...) {}
197 const std::initializer_list<std::initializer_list<Scalar>>& list)
200 #ifndef EIGEN_PARSED_BY_DOXYGEN
203 EIGEN_STRONG_INLINE
explicit Array(
const T&
x)
205 Base::template _init1<T>(
x);
208 template<
typename T0,
typename T1>
210 EIGEN_STRONG_INLINE
Array(
const T0& val0,
const T1& val1)
212 this->
template _init2<T0,T1>(val0, val1);
275 template<
typename OtherDerived>
278 std::enable_if_t<internal::is_convertible<typename OtherDerived::Scalar,Scalar>::value,
288 #ifdef EIGEN_ARRAY_PLUGIN
289 #include EIGEN_ARRAY_PLUGIN
294 template<
typename MatrixType,
typename OtherDerived,
bool SwapPo
inters>
295 friend struct internal::matrix_swap_impl;
323 #define EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \
325 typedef Array<Type, Size, Size> Array##SizeSuffix##SizeSuffix##TypeSuffix; \
327 typedef Array<Type, Size, 1> Array##SizeSuffix##TypeSuffix;
329 #define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, Size) \
331 typedef Array<Type, Size, Dynamic> Array##Size##X##TypeSuffix; \
333 typedef Array<Type, Dynamic, Size> Array##X##Size##TypeSuffix;
335 #define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
336 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 2, 2) \
337 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 3, 3) \
338 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 4, 4) \
339 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
340 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
341 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
342 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
350 #undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES
351 #undef EIGEN_MAKE_ARRAY_TYPEDEFS
352 #undef EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS
354 #define EIGEN_MAKE_ARRAY_TYPEDEFS(Size, SizeSuffix) \
357 template <typename Type> \
358 using Array##SizeSuffix##SizeSuffix = Array<Type, Size, Size>; \
361 template <typename Type> \
362 using Array##SizeSuffix = Array<Type, Size, 1>;
364 #define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Size) \
367 template <typename Type> \
368 using Array##Size##X = Array<Type, Size, Dynamic>; \
371 template <typename Type> \
372 using Array##X##Size = Array<Type, Dynamic, Size>;
382 #undef EIGEN_MAKE_ARRAY_TYPEDEFS
383 #undef EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS
385 #define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
386 using Eigen::Matrix##SizeSuffix##TypeSuffix; \
387 using Eigen::Vector##SizeSuffix##TypeSuffix; \
388 using Eigen::RowVector##SizeSuffix##TypeSuffix;
390 #define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(TypeSuffix) \
391 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
392 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
393 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
394 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
396 #define EIGEN_USING_ARRAY_TYPEDEFS \
397 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(i) \
398 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(f) \
399 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(d) \
400 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cf) \
401 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cd)
#define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix)
#define EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)
#define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, Size)
#define EIGEN_NOEXCEPT_IF(x)
#define EIGEN_DEVICE_FUNC
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
#define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)
General-purpose arrays with easy API for coefficient-wise operations.
Array & operator=(Array &&other) EIGEN_NOEXCEPT_IF(std
Array(const Scalar &val0, const Scalar &val1, const Scalar &val2, const Scalar &val3)
Array(const Array &other)
DenseStorage< Scalar, Base::MaxSizeAtCompileTime, Base::RowsAtCompileTime, Base::ColsAtCompileTime, Options > m_storage
Array(const EigenBase< OtherDerived > &other, std::enable_if_t< internal::is_convertible< typename OtherDerived::Scalar, Scalar >::value, PrivateType >=PrivateType())
Array(const Scalar &val0, const Scalar &val1)
Array(const Scalar *data)
Constructs a fixed-sized array initialized with coefficients starting at data.
Array(const Scalar &val0, const Scalar &val1, const Scalar &val2)
constexpr Array(const std::initializer_list< std::initializer_list< Scalar >> &list)
Constructs an array and initializes it from the coefficients given as initializer-lists grouped by ro...
Array(Index rows, Index cols)
Array & operator=(const EigenBase< OtherDerived > &other)
Array & operator=(const Array &other)
EIGEN_CONSTEXPR Index innerStride() const EIGEN_NOEXCEPT
Array(const Scalar &a0, const Scalar &a1, const Scalar &a2, const Scalar &a3, const ArgTypes &... args)
EIGEN_CONSTEXPR Index outerStride() const EIGEN_NOEXCEPT
Array & operator=(const Scalar &value)
PlainObjectBase< Array > Base
Array(const Scalar &value)
Base::PlainObject PlainObject
Array(Array &&other) EIGEN_NOEXCEPT_IF(std
Array & operator=(const DenseBase< OtherDerived > &other)
Base class for all dense matrices, vectors, and arrays.
EIGEN_CONSTEXPR Index innerSize() const
internal::traits< Derived >::Scalar Scalar
CoeffReturnType value() const
Dense storage base class for matrices and arrays.
Derived & _set(const DenseBase< OtherDerived > &other)
Copies the value of the expression other into *this with automatic resizing.
DenseStorage< Scalar, Base::MaxSizeAtCompileTime, Base::RowsAtCompileTime, Base::ColsAtCompileTime, Options > m_storage
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
constexpr const Scalar & coeff(Index rowId, Index colId) const
const Base & base() const
Derived & setConstant(Index size, const Scalar &val)
const Scalar * data() const
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
constexpr Scalar & coeffRef(Index rowId, Index colId)
Derived & operator=(const PlainObjectBase &other)
Eigen::Index Index
The interface type of indices.