| MRPT
    2.0.1
    | 
A templated column-indexed efficient storage of block-sparse Jacobian or Hessian matrices, together with other arbitrary information.
Columns are stored in a non-associative container, but the contents of each column are kept within an std::map<> indexed by row. All submatrix blocks have the same size, which allows dense storage of them in fixed-size matrices, avoiding costly memory allocations.
| NROWS | Rows in each elementary matrix. | 
| NCOLS | Cols in each elementary matrix. | 
| INFO | Type of the extra data fields within each block | 
| HAS_REMAP | Is true, an inverse mapping between column indices and "user IDs" is kept. | 
| INDEX_REMAP_MAP_IMPL | Ignore if HAS_REMAP=false. Defaults to "mrpt::containers::map_as_vector<size_t,size_t>" for amortized O(1). Can be set to "std::map<size_t,size_t>" in very sparse systems to save memory at the cost of a O(log N) access time when using the remap indices. | 
Definition at line 41 of file MatrixBlockSparseCols.h.
#include <mrpt/math/MatrixBlockSparseCols.h>
| Classes | |
| struct | TEntry | 
| Public Types | |
| using | matrix_t = Eigen::Matrix< Scalar, NROWS, NCOLS > | 
| using | symbolic_t = INFO | 
| using | col_t = std::map< size_t, TEntry > | 
| Each compressed sparse column.  More... | |
| Public Member Functions | |
| MatrixBlockSparseCols () | |
| col_t & | getCol (const size_t idx) | 
| const col_t & | getCol (const size_t idx) const | 
| const mrpt::containers::map_as_vector< size_t, size_t > & | getColInverseRemappedIndices () const | 
| const std::vector< size_t > & | getColRemappedIndices () const | 
| col_t & | appendCol (const size_t remapIndex) | 
| Append one column, returning a ref to the new col_t data.  More... | |
| void | setColCount (const size_t nCols) | 
| Change the number of columns (keep old contents)  More... | |
| size_t | cols () const | 
| Get current number of cols.  More... | |
| void | clearColEntries () | 
| Clear all the entries in each column (do not change the number of columns, though!)  More... | |
| void | clearAll () | 
| Clear all the entries in each column (do not change the number of columns, though!)  More... | |
| void | saveToTextFileAsDense (const std::string &filename, const bool force_symmetry=false, const bool is_col_compressed=true) const | 
| Builds a dense representation of the matrix and saves to a text file.  More... | |
| void | getAsDense (mrpt::math::CMatrixDouble &D, const bool force_symmetry=false, const bool is_col_compressed=true) const | 
| Builds a dense representation of the matrix and saves to a text file.  More... | |
| size_t | findCurrentNumberOfRows () const | 
| Goes over all the columns and keep the largest column length.  More... | |
| template<class MATRIX > | |
| void | getBinaryBlocksRepresentation (MATRIX &out) const | 
| Builds a binary matrix with 1s where an elementary matrix is stored, 0s elsewhere.  More... | |
| void | copyNumericalValuesFrom (const MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP > &o) | 
| Clear the current contents of this objects and replicates the sparse structure and numerical values of o.  More... | |
| Private Attributes | |
| std::deque< col_t > | m_cols | 
| -> cols[i]: i'th column.  More... | |
| mrpt::containers::map_as_vector< size_t, size_t > | col_inverse_remapped_indices | 
| "remapped index" is the index of some global variable, interpreted by the external user of this class.  More... | |
| std::vector< size_t > | col_remapped_indices | 
| using mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::col_t = std::map<size_t, TEntry> | 
Each compressed sparse column.
Definition at line 55 of file MatrixBlockSparseCols.h.
| using mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::matrix_t = Eigen::Matrix<Scalar, NROWS, NCOLS> | 
Definition at line 43 of file MatrixBlockSparseCols.h.
| using mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::symbolic_t = INFO | 
Definition at line 44 of file MatrixBlockSparseCols.h.
| 
 | inline | 
Definition at line 70 of file MatrixBlockSparseCols.h.
| 
 | inline | 
