* remove set(), revert to old behavior where = resizes

* try to be clever in matrix ctors and operator=: be lazy when we can, always allow
  to copy rowvector into columnvector, check the template parameters,
  try to factor the code better
* add missing copy ctor in UnalignedType
* fix bug in the traits of DiagonalProduct
* renaming: EIGEN_TUNE_FOR_CPU_CACHE_SIZE
* update the dox a little
This commit is contained in:
Benoit Jacob
2009-01-21 17:10:23 +00:00
parent a5fbf27843
commit 5f43a42ee7
17 changed files with 170 additions and 114 deletions

View File

@@ -134,10 +134,12 @@ namespace adtl {
\section PreprocessorDirectives Preprocessor directives
The value of the following preprocessor tokens can be overwritten by defining them before including any Eigen's headers.
You can control some aspects of Eigen by defining the following preprocessor tokens them before including any of Eigen's headers.
- \b EIGEN_NO_DEBUG disables Eigen assertions. Like NDEBUG but only affects Eigen's assertions.
- \b EIGEN_DONT_VECTORIZE disables explicit vectorization when defined.
- \b EIGEN_UNROLLING_LIMIT defines the maximal instruction counts to enable meta unrolling of loops. Set it to zero to disable unrolling. The default is 100.
- \b EIGEN_TUNE_FOR_L2_CACHE_SIZE represents the maximal size in Bytes of L2 blocks. Since several blocks have to stay concurently in L2 cache, this value should correspond to at most 1/4 of the size of L2 cache.
- \b EIGEN_DEFAULT_TO_ROW_MAJOR the default storage order for matrices becomes row-major instead of column-major.
- \b EIGEN_TUNE_FOR_CPU_CACHE_SIZE represents the maximal size in Bytes of L2 blocks. Since several blocks have to stay concurently in L2 cache, this value should correspond to at most 1/4 of the size of L2 cache.
- \b EIGEN_NO_STATIC_ASSERT replaces compile time static assertions by runtime assertions
- \b EIGEN_MATRIXBASE_PLUGIN see \ref ExtendingMatrixBase

View File

@@ -214,13 +214,13 @@ Matrix3f mf = md.cast<float>();
\endcode
Note that casting to the same scalar type in an expression is free.
The sizes of a resizable destination matrix can be changed automatically using the Matrix::set() function:
The destination matrix is automatically resized in any assignment:
\code
MatrixXf res(10,10);
Matrix3f a, b;
res = a + b; // does not work (no automatic resizing)
res.set(a+b); // OK
res = a+b; // OK: res is resized to size 3x3
\endcode
Of course, fixed-size matrices can't be resized.
\subsection TutorialMap Map