| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changeset also includes:
* add HouseholderSequence::conjugateIf
* define int as the StorageIndex type for all dense solvers
* dedicated unit tests, including assertion checking
* _check_solve_assertion(): this method can be implemented in derived solver classes to implement custom checks
* CompleteOrthogonalDecompositions: add applyZOnTheLeftInPlace, fix scalar type in applyZAdjointOnTheLeftInPlace(), add missing assertions
* Cholesky: add missing assertions
* FullPivHouseholderQR: Corrected Scalar type in _solve_impl()
* BDCSVD: Unambiguous return type for ternary operator
* SVDBase: Corrected Scalar type in _solve_impl()
|
| |
|
|
|
|
| |
for complex numbers. Made corresponding unit test actually test that. Also simplify implementation of QR decompositions
|
|
|
|
| |
run on GPU yet.
|
|
|
|
| |
(those used to break old nvcc versions that we propably don't care anymore)
|
| |
|
| |
|
|
|
|
| |
decompositions.
|
|
|
|
| |
warnings
|
|
|
|
| |
limit temporaries, 2) forward expressions to nested decompositions, 3) fix ambiguous ctor instanciation for square decomposition
|
|
|
|
| |
end-user decompositions.
|
| |
|
|
|
|
| |
when it make sense). In all other cases use the global Index type.
|
|
|
|
| |
to StorageIndex, make Dense*::StorageIndex an alias to DenseIndex. Overall this commit gets rid of all Index conversion warnings.
|
| |
|
| |
|
| |
|
|
|
|
| |
the Solve<> expression. Introduce a SolveWithGuess expression on top of Solve.
|
| |
|
| |
|
| |
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
default windows.h
(transplanted from 49b6e9143e1d74441924c0c313536e263e12a55c
)
|
| |
|
| |
|
|
|
|
|
| |
- all what's not in unsupported/ is considered stable API
(except internal stuff e.g. expression templates).
|
| |
|
| |
|
|
|
|
| |
This is all internal stuff for now.
|
| |
|
| |
|
|
|
|
| |
As discussed on the list (too long to explain here).
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
ReturnByValue col-vector
* remove a few useless resize() in evalTo() implementations
|
|
|
|
| |
Renamed ReturnByValue::ReturnMatrixType ReturnByValue::ReturnType (again, Array != Matrix).
|
|
|
|
|
|
|
|
|
| |
EIGEN_SIZE_MIN instead of EIGEN_ENUM_MIN, and there are many other occurences throughout Eigen!
* HouseholderSequence:
- add shift parameter
- add essentialVector() method to start abstracting the direction
- add unit test in householder.cpp
|
| |
|
| |
|
|
|
|
| |
and remove the respective bit flags
|
|\ |
|