diff options
author | 2008-06-26 23:22:26 +0000 | |
---|---|---|
committer | 2008-06-26 23:22:26 +0000 | |
commit | e5d301dc961ddfaba6e38c497904b2aee378a7cc (patch) | |
tree | 04630bcb26c851447f470d576a98140d6390f278 /Eigen/src/Core/util/Meta.h | |
parent | c5bd1703cb05f60a00f948a222e3d61eaf7ab5ad (diff) |
various work on the Sparse module:
* 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
Diffstat (limited to 'Eigen/src/Core/util/Meta.h')
-rw-r--r-- | Eigen/src/Core/util/Meta.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Eigen/src/Core/util/Meta.h b/Eigen/src/Core/util/Meta.h index 5d809f619..93d50441e 100644 --- a/Eigen/src/Core/util/Meta.h +++ b/Eigen/src/Core/util/Meta.h @@ -175,7 +175,9 @@ template<int _Rows, int _Cols> struct ei_size_at_compile_time enum { ret = (_Rows==Dynamic || _Cols==Dynamic) ? Dynamic : _Rows * _Cols }; }; -template<typename T> class ei_eval +template<typename T, int Sparseness = ei_traits<T>::Flags&SparseBit> class ei_eval; + +template<typename T> class ei_eval<T,Dense> { typedef typename ei_traits<T>::Scalar _Scalar; enum {_Rows = ei_traits<T>::RowsAtCompileTime, |