Todo for 3.0

From Eigen
Revision as of 02:58, 10 November 2009 by Bjacob (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Eigen Owl Todo.jpg

This Todo is to keep track of the things that must be done for Eigen 3.0. There is a separate Todo for long-term and generalist Todo items. There is also a separate Release schedule for 3.0.

Note that this is a sortable table, so try to make it sort nicely. For the "status" column, let's use this convention:

Grade Meaning
0 nothing started
1 some discussion happened
2 some development started
3 mostly feature-complete
4 feature-complete and mostly stable API
5 complete, tested, and stable API

For the "owner" column, put whoever started working on it or is planning to, multiple persons possible, don't hesitate to add yourself as more help is always welcome!

Must-have for Eigen 3.0

Topic Task Who Status
Core - xpr trees Investigate making nest-by-value the default for expressions and killing NestByValue. Thoroughly test the impact on performance. Hauke 2 - Hauke started it
Decompositions - rank API Do in the QR module (ColPiv and FullPiv), in the SVD module, and in the self-adjoint eigensolver, the same rank-determining API as in FullPivLU. That involves making rank(), isInvertible() etc... methods, using a threshold controlled by a setThreshold method. That also involves adding kernel/image methods. Benoit 1 - some threads
Decompositions - kernel for given dimension In all rank-revealing decompositions, it would be nice to have a function to construct the kernel matrix for a prescribed dimension of the kernel. At the very least for SVD decompositions, where this would just be taking the n singular vectors associated to the n smallest singular values. In real-world use cases, this is the most useful way to get the kernel. The same idea should then be applied to image() for good measure. Benoit 1 - discussed with Keir
Binary library: BLAS Implement a BLAS library using Eigen. Useful both in itself, and as a prerequisite for other Todo items (ultimately for using the LAPACK test-suite). Gael 2 - see blas/ directory
Binary library: LAPACK Implement a LAPACK library using Eigen. Useful both in itself, and as a prerequisite for the Todo item about using the LAPACK test-suite. 1 - some threads
Tests : original LAPACK testsuite The idea is that once we have a LAPACK library implemented using Eigen, we should be able to run the original LAPACK testsuite directly against it. 1 - thread "back from google"
Tests : precision-oriented tests Most of our current tests only check for rough sanity of the result, we need precision-oriented tests too. Since it's impossible to predict what the precision of a computation should be in general, one should manually record precision at a time when the algorithm is known to be sane, and make that the benchmark to check against, to prevent future regressions. Another approach is to compare precision to other existing libraries, but then, probably only some LAPACK libs are reliable enough for that. 0

Nice to have but shouldn't block Eigen 3.0