| Commit message (Collapse) | Author | Age |
| |
|
| |
|
|
|
|
|
|
| |
header,
so let's declare them after and do the respective fixes ;)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
included after the architecture specific files such that they
can be adapted by each platform.
|
|
|
|
|
| |
=> they show that some improvements have still to be done
for permutations, tr*tr, trapezoidal matrices
|
|
|
|
|
|
| |
not even with huge numbers of repetitions.
Finally the createRandomMatrixOfRank() function is renamed to createRandomPIMatrixOfRank, where PI stands for 'partial isometry', that is, a matrix whose singular values are 0 or 1.
|
|
|
|
|
|
|
|
|
| |
fuzzy compare
(fixes lu test failures when testing solve())
* LU test: set appropriate threshold and limit the number of times that a specially tricky test
is run. (fixes lu test failures when testing rank()).
* Tests: rename createRandomMatrixOfRank to createRandomProjectionOfRank
|
|
|
|
| |
Renamed ReturnByValue::ReturnMatrixType ReturnByValue::ReturnType (again, Array != Matrix).
|
| |
|
| |
|
|
|
|
| |
and fix various compilation issues
|
|
|
|
| |
put them in a new internal 'misc' directory
|
|
|
|
| |
*improve documentation
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
| |
ei_add_test_multi.
When enabled, large tests are split into smaller executables.
This needs minimal changes in the unit tests.
Updated the LU test to use it.
|
|
|
|
| |
* ReturnByValue: after all don't eval to temporary for generic MatrixBase impl
|
|
|
|
| |
matrix as parameter. It was the only method to use it anyway. Introduce m_isInitialized.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* continue the decomposition until a pivot is exactly zero;
don't try to compute the rank in the decomposition itself.
* Instead, methods such as rank() use a new internal parameter
called 'threshold' to determine which pivots are to be
considered nonzero.
* The threshold is by default determined by defaultThreshold()
but the user can override that by calling useThreshold(value).
* In solve/kernel/image, don't assume that the diagonal of U
is sorted in decreasing order, because that's only approximately
true. Additional work was needed to extract the right pivots.
|
|
|
|
| |
also: adding resize() to MatrixBase was really needed ;)
|
| |
|
|
|
|
|
| |
* make them return zero vector in the degenerate case, instead of asserting
(let's stick to the principle that we only assert on memory errors)
|
| |
|
| |
|
|
|
|
|
|
|
| |
coding style
* add snippet for computeInverseWithCheck documentation
* expand unit-tests to cover computeInverseWithCheck
|
|\ |
|
| |
| |
| |
| | |
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.
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
| |
* add image() and computeImage() methods, with unit test
* fix a mistake in the definition of KernelResultType
* fix and improve comments
|
| |
|
|
|
|
|
|
| |
few bits left of the comma and for floating-point types will never return zero.
This replaces the custom functions in test/main.h, so one does not anymore need
to think about that when writing tests.
|
|
|
|
|
|
|
| |
in Cholesky
* fix all numerical instabilies in the unit tests, now all tests can be run 2000 times
with almost zero failures.
|
|
|
|
|
|
|
|
| |
very small fixed size matrices)
* bugfix in Dot unroller
* added special random generator for the unit tests and reduced the tolerance threshold by an order of magnitude
this fixes issues with sum.cpp but other tests still failed sometimes, this have to be carefully checked...
|
|
* some cleanup, and grant me a copyright line on the determinant test.
|