| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
| |
construction of generic expressions working
for both dense and sparse matrix. A nicer solution
would be to use CwiseBinaryOp for any kind of matrix.
To this end we either need to change the overall design
so that the base class(es) depends on the kind of matrix,
or we could add a template parameter to each expression
type (e.g., int Kind = ei_traits<MatrixType>::Kind)
allowing to specialize each expression for each kind of matrix.
* Extend AutoDiffScalar to work with sparse vector expression
for the derivatives.
|
| |
|
|
|
|
|
|
| |
Triadiagonalization and HessenbergDecomposition)
* rework a bit AnyMatrixBase, and mobe it to a separate file
|
|
|
|
| |
transpose and adjoint
|
|
|
|
|
|
|
|
|
| |
- rename EvalBeforeAssignBit to MayAliasBit
- make .lazy() remove the MayAliasBit only, and mark it as deprecated
- add a NoAlias pseudo expression, and MatrixBase::noalias() function
Todo:
- we have to decide whether += and -= assume no aliasing by default ?
- once we agree on the API: update the Sparse module and the unit tests respectively.
|
| |
|
|
|
|
|
| |
and make Jacobi and SelfAdjointEigenSolver use it
=> ~ x1.75 speedup for JacobiSVD and x2 for SelfAdjointEigenSolver
|
| |
|
|
|
|
|
|
| |
TriangularProduct
and SelfAdjointMatrixProduct to take advantage of it => fewer LOC
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
lower triangular matrix and row or col major lhs.
TODO: handle upper triangular and row major rhs cases
|
| |
| |
| |
| |
| | |
It is currently available via SelfAdjointView::rankKupdate.
TODO: allows to write SelfAdjointView += u * u.adjoint()
|
| | |
|
| |
| |
| |
| |
| | |
* started an efficient selfadjoint matrix * general matrix product
based on the generic kernels ( => need a very little LOC)
|
| |
| |
| |
| | |
vectorization friendly algorithm (slow if no vectorization)
|
| |
| |
| |
| | |
to the main/sub/super diagonals seems to work well.
|
|\| |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Note that it is already used in Tridiagonalization.
|
| |
| |
| |
| | |
Still remains the problem of alignment and vectorization.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* move solveTriangular*() to TriangularView::solve*()
* move .llt() to SelfAdjointView
* add a high level wrapper to the efficient selfadjoint * vector product
* improve LLT so that we can specify which triangular part is meaningless
=> there are still many things to do (doc, cleaning, improve the matrix products, etc.)
|
| | |
|
|/ |
|
|\ |
|
| |
| |
| |
| | |
it never made very precise sense. but now does it still make any?
|
|/
|
|
| |
* add writable .real() and .imag() functions
|
|
|
|
|
|
| |
introduce ei_is_diagonal to check for it
DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic
-> add MatrixBase::diagonal(int) with unittest and doc
|
| |
|
| |
|
|
|
|
|
|
|
| |
Until now, the user had to edit the source code to do that.
Internally, add EIGEN_ALIGN that takes into account both EIGEN_DONT_ALIGN.and
EIGEN_ARCH_WANTS_ALIGNMENT. From now on, only EIGEN_ALIGN should be used to
test whether we want to align.
|
| |
|
|
|
|
|
|
|
|
| |
Pommier. They are for float only, and they return exactly the same
result as the standard versions in about 90% of the cases. Otherwise the max error
is below 1e-7. However, for very large values (>1e3) the accuracy of sin and cos
slighlty decrease. They are about 3 or 4 times faster than 4 calls to their respective
standard versions. So, is it ok to enable them by default in their respective functors ?
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* add Homogeneous expression for vector and set of vectors (aka matrix)
=> the next step will be to overload operator*
* add homogeneous normalization (again for vector and set of vectors)
* add a Replicate expression (with uni-directional replication
facilities)
=> for all of them I'll add examples once we agree on the API
* fix gcc-4.4 warnings
* rename reverse.cpp array_reverse.cpp
|
|
|
|
| |
return-by-value API style (will soon use it for the transform products)
|
|
|
|
|
|
| |
* add an efficient selfadjoint * vector implementation (= blas symv)
perf are inbetween MKL and GOTO
=> the interface is still missing (have to be rethougth)
|
|
|
|
| |
* add vectorization for minCoeff and maxCoeff
|
|
|
|
| |
* apply Ricard Marxer's prod() patch with fixes for the vectorized path
|
| |
|
| |
|
| |
|
|
|
|
| |
containers. There is still a compile-time problem with STL containers that have a standard-conformant resize() method, but this should resolve the original user issue which was storing aligned objects in a std::map.
|
|
|
|
| |
of Eigen, and add a MSVC-friendly path in StaticAssert.
|
|
|
|
| |
* disable vectorization on MSVC 2005, as it doesn't have all the required intrinsics. require 2008.
|
|
|
|
| |
detects SSE2
|
| |
|
| |
|
|
|
|
| |
Berres.
|