Go to the documentation of this file.00001 
00011 
00012 
00013 
00014 
00015 #ifndef ECL_LINEAR_ALGEBRA_EIGEN_PLUGIN_HPP_
00016 #define ECL_LINEAR_ALGEBRA_EIGEN_PLUGIN_HPP_
00017 
00018 
00019 
00020 
00021 
00022 typedef MatrixFormatter<Derived,Scalar> Formatter;
00023 
00024 inline void conservativeResize(int rows, int cols)
00025 {
00026    PlainObject tmp(rows, cols); 
00027    const int common_rows = std::min(rows, this->rows());
00028    const int common_cols = std::min(cols, this->cols());
00029    tmp.block(0,0,common_rows,common_cols) = this->block(0,0,common_rows,common_cols);
00030    this->derived().swap(tmp);
00031 }
00032 
00033 inline void conservativeResize(int size)
00034 {
00035    EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
00036 
00037    if (RowsAtCompileTime == 1)
00038    {
00039           PlainObject tmp(1,size); 
00040           const int common_size = std::min(cols(),size);
00041           tmp.block(0,0,1,common_size) = this->block(0,0,1,common_size);
00042           this->derived().swap(tmp);
00043    }
00044    else
00045    {
00046           PlainObject tmp(size,1); 
00047           const int common_size = std::min(rows(),size);
00048           tmp.block(0,0,common_size,1) = this->block(0,0,common_size,1);
00049           this->derived().swap(tmp);
00050    }
00051 }
00052 
00053 #endif