11 #ifndef EIGEN_XPRHELPER_H    12 #define EIGEN_XPRHELPER_H    17 #if (defined __GNUG__) && !((__GNUC__==4) && (__GNUC_MINOR__==3))    18   #define EIGEN_EMPTY_STRUCT_CTOR(X) \    19     EIGEN_STRONG_INLINE X() {} \    20     EIGEN_STRONG_INLINE X(const X& ) {}    22   #define EIGEN_EMPTY_STRUCT_CTOR(X)    39 template<
typename I1, 
typename I2>
    54     static T 
value() { 
return T(Value); }
    64     T 
value()
 const { 
return m_value; }
    75     static T 
value() { 
return T(Value); }
    85     T 
value()
 const { 
return m_value; }
   107 template<
typename _Scalar, 
int _Rows, 
int _Cols,
   112          int _MaxRows = _Rows,
   117       IsColVector = _Cols==1 && _Rows!=1,
   118       IsRowVector = _Rows==1 && _Cols!=1,
   127 template<
typename Scalar, 
int Rows, 
int Cols, 
int Options, 
int MaxRows, 
int MaxCols>
   138 #if EIGEN_ALIGN_STATICALLY   139              ((!is_dynamic_size_storage) && (((MaxCols*MaxRows*
int(
sizeof(Scalar))) % 16) == 0))
   147              is_dynamic_size_storage
   170 template<typename T, typename StorageKind = typename traits<T>::StorageKind> 
struct plain_matrix_type;
   203 template<typename T, typename StorageKind = typename traits<T>::StorageKind> 
struct eval;
   219 template<
typename _Scalar, 
int _Rows, 
int _Cols, 
int _Options, 
int _MaxRows, 
int _MaxCols>
   225 template<
typename _Scalar, 
int _Rows, 
int _Cols, 
int _Options, 
int _MaxRows, 
int _MaxCols>
   275 template <
typename T>
   286 template<
typename T1, 
typename T2>
   316 template<typename T, int n=1, typename PlainObject = typename eval<T>::type> 
struct nested   324     DynamicAsInteger = 10000,
   326     ScalarReadCostAsInteger = ScalarReadCost == 
Dynamic ? int(DynamicAsInteger) : int(ScalarReadCost),
   327     CoeffReadCost = 
traits<T>::CoeffReadCost,
   328     CoeffReadCostAsInteger = CoeffReadCost == 
Dynamic ? int(DynamicAsInteger) : int(CoeffReadCost),
   329     NAsInteger = n == 
Dynamic ? int(DynamicAsInteger) : n,
   330     CostEvalAsInteger   = (NAsInteger+1) * ScalarReadCostAsInteger + CoeffReadCostAsInteger,
   331     CostNoEvalAsInteger = NAsInteger * CoeffReadCostAsInteger
   336         int(CostEvalAsInteger) < int(CostNoEvalAsInteger)
   346   return const_cast<T*
>(ptr);
   349 template<typename Derived, typename XprKind = typename traits<Derived>::XprKind>
   355 template<
typename Derived>
   361 template<
typename Derived>
   369 template<
typename Derived,
typename Scalar,
typename OtherScalar,
   378 template<
typename Derived,
typename Scalar,
typename OtherScalar>
   384     return CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
   388   inline friend const CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
   389   operator*(
const OtherScalar& scalar, 
const Derived& matrix)
   412 template<
typename ExpressionType, 
typename Scalar = 
typename ExpressionType::Scalar>
   415   typedef Matrix<Scalar, 1, ExpressionType::ColsAtCompileTime,
   417   typedef Array<Scalar, 1, ExpressionType::ColsAtCompileTime,
   427 template<
typename ExpressionType, 
typename Scalar = 
typename ExpressionType::Scalar>
   430   typedef Matrix<Scalar, ExpressionType::RowsAtCompileTime, 1,
   432   typedef Array<Scalar, ExpressionType::RowsAtCompileTime, 1,
   442 template<
typename ExpressionType, 
typename Scalar = 
typename ExpressionType::Scalar>
   458 template<
