This is the first non-beta release of the 2.0 series. 2.0 has more features and is more general, easier to use, much less buggy, and smaller than 1.x. The new features compared to 2.0_Beta8 are matrix square root and ln, SL<>::ln; Sim(2) and Sim(3) groups; CLAPACK compatibility; and much better FADBAD++ integration. In addition to numerous miscellaneous bugfixes, bugs have been fixed in platform compatibility and the builtin SVD.
Major enhancements are: support for std::complex and automatic differentation with FADBAD++, support for storing Vector in STL containers, sparse Jacobians in Gauss-Newton optimizer, pkg-config support, and const correctness. Minor enhancements include NaN-proofing of ConjugateGradient, more complete regression tests, correctness tests for SO3, and doxygen tag file support. In addition, a number of bugs have been fixed.
Bugs have been fixed. The compliance of C++ code has been improved (including improved compatibility with Visual Studio). The consistency of function naming has been improved. There is more backwards compatibility with TooN-1 and more documentation.
In addition to many bugfixes, several features have been added. Mixed static/dynamic slices. Built-in singular value decomposition (much faster than LAPACK for small to moderate sized matrices). Symmetric matrix square root and inverse square root. Accurate numerical derivatives (first and second) using Ridder's method. Efficient resizable vectors. A regression testing framework. Better backwards compatibility with TooN-1. Single precision LAPACK based Cholesky decomposition. More documentation.
This release adds some new features: a new reweighting class for IRLS, a determinant function, and miscellaneous matrix operations. It adds a lot of documentation, including documentation of the internals, and has a number of minor bugfixes.