| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
| |
This is also important to make sure that A.conjugate() * B.conjugate() does not evaluate
its arguments into temporaries (e.g., if A and B are fixed and small, or * fall back to lazyProduct)
|
|
|
|
|
|
|
| |
product.
Before only s*A*B was caught which was both inconsistent with GEMM, sub-optimal,
and could even lead to compilation-errors (https://stackoverflow.com/questions/54738495).
|
|
|
|
|
|
|
|
|
| |
EIGEN_DECLARE_TEST(mytest) { /* code */ }.
This provide several advantages:
- more flexibility in designing unit tests
- unit tests can be glued to speed up compilation
- unit tests are compiled with same predefined macros, which is a requirement for zapcc
|
| |
|
|
|
|
|
|
| |
stack local temporaries via alloca, and let outer-products makes a good use of it.
If successful, we should use it everywhere nested_eval is used to declare local dense temporaries.
|
| |
|
|
|
|
| |
evaluated multiple times.
|
| |
|
|
|
|
| |
evaluator_traits::AssumeAliasing to evaluator_assume_aliasing.
|
|
|
|
| |
already implemented)
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* get rid of BlockReturnType: it was not needed, and code was not always using it consistently anyway
* add topRows(), leftCols(), bottomRows(), rightCols()
* add corners unit-test covering all of that
* adapt docs, expand "porting from eigen 2 to 3"
* adapt Eigen2Support
|
|
|
|
| |
nontrivial inner stride is OK.
|
|
|
|
| |
* temporarily disable tests that strangely fail, with a big FIXME
|
|
|
|
|
|
|
|
|
| |
removal of extra _Base/_Options template parameters.
* Introduction of strides-at-compile-time so for example the optimized code really knows when it needs to evaluate to a temporary
* StorageKind / XprKind
* Quaternion::setFromTwoVectors: use JacobiSVD instead of SVD
* ComplexSchur: support the 1x1 case
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Moved EIGEN_DEBUG_MATRIX_CTOR to ei_matrix_storage to capture resize related allocations.
|
| |
|
| |
|
|
|
|
| |
and remove the respective bit flags
|
|
|
|
|
|
| |
DenseStorageBase
base class shared by both Matrix and Array
|
|
|
|
|
|
|
|
|
|
| |
* renaming, e.g. LU ---> FullPivLU
* split tests framework: more robust, e.g. dont generate empty tests if a number is skipped
* make all remaining tests use that splitting, as needed.
* Fix 4x4 inversion (see stable branch)
* Transform::inverse() and geo_transform test : adapt to new inverse() API, it was also trying to instantiate inverse() for 3x4 matrices.
* CMakeLists: more robust regexp to parse the version number
* misc fixes in unit tests
|
|
|
|
| |
automatically, by parsing the source file. No risk anymore to specify the wrong number of tests! Also, introduce CALL_SUBTESTX for X=1..10 that allows to port existing code much quicker. And port already the product* and eigensolver* files.
|
|
|
|
|
| |
- perhaps we can find a better name ?
- note that the QR module still includes the EigenSolver module for compatibility
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
| |
optimized
as one could naturally expect
|