| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
Found using `codespell` and `grep` from downstream FreeCAD
|
|
|
|
| |
limit temporaries, 2) forward expressions to nested decompositions, 3) fix ambiguous ctor instanciation for square decomposition
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- 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).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
See "skipXxx / computeXxx parameters in Eigenvalues module" on mailing list.
|
|
|
|
| |
As discussed on the list (too long to explain here).
|
|
|
|
| |
This method is a member of Tridiagonalization and HessenbergDecomposition.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| | |
* adapt Eigenvalues module to the new rule that the RowMajorBit must have the proper value for vectors
* Fix RowMajorBit in ei_traits<ProductBase>
* Fix vectorizability logic in CoeffBasedProduct
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Make a minor correction to the ComplexSchur class.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
for consistency with the RealScalar type; correct ComplexEigenSolver
docs to take non-diagonalizable matrices into account; refactor
ComplexEigenSolver::compute().
|
| |
| |
| |
| | |
Add a test which covers this 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.
|
| |
|
|
|
|
| |
The value of c is actually used a few lines later.
|
|
|
|
|
| |
Both the new computation of the eigenvalues of a 2x2 block and the
exceptional shifts are taken from EISPACK routine COMQR.
|
|
|
|
| |
* make NumTraits inherits std::numeric_limits
|
|
|
|
|
|
| |
* add a new Eigen2Support module including Cwise, Flagged, and some other deprecated stuff
* add a few cwiseXxx functions
* adapt a few modules to use cwiseXxx instead of the .cwise() prefix
|
| |
|
| |
|
|
|