aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/NonLinearOptimization
diff options
context:
space:
mode:
authorGravatar Thomas Capricelli <orzel@freehackers.org>2009-11-10 21:33:36 +0100
committerGravatar Thomas Capricelli <orzel@freehackers.org>2009-11-10 21:33:36 +0100
commitae76c977041e7584324738a3075d4a926508dd90 (patch)
treeaebde3d33449dae5ef2d000703334062a75b75ef /unsupported/Eigen/NonLinearOptimization
parent6a56262bf41c06dfad538ee9d4e72aa0de356c40 (diff)
documentation fixes
Diffstat (limited to 'unsupported/Eigen/NonLinearOptimization')
-rw-r--r--unsupported/Eigen/NonLinearOptimization32
1 files changed, 15 insertions, 17 deletions
diff --git a/unsupported/Eigen/NonLinearOptimization b/unsupported/Eigen/NonLinearOptimization
index b73935b3b..601b1abc7 100644
--- a/unsupported/Eigen/NonLinearOptimization
+++ b/unsupported/Eigen/NonLinearOptimization
@@ -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.
//
// 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
* 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
- * beginning, which ensure that the same results are found, with the same
- * number of iterations.
+ * beginning, which ensure that the same results are found.
*
* \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.
* 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,
* 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).
- *
* 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
*
* \section API API : overview of methods
*
- * All algorithms can use either the jacobian (provided by the user) or compute
- * an approximation by themselves (or rather, using Eigen \ref NumericalDiff_Module)
- * The part of API referring to the latter use 'NumericalDiff' in the method name
+ * Both algorithms can use either the jacobian (provided by the user) or compute
+ * an approximation by themselves (actually using Eigen \ref NumericalDiff_Module).
+ * The part of API referring to the latter use 'NumericalDiff' in the method names
* (exemple: LevenbergMarquardt.minimizeNumericalDiff() )
*
* The methods LevenbergMarquardt.lmder1()/lmdif1()/lmstr1() and
* 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
- * previously using minpack. They just define a 'simple' API with default values
+ * minpack package that you probably should NOT use until you are porting a code that
+ * was previously using minpack. They just define a 'simple' API with default values
* for some parameters.
*
* 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
- * - one where you just call a method (optimize() or solve()) which will
- * basically do exactly the same : init + loop until a stop condition is met.
- * Those are provided for convenience.
+ * - one where the user just calls a method (optimize() or solve()) which will
+ * handle the loop: init + loop until a stop condition is met. Those are provided for
+ * convenience.
*
* As an example, the method LevenbergMarquardt.minimizeNumericalDiff() is
* implemented as follow :