documentation fixes

This commit is contained in:
Thomas Capricelli 2009-11-10 21:33:36 +01:00
parent 6a56262bf4
commit ae76c97704
2 changed files with 16 additions and 18 deletions

View File

@ -1,4 +1,4 @@
// This file is part of Eigen, a lightweight C++ template library // This file is part of Eugenio, a lightweight C++ template library
// for linear algebra. // for linear algebra.
// //
// Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org> // Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
@ -59,15 +59,14 @@ namespace Eigen {
* *
* Finally, we ported this code to Eigen, creating classes and API * Finally, we ported this code to Eigen, creating classes and API
* coherent with Eigen. When possible, we switched to Eigen * coherent with Eigen. When possible, we switched to Eigen
* implementation, such as most linear algebra (vectors, matrices, "good" norms). * implementation, such as most linear algebra (vectors, matrices, stable norms).
* *
* Doing so, we were very careful to check the tests we setup at the very * Doing so, we were very careful to check the tests we setup at the very
* beginning, which ensure that the same results are found, with the same * beginning, which ensure that the same results are found.
* number of iterations.
* *
* \section Tests Tests * \section Tests Tests
* *
* The tests are placed in the directory unsupported/test/NonLinear.cpp. * The tests are placed in the file unsupported/test/NonLinear.cpp.
* *
* There are two kinds of tests : those that come from examples bundled with cminpack. * There are two kinds of tests : those that come from examples bundled with cminpack.
* They guaranty we get the same results as the original algorithms (value for 'x', * They guaranty we get the same results as the original algorithms (value for 'x',
@ -81,32 +80,31 @@ namespace Eigen {
* code. Please note that we do not always get the exact same decimals as they do, * code. Please note that we do not always get the exact same decimals as they do,
* but this is ok : they use 128bits float, and we do the tests using the C type 'double', * but this is ok : they use 128bits float, and we do the tests using the C type 'double',
* which is 64 bits on most platforms (x86 and amd64, at least). * which is 64 bits on most platforms (x86 and amd64, at least).
*
* I've performed those tests on several other implementations of levenberg-marquardt, and * I've performed those tests on several other implementations of levenberg-marquardt, and
* (c)minpack perform VERY well compared to those, both in accuracy and speed. * (c)minpack performs VERY well compared to those, both in accuracy and speed.
* *
* The documentation for running the test is on the wiki * The documentation for running the tests is on the wiki
* http://eigen.tuxfamily.org/index.php?title=Developer%27s_Corner#Running_the_unit_tests * http://eigen.tuxfamily.org/index.php?title=Developer%27s_Corner#Running_the_unit_tests
* *
* \section API API : overview of methods * \section API API : overview of methods
* *
* All algorithms can use either the jacobian (provided by the user) or compute * Both algorithms can use either the jacobian (provided by the user) or compute
* an approximation by themselves (or rather, using Eigen \ref NumericalDiff_Module) * an approximation by themselves (actually using Eigen \ref NumericalDiff_Module).
* The part of API referring to the latter use 'NumericalDiff' in the method name * The part of API referring to the latter use 'NumericalDiff' in the method names
* (exemple: LevenbergMarquardt.minimizeNumericalDiff() ) * (exemple: LevenbergMarquardt.minimizeNumericalDiff() )
* *
* The methods LevenbergMarquardt.lmder1()/lmdif1()/lmstr1() and * The methods LevenbergMarquardt.lmder1()/lmdif1()/lmstr1() and
* HybridNonLinearSolver.hybrj1()/hybrd1() are specific methods from the original * HybridNonLinearSolver.hybrj1()/hybrd1() are specific methods from the original
* minpack package that you probably should NOT use but if you port a code that was * minpack package that you probably should NOT use until you are porting a code that
* previously using minpack. They just define a 'simple' API with default values * was previously using minpack. They just define a 'simple' API with default values
* for some parameters. * for some parameters.
* *
* All algorithms are provided using Two APIs : * All algorithms are provided using Two APIs :
* - one where you init the algorithm, and use '*OneStep()' as much as you want : * - one where the user inits the algorithm, and uses '*OneStep()' as much as he wants :
* this way the caller have control over the steps * this way the caller have control over the steps
* - one where you just call a method (optimize() or solve()) which will * - one where the user just calls a method (optimize() or solve()) which will
* basically do exactly the same : init + loop until a stop condition is met. * handle the loop: init + loop until a stop condition is met. Those are provided for
* Those are provided for convenience. * convenience.
* *
* As an example, the method LevenbergMarquardt.minimizeNumericalDiff() is * As an example, the method LevenbergMarquardt.minimizeNumericalDiff() is
* implemented as follow : * implemented as follow :

View File

@ -54,7 +54,7 @@ namespace Eigen {
* differenciation software that exist, but should rather stick with those * differenciation software that exist, but should rather stick with those
* basic ones, that still are useful for testing. * basic ones, that still are useful for testing.
* *
* Also, the module "Non linear optimization" needs this in order to * Also, the \ref NonLinearOptimization_Module needs this in order to
* provide full features compatibility with the original (c)minpack * provide full features compatibility with the original (c)minpack
* package. * package.
* *