11 #ifndef EIGEN_MATRIX_H    12 #define EIGEN_MATRIX_H    17 template<
typename _Scalar, 
int _Rows, 
int _Cols, 
int _Options, 
int _MaxRows, 
int _MaxCols>
    18 struct traits<
Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
    26       max_size = is_dynamic_size_storage ? 
Dynamic : _MaxRows*_MaxCols,
    28       actual_alignment = ((_Options&
DontAlign)==0) ? default_alignment : 0,
    39     RowsAtCompileTime = _Rows,
    40     ColsAtCompileTime = _Cols,
    41     MaxRowsAtCompileTime = _MaxRows,
    42     MaxColsAtCompileTime = _MaxCols,
    45     InnerStrideAtCompileTime = 1,
    46     OuterStrideAtCompileTime = (Options&
RowMajor) ? ColsAtCompileTime : RowsAtCompileTime,
    50     Alignment = actual_alignment
   177 template<
typename _Scalar, 
int _Rows, 
int _Cols, 
int _Options, 
int _MaxRows, 
int _MaxCols>
   179   : 
public PlainObjectBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
   188     enum { Options = _Options };
   195     using Base::coeffRef;
   208       return Base::_set(other);
   221     template<
typename OtherDerived>
   225       return Base::_set(other);
   234     template<
typename OtherDerived>
   238       return Base::operator=(other);
   241     template<
typename OtherDerived>
   245       return Base::operator=(func);
   261       Base::_check_template_params();
   268       : 
Base(
internal::constructor_without_unaligned_array_assert())
   271 #if EIGEN_HAS_RVALUE_REFERENCES   274       : 
Base(std::move(other))
   276       Base::_check_template_params();
   278         Base::_set_noalias(other);
   288     #ifndef EIGEN_PARSED_BY_DOXYGEN   295       Base::_check_template_params();
   296       Base::template _init1<T>(x);
   299     template<
typename T0, 
typename T1>
   303       Base::_check_template_params();
   304       Base::template _init2<T0,T1>(x, y);
   349       Base::_check_template_params();
   351       m_storage.data()[0] = x;
   352       m_storage.data()[1] = y;
   353       m_storage.data()[2] = z;
   359       Base::_check_template_params();
   361       m_storage.data()[0] = x;
   362       m_storage.data()[1] = y;
   363       m_storage.data()[2] = z;
   364       m_storage.data()[3] = w;
   376     template<
typename OtherDerived>
   379       : 
Base(other.derived())
   387     template<
typename OtherDerived>
   390     template<
typename OtherDerived>
   395     #ifdef EIGEN_MATRIX_PLUGIN   396     #include EIGEN_MATRIX_PLUGIN   400     template <
typename Derived, 
typename OtherDerived, 
bool IsVector>
   403     using Base::m_storage;
   426 #define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)   \   428 typedef Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix;  \   430 typedef Matrix<Type, Size, 1>    Vector##SizeSuffix##TypeSuffix;  \   432 typedef Matrix<Type, 1, Size>    RowVector##SizeSuffix##TypeSuffix;   434 #define EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, Size)         \   436 typedef Matrix<Type, Size, Dynamic> Matrix##Size##X##TypeSuffix;  \   438 typedef Matrix<Type, Dynamic, Size> Matrix##X##Size##TypeSuffix;   440 #define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \   441 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \   442 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \   443 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \   444 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \   445 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \   446 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \   447 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 4)   455 #undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES   456 #undef EIGEN_MAKE_TYPEDEFS   457 #undef EIGEN_MAKE_FIXED_TYPEDEFS   461 #endif // EIGEN_MATRIX_H find_best_packet_helper< Size, typename packet_traits< T >::type >::type type
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const T &x)
EIGEN_DEVICE_FUNC Matrix(internal::constructor_without_unaligned_array_assert)
internal::traits< Derived >::Scalar Scalar
#define EIGEN_STRONG_INLINE
Base::PlainObject PlainObject
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const Scalar &x, const Scalar &y, const Scalar &z)
Constructs an initialized 3D vector with given coefficients. 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const Matrix &other)
Copy constructor. 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const T0 &x, const T1 &y)
const unsigned int DirectAccessBit
EIGEN_DEVICE_FUNC Index innerStride() const
const unsigned int RowMajorBit
Base class for all dense matrices, vectors, and arrays. 
const unsigned int PacketAccessBit
#define EIGEN_NOEXCEPT_IF(x)
internal::dense_xpr_base< Derived >::type Base
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix & operator=(const ReturnByValue< OtherDerived > &func)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix()
Default constructor. 
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API. 
Dense storage base class for matrices and arrays. 
Common base class for compact rotation representations. 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const EigenBase< OtherDerived > &other)
Copy constructor for generic expressions. 
EIGEN_DEVICE_FUNC Index outerStride() const
find_best_packet< _Scalar, size >::type PacketScalar
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
#define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix & operator=(const EigenBase< OtherDerived > &other)
Copies the generic expression other into *this. 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix & operator=(const DenseBase< OtherDerived > &other)
The matrix class, also used for vectors and row-vectors. 
#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix)
PlainObjectBase< Matrix > Base
Base class typedef. 
const unsigned int LinearAccessBit
Eigen::Index StorageIndex
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w)
Constructs an initialized 4D vector with given coefficients. 
#define EIGEN_UNALIGNED_VECTORIZE
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)
struct thread_data * data