use eigen objects for the lmder callback

This commit is contained in:
Thomas Capricelli
2009-08-23 03:02:03 +02:00
parent 2727099906
commit 3251e12258
2 changed files with 134 additions and 119 deletions

View File

@@ -64,7 +64,7 @@ L20:
/* evaluate the function at the starting point */
/* and calculate its norm. */
iflag = Functor::f(m, n, x.data(), fvec.data(), fjac.data(), ldfjac, 1);
iflag = Functor::f(x, fvec, fjac, 1);
nfev = 1;
if (iflag < 0) {
goto L300;
@@ -82,7 +82,7 @@ L30:
/* calculate the jacobian matrix. */
iflag = Functor::f(m, n, x.data(), fvec.data(), fjac.data(), ldfjac, 2);
iflag = Functor::f(x, fvec, fjac, 2);
++njev;
if (iflag < 0) {
goto L300;
@@ -95,7 +95,7 @@ L30:
}
iflag = 0;
if ((iter - 1) % nprint == 0) {
iflag = Functor::f(m, n, x.data(), fvec.data(), fjac.data(), ldfjac, 0);
iflag = Functor::f(x, fvec, fjac, 0);
}
if (iflag < 0) {
goto L300;
@@ -237,7 +237,7 @@ L200:
/* evaluate the function at x + p and calculate its norm. */
iflag = Functor::f(m, n, wa2.data(), wa4.data(), fjac.data(), ldfjac, 1);
iflag = Functor::f(wa2, wa4, fjac, 1);
++nfev;
if (iflag < 0) {
goto L300;
@@ -378,7 +378,7 @@ L300:
}
iflag = 0;
if (nprint > 0) {
iflag = Functor::f(m, n, x.data(), fvec.data(), fjac.data(), ldfjac, 0);
iflag = Functor::f(x, fvec, fjac, 0);
}
return info;