* make the _Flags template parameter of Matrix default to the corrected

flags. This ensures that unless explicitly messed up otherwise,
  a Matrix type is equal to its own Eval type. This seriously reduces
  the number of types instantiated. Measured +13% compile speed, -7%
  binary size.

* Improve doc of Matrix template parameters.
This commit is contained in:
Benoit Jacob
2008-06-13 07:53:45 +00:00
parent e3fac69f19
commit c90c77051f
5 changed files with 62 additions and 36 deletions

View File

@@ -163,9 +163,14 @@ template<typename T> class ei_product_eval_to_column_major
typedef Matrix<_Scalar,
ei_traits<T>::RowsAtCompileTime,
ei_traits<T>::ColsAtCompileTime,
ei_corrected_matrix_flags<_Scalar, ei_size_at_compile_time<_MaxRows,_MaxCols>::ret, _Flags>::ret & ~RowMajorBit,
ei_traits<T>::MaxRowsAtCompileTime,
ei_traits<T>::MaxColsAtCompileTime> type;
ei_traits<T>::MaxColsAtCompileTime,
ei_corrected_matrix_flags<
_Scalar,
ei_size_at_compile_time<_MaxRows,_MaxCols>::ret,
_Flags
>::ret & ~RowMajorBit
> type;
};
// as ei_nested, but evaluate to a column-major matrix if an evaluation is required