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
Thomas Capricelli
312ab1abb3
further cleaning/ goto removing
2009-08-24 16:39:49 +02:00
Thomas Capricelli
c6d7da6edc
cleaning some more
2009-08-24 16:08:13 +02:00
Thomas Capricelli
63071ac968
cleaning, removing goto's, uniformization (try to reduce diff between
...
hybr[dj].h or lm[der,dif,str].h as much as possible), for future merging.
2009-08-24 16:05:57 +02:00
Thomas Capricelli
91a2145cb3
clean, remove goto's
2009-08-24 15:32:06 +02:00
Thomas Capricelli
d4968cd059
cleaning, fixing most goto's
2009-08-24 15:13:12 +02:00
Thomas Capricelli
e65a7c7c70
misc cleaning
2009-08-24 09:28:29 +02:00
Thomas Capricelli
6e41f15fea
use a local variable for qrfac
2009-08-24 09:13:06 +02:00
Thomas Capricelli
88f5d06b08
move ipvt/fortran fixing deeper
2009-08-24 08:45:06 +02:00
Thomas Capricelli
950eb4a254
various cleaning and homogeneization
2009-08-24 08:28:31 +02:00
Thomas Capricelli
930651ff9a
dogleg, lmpar : use more eigen features
2009-08-23 21:52:39 +02:00
Thomas Capricelli
4958c53bfb
trivial fixes
2009-08-23 21:47:55 +02:00
Thomas Capricelli
5e8dee7a19
eigenize dogleg()
2009-08-23 21:39:47 +02:00
Thomas Capricelli
f793dbe45c
only indentation fixes (this eases porting)
2009-08-23 21:06:57 +02:00
Thomas Capricelli
feb5af3ede
porting lmpar() to eigen : both api and some of the code
2009-08-23 21:04:55 +02:00
Thomas Capricelli
9a8c5cbd2c
misc cleaning
2009-08-23 06:16:05 +02:00
Thomas Capricelli
264e61932c
cleaning fdjac*()
2009-08-23 06:04:06 +02:00
Thomas Capricelli
f01332043b
only indentation
2009-08-23 05:56:12 +02:00
Thomas Capricelli
8b9b671e83
some eigenization in main algorithms
2009-08-23 05:55:43 +02:00
Thomas Capricelli
134dea76d3
beautify functors for lmdif, lmstr, hybrj, hybrd
2009-08-23 04:57:48 +02:00
Thomas Capricelli
acd757737a
beautify Functor for lmder : we now have f,df,debug methods
2009-08-23 04:39:22 +02:00
Thomas Capricelli
878f15b8a5
* use eigen object for callbacks for hybrd and lmdif
...
* use Functor instead of argument for ei_fdjac*()
2009-08-23 04:06:16 +02:00
Thomas Capricelli
f2fcbb0207
use eigen objects for ei_fdjac*(), this is a prerequisite before porting
...
hybrd/lmdif..
2009-08-23 03:54:40 +02:00
Thomas Capricelli
8a27e774f8
use eigen objects for hybrj and lmstr
2009-08-23 03:14:42 +02:00
Thomas Capricelli
3251e12258
use eigen objects for the lmder callback
2009-08-23 03:02:03 +02:00
Thomas Capricelli
1225704753
we do not need/use the 'void *p' parameter
2009-08-23 01:59:20 +02:00
Thomas Capricelli
a3e8a14e3a
forgot to clean this one
2009-08-22 07:40:43 +02:00
Thomas Capricelli
c5218c7d38
ei_lmpar : use a reference for the parameter
2009-08-22 07:37:23 +02:00
Thomas Capricelli
b3f8d02df4
use const for machine constants
2009-08-22 07:31:14 +02:00
Thomas Capricelli
bb6ffafdb9
keep on cleaning f2c mess
2009-08-22 07:27:17 +02:00
Thomas Capricelli
a35586504e
cleaning f2c mess / trivial stuff
2009-08-22 07:14:17 +02:00
Thomas Capricelli
aa3a7c3303
raw import of covar() : this is the last one, and we now do not depend on
...
the cminpack library anymore.
2009-08-22 06:44:41 +02:00
Thomas Capricelli
16061a46db
Now that the main algorithms are imported into eigen, we import subroutines
...
used by those algorithms (aka "second level").
This is a row import : we copy/paste the files from cminpack and make
very few changes :
* template<Scalar> them (replace double)
* dpmpar() replaced by c++ standard equivalent
* abs/fabs/sqrt/min/max replaced by ei_* or std::*
* use eigen norms instead of enorm()
Important Notes:
* The use of stableNorm() was not enough in some cases, but using
blueNorm() instead fixed the problems (some tests gave bad results,
either in number of iterations or precision of the results)
* As a whole, the only test that changed is testNistMGH17() : it now takes
some few steps less to get the same result. So this is a small improvement.
After this commit, the only remaining dependency from the cminpack
static library is 'covar', only used from the tests.
2009-08-22 06:40:22 +02:00
Thomas Capricelli
783f355904
cleaning defines from f2c (use std::min and such instead of own ones)
2009-08-22 05:32:17 +02:00
Thomas Capricelli
11c3762068
cleaning : removing #define, use std:min() and such
2009-08-22 05:29:33 +02:00