16 template<
typename _Scalar, 
int _Rows, 
int _Cols, 
int _Options, 
int _MaxRows, 
int _MaxCols>
    17 struct traits<
Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > : 
traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
    44 template<
typename _Scalar, 
int _Rows, 
int _Cols, 
int _Options, 
int _MaxRows, 
int _MaxCols>
    46   : 
public PlainObjectBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
    53     enum { Options = _Options };
    57     template <
typename Derived, 
typename OtherDerived, 
bool IsVector>
    60     using Base::m_storage;
    74     template<
typename OtherDerived>
    78       return Base::operator=(other);
    92       Base::setConstant(value);
   105     template<
typename OtherDerived>
   109       return Base::_set(other);
   118       return Base::_set(other);
   134       Base::_check_template_params();
   138 #ifndef EIGEN_PARSED_BY_DOXYGEN   143       : Base(
internal::constructor_without_unaligned_array_assert())
   145       Base::_check_template_params();
   150 #if EIGEN_HAS_RVALUE_REFERENCES   153       : Base(std::move(other))
   155       Base::_check_template_params();
   157         Base::_set_noalias(other);
   167     #ifndef EIGEN_PARSED_BY_DOXYGEN   172       Base::_check_template_params();
   173       Base::template _init1<T>(x);
   176     template<
typename T0, 
typename T1>
   180       Base::_check_template_params();
   181       this->
template _init2<T0,T1>(val0, val1);
   195     Array(
const Scalar& value);
   210       Base::_check_template_params();
   212       m_storage.data()[0] = val0;
   213       m_storage.data()[1] = val1;
   214       m_storage.data()[2] = val2;
   220       Base::_check_template_params();
   222       m_storage.data()[0] = val0;
   223       m_storage.data()[1] = val1;
   224       m_storage.data()[2] = val2;
   225       m_storage.data()[3] = val3;
   235     template<
typename OtherDerived>
   238       : Base(other.derived())
   244     #ifdef EIGEN_ARRAY_PLUGIN   245     #include EIGEN_ARRAY_PLUGIN   250     template<
typename MatrixType, 
typename OtherDerived, 
bool SwapPo
inters>
   273 #define EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)   \   275 typedef Array<Type, Size, Size> Array##SizeSuffix##SizeSuffix##TypeSuffix;  \   277 typedef Array<Type, Size, 1>    Array##SizeSuffix##TypeSuffix;   279 #define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, Size)         \   281 typedef Array<Type, Size, Dynamic> Array##Size##X##TypeSuffix;  \   283 typedef Array<Type, Dynamic, Size> Array##X##Size##TypeSuffix;   285 #define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \   286 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 2, 2) \   287 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 3, 3) \   288 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 4, 4) \   289 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \   290 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \   291 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \   292 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 4)   300 #undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES   301 #undef EIGEN_MAKE_ARRAY_TYPEDEFS   303 #undef EIGEN_MAKE_ARRAY_TYPEDEFS_LARGE   305 #define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \   306 using Eigen::Matrix##SizeSuffix##TypeSuffix; \   307 using Eigen::Vector##SizeSuffix##TypeSuffix; \   308 using Eigen::RowVector##SizeSuffix##TypeSuffix;   310 #define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(TypeSuffix) \   311 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \   312 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \   313 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \   314 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \   316 #define EIGEN_USING_ARRAY_TYPEDEFS \   317 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(i) \   318 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(f) \   319 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(d) \   320 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cf) \   321 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cd)   325 #endif // EIGEN_ARRAY_H internal::traits< Derived >::Scalar Scalar
#define EIGEN_STRONG_INLINE
EIGEN_DEVICE_FUNC Index innerStride() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const Scalar &val0, const Scalar &val1, const Scalar &val2)
ArrayBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > > XprBase
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array & operator=(const Scalar &value)
#define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array & operator=(const EigenBase< OtherDerived > &other)
Base class for all dense matrices, vectors, and arrays. 
Base::PlainObject PlainObject
#define EIGEN_NOEXCEPT_IF(x)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const Array &other)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const T &x)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API. 
Dense storage base class for matrices and arrays. 
EIGEN_DEVICE_FUNC Array(internal::constructor_without_unaligned_array_assert)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const EigenBase< OtherDerived > &other)
Base class for all 1D and 2D array, and related expressions. 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const Scalar &val0, const Scalar &val1, const Scalar &val2, const Scalar &val3)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const T0 &val0, const T1 &val1)
General-purpose arrays with easy API for coefficient-wise operations. 
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array & operator=(const DenseBase< OtherDerived > &other)
#define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array & operator=(const Array &other)
EIGEN_DEVICE_FUNC Index outerStride() const
PlainObjectBase< Array > Base
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array()
struct thread_data * data