Thomas Capricelli
d3850641a1
remove some duplicated code LevenbergMarquardt::minimizeNumericalDiff*() by
...
using the generic Eigen NumericalDiff recently introduced.
LevenbergMarquardt::lmdif1(), which is provided as a convenience method for
people porting code from (c)minpack, is now a static function
2009-09-28 03:26:42 +02:00
Thomas Capricelli
87be19de4a
central sheme for numerical diff
2009-09-28 02:55:30 +02:00
Thomas Capricelli
206b5e3972
starting work on a Numerical differenciation module
2009-09-28 02:43:07 +02:00
Thomas Capricelli
a453298322
cleaning doc
2009-09-28 02:42:19 +02:00
Thomas Capricelli
bee14ee8e6
use operator() so that to be coherent with eigen AutoDiff functor
2009-09-28 00:32:31 +02:00
Thomas Capricelli
956d65ea63
define a generic functor and makes other ones inherit it
2009-09-28 00:18:14 +02:00
Thomas Capricelli
7a8ec4ba26
cleaning
2009-09-15 04:17:11 +02:00
Thomas Capricelli
6d8baa757e
fix indentation (and only that)
2009-09-14 23:47:44 +02:00
Thomas Capricelli
ab88ba6f7f
provide some default values for important results. So that we can read them
...
even before *Init() and do no get random values.
2009-09-13 23:55:08 +02:00
Thomas Capricelli
8c3f7d8e94
cleaning
2009-09-13 01:44:34 +02:00
Thomas Capricelli
8b84c3733a
functors need not be const
2009-09-11 20:50:01 +02:00
Thomas Capricelli
72746838ad
merge with tip
2009-09-10 02:37:08 +02:00
Jitse Niesen
2a6db40f10
Re-factor matrix exponential.
...
Put all routines in a class. I think this is a cleaner design.
2009-09-08 14:51:34 +01:00
Thomas Capricelli
e3db42611b
fix warning about unused variable
2009-08-29 02:48:44 +02:00
Thomas Capricelli
c990938415
eigenization of fcn_chkder + bugfix
2009-08-29 02:46:19 +02:00
Thomas Capricelli
16d08b2b0f
check number of evaluation even in the case of *1(), now we have it..
2009-08-26 14:47:10 +02:00
Thomas Capricelli
458947af5e
move Parameters as a class member, simplify calling sequence. Convenience
...
methods from minpack ( "*1()" ) get their original name back : they are
only useful when porting, anyway. Still, i prefer to keep them.
2009-08-26 14:23:05 +02:00
Thomas Capricelli
c1be96967e
remove printfs, they are of no use and may prevent compilation
2009-08-26 01:09:23 +02:00
Thomas Capricelli
6de3f5f0e7
cleaning
2009-08-25 23:47:22 +02:00
Thomas Capricelli
eac9293449
split every algorithm in *Init() + while(running) { *OneStep() }
2009-08-25 23:43:33 +02:00
Thomas Capricelli
bbd44ef0ad
move more stuff into Parameters
2009-08-25 23:37:27 +02:00
Thomas Capricelli
a2abb4afb6
cleaning
2009-08-25 23:26:36 +02:00
Thomas Capricelli
baec4f39ab
reduce local variables so that we can split algorithms
2009-08-25 22:49:05 +02:00
Thomas Capricelli
be368c33bb
cleaning
2009-08-25 22:15:09 +02:00
Thomas Capricelli
470ea55834
put nfev/njev as internal variables as well
2009-08-25 22:13:08 +02:00
Thomas Capricelli
41b6ea81db
oops... fixing return values, some copy/paste was done far too quickly
2009-08-25 22:06:58 +02:00
Thomas Capricelli
3bca4bba87
if mode==2, the user is supposed to supply diag: do some basic check.
2009-08-25 22:02:19 +02:00
Thomas Capricelli
fa0183e7c7
make diag be an internal variable too
2009-08-25 21:59:10 +02:00
Thomas Capricelli
e465ea82e1
define and use struct Parameters
2009-08-25 21:50:01 +02:00
Thomas Capricelli
d13bcdc891
those are actually bools
2009-08-25 20:01:30 +02:00
Thomas Capricelli
84f2c451e5
cleaning
2009-08-25 19:57:42 +02:00
Thomas Capricelli
d38d4709bc
use an enum for status reporting
2009-08-25 19:48:53 +02:00
Thomas Capricelli
d59cc0ad82
merge files
2009-08-25 17:25:56 +02:00
Thomas Capricelli
493c72ac38
rename files
2009-08-25 17:21:16 +02:00
Thomas Capricelli
858acfcc64
remove the boring, old-school nprint option, we'll have a dedicated
...
method for 'one iteration' anyway.
2009-08-25 17:11:14 +02:00
Thomas Capricelli
613a464320
cleaning
2009-08-25 16:48:09 +02:00
Thomas Capricelli
6c1a9703b1
move most of results vectors/matrices inside respective classes.
2009-08-25 16:08:09 +02:00
Thomas Capricelli
38fc6c8553
cleaning
2009-08-25 14:28:19 +02:00
Thomas Capricelli
201f58e528
merge both c methods lmstr/lmstr1 into one class
...
LevenbergMarquardtOptimumStorage with two methods.
2009-08-25 14:18:38 +02:00
Thomas Capricelli
3f1b81e129
merge both c methods lmdif/lmdif1 into one class
...
LevenbergMarquardtNumericalDiff with two methods.
2009-08-25 14:09:19 +02:00
Thomas Capricelli
a736378331
cleaning
2009-08-25 14:03:30 +02:00
Thomas Capricelli
d880e6f774
merge both c methods hybrj1/hybrj into one class HybridNonLinearSolver with
...
two methods. hybrd stuff renamed to HybridNonLinearSolverNumericalDiff.
2009-08-25 13:56:25 +02:00
Thomas Capricelli
a043708e87
merge both c methods hybrd/hybrd1 into one class HybridNonLinearSolver with
...
two methods.
2009-08-25 13:48:25 +02:00
Thomas Capricelli
602b13815f
merge both c methods lmder/lmder1 into one class LevenbergMarquardt with
...
two methods.
2009-08-25 13:40:45 +02:00
Thomas Capricelli
86cb9364c9
clean fortran stuff in fdjac*
2009-08-24 21:53:08 +02:00
Thomas Capricelli
45442b8d41
some more work on Functors
2009-08-24 21:48:22 +02:00
Thomas Capricelli
15d2c3af90
playing with functors
2009-08-24 19:45:35 +02:00
Thomas Capricelli
4e62e29869
cleaning covar
2009-08-24 17:49:37 +02:00
Thomas Capricelli
17905c7399
eigenization of ei_covar()
2009-08-24 17:47:35 +02:00
Thomas Capricelli
f69869c42a
covar : cleaning, removing goto's
2009-08-24 16:49:38 +02:00