Append one column, returning a ref to the new col_t data.
Definition at line 86 of file MatrixBlockSparseCols.h.
References mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::col_inverse_remapped_indices, mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::col_remapped_indices, and mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
| 
 | inline | 
Clear all the entries in each column (do not change the number of columns, though!)
Definition at line 115 of file MatrixBlockSparseCols.h.
References mrpt::containers::map_as_vector< KEY, VALUE, VECTOR_T >::clear(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::col_inverse_remapped_indices, mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::col_remapped_indices, and mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
| 
 | inline | 
Clear all the entries in each column (do not change the number of columns, though!)
Definition at line 108 of file MatrixBlockSparseCols.h.
References mrpt::containers::clear(), and mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
| 
 | inline | 
Get current number of cols.
Definition at line 105 of file MatrixBlockSparseCols.h.
References mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
| 
 | inline | 
Clear the current contents of this objects and replicates the sparse structure and numerical values of o.
Definition at line 202 of file MatrixBlockSparseCols.h.
References mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
| 
 | inline | 
Goes over all the columns and keep the largest column length.
Definition at line 171 of file MatrixBlockSparseCols.h.
References mrpt::containers::begin(), mrpt::keep_max(), and mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
Referenced by mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::getAsDense(), and mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::getBinaryBlocksRepresentation().
| 
 | inline | 
Builds a dense representation of the matrix and saves to a text file.
| is_col_compressed | true: interpret this object as compressed by cols; false: compressed by rows | 
Definition at line 139 of file MatrixBlockSparseCols.h.
References mrpt::containers::begin(), mrpt::math::MatrixVectorBase< Scalar, Derived >::block(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::findCurrentNumberOfRows(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols, and mrpt::math::CMatrixDynamic< T >::setSize().
Referenced by mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::saveToTextFileAsDense().
| 
 | inline | 
Builds a binary matrix with 1s where an elementary matrix is stored, 0s elsewhere.
Definition at line 186 of file MatrixBlockSparseCols.h.
References mrpt::containers::begin(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::findCurrentNumberOfRows(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols, and out.
| 
 | inline | 
Definition at line 71 of file MatrixBlockSparseCols.h.
References mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
| 
 | inline | 
Definition at line 72 of file MatrixBlockSparseCols.h.
References mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
| 
 | inline | 
Definition at line 74 of file MatrixBlockSparseCols.h.
| 
 | inline | 
Definition at line 79 of file MatrixBlockSparseCols.h.
| 
 | inline | 
Builds a dense representation of the matrix and saves to a text file.
Definition at line 126 of file MatrixBlockSparseCols.h.
References mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::getAsDense(), and mrpt::math::MatrixVectorBase< Scalar, Derived >::saveToTextFile().
| 
 | inline | 
Change the number of columns (keep old contents)
Definition at line 103 of file MatrixBlockSparseCols.h.
References mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::m_cols.
| 
 | private | 
"remapped index" is the index of some global variable, interpreted by the external user of this class.
Definition at line 66 of file MatrixBlockSparseCols.h.
Referenced by mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::appendCol(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::clearAll(), and mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::getColInverseRemappedIndices().
| 
 | private | 
Definition at line 67 of file MatrixBlockSparseCols.h.
Referenced by mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::appendCol(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::clearAll(), and mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::getColRemappedIndices().
| 
 | private | 
-> cols[i]: i'th column.
-> Each column is a map [row] -> TEntry
Definition at line 61 of file MatrixBlockSparseCols.h.
Referenced by mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::appendCol(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::clearAll(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::clearColEntries(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::cols(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::copyNumericalValuesFrom(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::findCurrentNumberOfRows(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::getAsDense(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::getBinaryBlocksRepresentation(), mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::getCol(), and mrpt::math::MatrixBlockSparseCols< Scalar, NROWS, NCOLS, INFO, HAS_REMAP, INDEX_REMAP_MAP_IMPL >::setColCount().
| Page generated by Doxygen 1.8.14 for MRPT 2.0.1 Git: 0fef1a6d7 Fri Apr 3 23:00:21 2020 +0200 at vie abr 3 23:20:28 CEST 2020 |