| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
innerStride(), outerStride(), and size()""
This reverts commit 5f0b4a4010af4cbf6161a0d1a03a747addc44a5d.
|
|
|
|
|
|
|
| |
innerStride(), outerStride(), and size()"
This reverts commit 6cbb3038ac48cb5fe17eba4dfbf26e3e798041f1 because it
breaks clang-10 builds on x86 and aarch64 when C++11 is enabled.
|
|
|
|
| |
outerStride(), and size()
|
| |
|
| |
|
|
|
|
| |
limit temporaries, 2) forward expressions to nested decompositions, 3) fix ambiguous ctor instanciation for square decomposition
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
tests.
|
| |
|
| |
|
|
|
|
|
| |
- remove most of the metaprogramming kung fu in MathFunctions.h (only keep functions that differs from the std)
- remove the overloads for array expression that were in the std namespace
|
| |
|
| |
|
|
|
|
|
|
| |
missing ones, etc.
(note that const qualifiers are set by internall::nested)
|
| |
|
|
|
|
|
|
| |
* remove ctors taking more than 2 ints
* rename actualVectors to length
* add length/shift/trans accessors/mutators
|
| |
|
| |
|
| |
|
|
|
|
| |
MatrixTReturnType typedef
|
|
|
|
| |
Tridiagonalization::matrixT() more efficient and future proof.
|
|
|
|
|
|
|
| |
Renamed meta_{true|false} to {true|false}_type, meta_if to conditional, is_same_type to is_same, un{ref|pointer|const} to remove_{reference|pointer|const} and makeconst to add_const.
Changed boolean type 'ret' member to 'value'.
Changed 'ret' members refering to types to 'type'.
Adapted all code occurences.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- all what's not in unsupported/ is considered stable API
(except internal stuff e.g. expression templates).
|
| |
|
|
|
|
|
| |
Clean-up after revision 469382407ca5d730f23788c593e71e91d24e9b89
.
|
|
|
|
|
|
|
|
|
|
| |
* Clean a bit the Triadiagonalization making sure it the inplace
function really works inplace ;), and that only the lower
triangular part of the matrix is referenced.
* Remove the Tridiagonalization member object of SelfAdjointEigenSolver
exploiting the in place capability of HouseholdeSequence.
* Update unit test to check SelfAdjointEigenSolver only consider
the lower triangular part.
|
| |
|
| |
|
| |
|
|
|
|
| |
As discussed on the list (too long to explain here).
|
|
|
|
|
|
|
| |
This is to avoid dynamic memory allocations in the compute() methods of
ComplexEigenSolver, EigenSolver, and SelfAdjointEigenSolver where possible.
As a result, Tridiagonalization::decomposeInPlace() is no longer used.
Biggest remaining issue is the allocation in HouseholderSequence::evalTo().
|
|
|
|
| |
This method is a member of Tridiagonalization and HessenbergDecomposition.
|
| |
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
| |
preallocates member data structures.
- Updated unit tests to check above constructor.
- In the compute() method of decompositions: Made temporary matrices/vectors class members to avoid heap allocations during compute() (when dynamic matrices are used, of course).
These changes can speed up decomposition computation time when a solver instance is used to solve multiple same-sized problems. An added benefit is that the compute() method can now be invoked in contexts were heap allocations are forbidden, such as in real-time control loops.
CAVEAT: Not all of the decompositions in the Eigenvalues module have a heap-allocation-free compute() method. A future patch may address this issue, but some required API changes need to be incorporated first.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
specialization
of ei_matrix_array for size 0
* adapt many xprs to have the right storage order, now that it matters
* add static assert on expressions to check that vector xprs
have the righ storage order
* adapt ei_plain_matrix_type_(column|row)_major
* implement assignment of selfadjointview to matrix
(was before failing to compile) and add nestedExpression() methods
* expand product_symm test
* in ei_gemv_selector, use the PlainObject type instead of a custom Matrix<...> type
* fix VectorBlock and Block mistakes
|
|
|
|
| |
the vector case
|
|
|
|
|
|
|
| |
decomposition classes. One particular advantage of this is that decomposing matrices with max sizes known at compile time will not allocate.
NOTE: The ComplexEigenSolver class currently _does_ allocate (line 135 of Eigenvalues/ComplexEigenSolver.h), but the reason appears to be in the implementation of matrix-matrix products, and not in the decomposition itself.
The nomalloc unit test has been extended to verify that decompositions do not allocate when max sizes are specified. There are currently two workarounds to prevent the test from failing (see comments in test/nomalloc.cpp), both of which are related to matrix products that allocate on the stack.
|
|
|
|
| |
and remove the respective bit flags
|
|
|
|
|
|
| |
start ---> head
end ---> tail
Much frustration with sed syntax. Need to learn perl some day.
|
| |
|