| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
| |
adjoint, -, and scalar multiple seems to be well handled. It only remains
the simpler case: C = alpha*(A*B) ... for the next commit
|
|
|
|
|
| |
=> significant speedup in expr. like a.adjoint() * b,
for complex scalar type (~ x3)
|
|
|
|
|
| |
* fix Block::operator+= product which was not optimized
* fix some compilation issues
|
|
|
|
|
|
|
|
|
| |
alpha * A * B
* this allows to optimize xpr like C -= lazy_product, still have to catch "scalar_product_of_lazy_product"
* started to support conjugate in cache friendly products (very useful to evaluate A * B.adjoint() without
evaluating B.adjoint() into a temporary
* compilation fix
|
|
|
|
|
|
|
|
| |
* 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.)
|
|
|
|
| |
* fix a bug is SparseMatrix
|
|
|
|
| |
(it used to be partially vectorized and that had been lost in the big changes from the previous commit)
|
| |
|
|
|
|
| |
* add VectorwiseOp's +, -, +=, -= operators
|
| |
|
|
|
|
|
|
| |
* Fixed a bug in umeyama for fixed size matrices.
* Fixed the umeyama unit test for fixed size matrices.
* Added XprHelper::ei_plain_matrix_type_row_major.
|
| |
|
|\ |
|
| |
| |
| |
| | |
it never made very precise sense. but now does it still make any?
|
| | |
|
| |
| |
| |
| |
| |
| | |
Added default ctor and public compute method as
well as safe-guards against uninitialized usage.
Added unit tests for the safe-guards.
|
| |
| |
| |
| |
| |
| | |
Added default ctor and public compute method as well
as safe-guards against uninitialized usage.
Added unit tests for the safe-guards.
|
| |
| |
| |
| |
| |
| | |
Added default ctor and public compute method as
well as safe-guards against uninitialized usage.
Added unit tests for the safe-guards.
|
|/
|
|
| |
* add writable .real() and .imag() functions
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
r-by-c diag. with rank non-zero values)
* switched lu/qr tests to be using createRandomMatrixOfRank
* removed unused methods doSomeRankPreservingOperations
* removed NOTE about doSomeRankPreservingOperations
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
introduce ei_is_diagonal to check for it
DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic
-> add MatrixBase::diagonal(int) with unittest and doc
|
| |
|
|
|
|
|
|
|
| |
--->they go into Matrix as they resize.
*add isConstant() alias to isApproxToConstant()
*extend unit-test
*change an assert into a static assert
|
|
|
|
| |
* test Part::swap
|
|
|
|
| |
making fitHyperplane no longer use it)
|
|
|
|
|
|
|
|
|
|
|
|
| |
deprecated). Basically there are now only 2 functions to set a
coefficient:
1) mat.coeffRef(row,col) = value;
2) mat.insert(row,col) = value;
coeffRef has no limitation, insert assumes the coeff has not already
been set, and raises an assert otherwise.
In addition I added a much lower level, but more efficient filling
mechanism for
internal use only.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
fails (casting to same type should not prevent vectorization)
|
| |
|
|
|
|
| |
ei_compute_inverse_in_size4_case (reported by mikola on IRC)
|
|
|
|
| |
solver support with a sparse matrix as the rhs.
|
|
|
|
|
|
|
|
|
| |
* Cholesky decs are NOT rank revealing so remove all the rank/isPositiveDefinite etc stuff.
* fix bug in LLT: s/return/continue/
* introduce machine_epsilon constants, they are actually needed for Higman's formula determining
the cutoff in Cholesky. Btw fix the page reference to his book (chat with Keir).
* solve methods always return true, since this isn't a rank revealing dec. Actually... they already did always return true!! Now it's explicit.
* updated dox and unit-test
|
|
|
|
| |
transpose() about aliasing effects.
|
|
|
|
|
|
|
|
|
| |
* in LDLT, support the negative semidefinite case
* fix bad floating-point comparisons, improves greatly the accuracy of methods like
isPositiveDefinite() and rank()
* simplifications
* identify (but not resolve) bug: claim that only triangular part is used, is inaccurate
* expanded unit-tests
|
| |
|
|
|
|
|
|
|
|
| |
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 ?
|
| |
|
|
|
|
| |
broken)
|
| |
|
| |
|
|
|
|
|
|
| |
* add Projective and AffineCompact modes as an optional third template
argument
* extend Transform::operator* to support more use cases
|