| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
- split sparse_basic unit test
- various fixes in sparse module
|
| |
|
|
|
|
|
|
| |
Question 1: why are *=scalar and /=scalar working right away ?
Same weirdness in DynamicSparseMatrix where operators += and -= work wihout
having to redefine them ???
|
|
|
|
| |
* add an option to disable Qt testing
|
|
|
|
|
| |
* add row(i), col(i) functions
* add prune() function to remove small coefficients
|
| |
|
| |
|
| |
|
|
|
|
| |
correctly initialized to 0.
|
|
|
|
|
|
| |
* add a MappedSparseMatrix class (like Eigen::Map but for sparse
matrices)
* rename SparseArray to CompressedStorage
|
|
|
|
|
| |
* improved performance of mat*=scalar
* bug fix in cwise*
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MatrixBase.
That means a lot of features which were available for sparse matrices
via the dense (and super slow) implemention are no longer available.
All features which make sense for sparse matrices (aka can be implemented efficiently) will be
implemented soon, but don't expect to see an API as rich as for the dense path.
Other changes:
* no block(), row(), col() anymore.
* instead use .innerVector() to get a col or row vector of a matrix.
* .segment(), start(), end() will be back soon, not sure for block()
* faster cwise product
|
| |
|
| |
|
|
|
|
|
|
| |
* enable complex support for the CHOLMOD LLT backend
using CHOLMOD's triangular solver
* quick fix for complex support in SparseLLT::solve
|
| |
|
| |
|
|
|
|
|
| |
* fix some "unused variable" warnings in the tests; there remains a libstdc++ "deprecated"
warning which I haven't looked much into
|
|
|
|
|
| |
which allows to fill a matrix with random inner coordinates (makes sense
only when a very few coeffs are inserted per col/row)
|
|
|
|
|
|
|
|
|
| |
* add a LDL^T factorization with solver using code from T. Davis's LDL
library (LPGL2.1+)
* various bug fixes in trianfular solver, matrix product, etc.
* improve cmake files for the supported libraries
* split the sparse unit test
* etc.
|
|
|
|
|
| |
for both backends.
* extended a bit the sparse unit tests
|
|
|
|
|
| |
using SuperLU. Calling SuperLU was very painful, but it was worth it,
it seems to be damn fast !
|
| |
|
|
|
|
|
| |
* bidirectionnal mapping
* full cholesky factorization
|
|
|
|
|
|
|
|
|
|
| |
* several fixes (transpose, matrix product, etc...)
* Added a basic cholesky factorization
* Added a low level hybrid dense/sparse vector class
to help writing code involving intensive read/write
in a fixed vector. It is currently used to implement
the matrix product itself as well as in the Cholesky
factorization.
|
| |
|
|
|
|
|
| |
Block specialization for sparse matrices.
InnerIterators for Blocks and fixes in CoreIterators.
|
|
|
|
| |
preprocessor directives.
|
|
|
|
|
| |
* clean ugly doxygen inheritence of expressions
* keep improving the documentation... slowly !
|
|
|
|
| |
#include<algorithm> so I'm not sure how it compiled at all for you :)
|
| |
|
|
|
|
|
|
| |
- bugfix in SparseMatrix
- add a sparse unit test
* renamed Transform::affine => linear
|
|
|
|
|
|
|
| |
might be twice faster fot small fixed size matrix
* added a sparse triangular solver (sparse version
of inverseProduct)
* various other improvements in the Sparse module
|
|
|
|
|
|
|
| |
* added complete implementation of sparse matrix product
(with a little glue in Eigen/Core)
* added an exhaustive bench of sparse products including GMM++ and MTL4
=> Eigen outperforms in all transposed/density configurations !
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
to "public:method()" i.e. reimplementing the generic method()
from MatrixBase.
improves compilation speed by 7%, reduces almost by half the call depth
of trivial functions, making gcc errors and application backtraces
nicer...
|
|
- uses the common "Compressed Column Storage" scheme
- supports every unary and binary operators with xpr template
assuming binaryOp(0,0) == 0 and unaryOp(0) = 0 (otherwise a sparse
matrix doesnot make sense)
- this is the first commit, so of course, there are still several shorcommings !
|