typename ExpressionType>
   469 #endif // EIGEN_XPRHELPER_H 
Matrix< Scalar, ExpressionType::RowsAtCompileTime, 1, ExpressionType::PlainObject::Options &~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1 > MatrixColType
ArrayBase< Derived > type
conditional< bool(traits< T >::Flags &NestByRefBit), T const &, const T >::type type
#define EIGEN_EMPTY_STRUCT_CTOR(X)
#define EIGEN_ONLY_USED_FOR_DEBUG(x)
plain_matrix_type< T >::type type
#define EIGEN_DEFAULT_DENSE_INDEX_TYPE
variable_if_dynamicindex(T value)
const CwiseUnaryOp< scalar_multiple2_op< Scalar, OtherScalar >, Derived > operator*(const OtherScalar &scalar) const 
T * const_cast_ptr(const T *ptr)
remove_all< CastType >::type _CastType
const unsigned int DirectAccessBit
const Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & type
const unsigned int LvalueBit
conditional< bool(internal::is_const< T1 >::value), typename internal::add_const_on_value_type< T2 >::type, T2 >::type type
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
const internal::permut_matrix_product_retval< PermutationDerived, Derived, OnTheRight > operator*(const MatrixBase< Derived > &matrix, const PermutationBase< PermutationDerived > &permutation)
#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
#define EIGEN_SIZE_MIN_PREFER_FIXED(a, b)
const unsigned int RowMajorBit
const unsigned int PacketAccessBit
const unsigned int AlignedBit
conditional< is_same< typename traits< ExpressionType >::XprKind, MatrixXpr >::value, MatrixRowType, ArrayRowType >::type type
Matrix< Scalar, 1, ExpressionType::ColsAtCompileTime, ExpressionType::PlainObject::Options|RowMajor, 1, ExpressionType::MaxColsAtCompileTime > MatrixRowType
friend const CwiseUnaryOp< scalar_multiple2_op< Scalar, OtherScalar >, Derived > operator*(const OtherScalar &scalar, const Derived &matrix)
Array< Scalar, diag_size, 1, ExpressionType::PlainObject::Options &~RowMajor, max_diag_size, 1 > ArrayDiagType
Base class for all 1D and 2D array, and related expressions. 
plain_matrix_type_dense< T, typename traits< T >::XprKind >::type type
const Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & type
Matrix< _Scalar, _Rows, _Cols, Options, _MaxRows, _MaxCols > type
const unsigned int NestByRefBit
EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex
variable_if_dynamicindex()
_CastType::Scalar NewScalarType
Array< Scalar, 1, ExpressionType::ColsAtCompileTime, ExpressionType::PlainObject::Options|RowMajor, 1, ExpressionType::MaxColsAtCompileTime > ArrayRowType
#define EIGEN_SIZE_MIN_PREFER_DYNAMIC(a, b)
conditional< is_same< CurrentScalarType, NewScalarType >::value, const XprType &, CastType >::type type
General-purpose arrays with easy API for coefficient-wise operations. 
no_assignment_operator& operator=(const no_assignment_operator&)
conditional< is_same< typename traits< ExpressionType >::XprKind, MatrixXpr >::value, MatrixDiagType, ArrayDiagType >::type type
variable_if_dynamic(T value)
const unsigned int EvalBeforeNestingBit
Generic expression where a coefficient-wise unary operator is applied to an expression. 
The matrix class, also used for vectors and row-vectors. 
conditional< is_same< typename traits< ExpressionType >::XprKind, MatrixXpr >::value, MatrixColType, ArrayColType >::type type
Matrix< Scalar, diag_size, 1, ExpressionType::PlainObject::Options &~RowMajor, max_diag_size, 1 > MatrixDiagType
XprType::Scalar CurrentScalarType
Base class for all dense matrices, vectors, and expressions. 
const unsigned int LinearAccessBit
Array< Scalar, ExpressionType::RowsAtCompileTime, 1, ExpressionType::PlainObject::Options &~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1 > ArrayColType
MatrixBase< Derived > type