* added some glue to Eigen/Core (SparseBit, ei_eval, Matrix)
* add two new sparse matrix types:
HashMatrix: based on std::map (for random writes)
LinkedVectorMatrix: array of linked vectors
(for outer coherent writes, e.g. to transpose a matrix)
* add a SparseSetter class to easily set/update any kind of matrices, e.g.:
{ SparseSetter<MatrixType,RandomAccessPattern> wrapper(mymatrix);
for (...) wrapper->coeffRef(rand(),rand()) = rand(); }
* automatic shallow copy for RValue
* and a lot of mess !
plus:
* remove the remaining ArrayBit related stuff
* don't use alloca in product for very large memory allocation
25 lines
565 B
Plaintext
25 lines
565 B
Plaintext
#ifndef EIGEN_SPARSE_MODULE_H
|
|
#define EIGEN_SPARSE_MODULE_H
|
|
|
|
#include "Core"
|
|
#include <vector>
|
|
#include <map>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
namespace Eigen {
|
|
|
|
#include "src/Sparse/SparseUtil.h"
|
|
#include "src/Sparse/SparseMatrixBase.h"
|
|
#include "src/Sparse/SparseProduct.h"
|
|
#include "src/Sparse/SparseArray.h"
|
|
#include "src/Sparse/SparseMatrix.h"
|
|
#include "src/Sparse/HashMatrix.h"
|
|
#include "src/Sparse/LinkedVectorMatrix.h"
|
|
#include "src/Sparse/CoreIterators.h"
|
|
#include "src/Sparse/SparseSetter.h"
|
|
|
|
} // namespace Eigen
|
|
|
|
#endif // EIGEN_SPARSE_MODULE_H
|