mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
use eigen objects for hybrj and lmstr
This commit is contained in:
@@ -70,7 +70,7 @@ L20:
|
||||
/* evaluate the function at the starting point */
|
||||
/* and calculate its norm. */
|
||||
|
||||
iflag = Functor::f(n, x.data(), fvec.data(), fjac.data(), ldfjac, 1);
|
||||
iflag = Functor::f(x, fvec, fjac, 1);
|
||||
nfev = 1;
|
||||
if (iflag < 0) {
|
||||
goto L300;
|
||||
@@ -92,7 +92,7 @@ L30:
|
||||
|
||||
/* calculate the jacobian matrix. */
|
||||
|
||||
iflag = Functor::f(n, x.data(), fvec.data(), fjac.data(), ldfjac, 2);
|
||||
iflag = Functor::f(x, fvec, fjac, 2);
|
||||
++njev;
|
||||
if (iflag < 0) {
|
||||
goto L300;
|
||||
@@ -202,9 +202,8 @@ L180:
|
||||
goto L190;
|
||||
}
|
||||
iflag = 0;
|
||||
if ((iter - 1) % nprint == 0) {
|
||||
iflag = Functor::f(n, x.data(), fvec.data(), fjac.data(), ldfjac, 0);
|
||||
}
|
||||
if ((iter - 1) % nprint == 0)
|
||||
iflag = Functor::f(x, fvec, fjac, 0);
|
||||
if (iflag < 0) {
|
||||
goto L300;
|
||||
}
|
||||
@@ -232,7 +231,7 @@ L190:
|
||||
|
||||
/* evaluate the function at x + p and calculate its norm. */
|
||||
|
||||
iflag = Functor::f(n, wa2.data(), wa4.data(), fjac.data(), ldfjac, 1);
|
||||
iflag = Functor::f(wa2, wa4, fjac, 1);
|
||||
++nfev;
|
||||
if (iflag < 0) {
|
||||
goto L300;
|
||||
@@ -395,9 +394,8 @@ L300:
|
||||
if (iflag < 0) {
|
||||
info = iflag;
|
||||
}
|
||||
if (nprint > 0) {
|
||||
iflag = Functor::f(n, x.data(), fvec.data(), fjac.data(), ldfjac, 0);
|
||||
}
|
||||
if (nprint > 0)
|
||||
iflag = Functor::f(x, fvec, fjac, 0);
|
||||
return info;
|
||||
|
||||
/* last card of subroutine hybrj. */
|
||||
|
||||
@@ -66,7 +66,7 @@ L20:
|
||||
/* evaluate the function at the starting point */
|
||||
/* and calculate its norm. */
|
||||
|
||||
iflag = Functor::f(m, n, x.data(), fvec.data(), wa3.data(), 1);
|
||||
iflag = Functor::f(x, fvec, wa3, 1);
|
||||
nfev = 1;
|
||||
if (iflag < 0) {
|
||||
goto L340;
|
||||
@@ -89,7 +89,7 @@ L30:
|
||||
}
|
||||
iflag = 0;
|
||||
if ((iter - 1) % nprint == 0) {
|
||||
iflag = Functor::f(m, n, x.data(), fvec.data(), wa3.data(), 0);
|
||||
iflag = Functor::f(x, fvec, wa3, 0);
|
||||
}
|
||||
if (iflag < 0) {
|
||||
goto L340;
|
||||
@@ -111,7 +111,7 @@ L40:
|
||||
}
|
||||
iflag = 2;
|
||||
for (i = 0; i < m; ++i) {
|
||||
if (Functor::f(m, n, x.data(), fvec.data(), wa3.data(), iflag) < 0) {
|
||||
if (Functor::f(x, fvec, wa3, iflag) < 0) {
|
||||
goto L340;
|
||||
}
|
||||
temp = fvec[i];
|
||||
@@ -264,7 +264,7 @@ L240:
|
||||
|
||||
/* evaluate the function at x + p and calculate its norm. */
|
||||
|
||||
iflag = Functor::f(m, n, wa2.data(), wa4.data(), wa3.data(), 1);
|
||||
iflag = Functor::f(wa2, wa4, wa3, 1);
|
||||
++nfev;
|
||||
if (iflag < 0) {
|
||||
goto L340;
|
||||
@@ -406,7 +406,7 @@ L340:
|
||||
}
|
||||
iflag = 0;
|
||||
if (nprint > 0) {
|
||||
iflag = Functor::f(m, n, x.data(), fvec.data(), wa3.data(), 0);
|
||||
iflag = Functor::f(x, fvec, wa3, 0);
|
||||
}
|
||||
return info;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user