mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-30 17:40:05 +08:00
some more work on Functors
This commit is contained in:
parent
15d2c3af90
commit
45442b8d41
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_fdjac1(
|
int ei_fdjac1(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
||||||
@ -30,7 +31,7 @@ int ei_fdjac1(
|
|||||||
if (h == 0.)
|
if (h == 0.)
|
||||||
h = eps;
|
h = eps;
|
||||||
x[j] = temp + h;
|
x[j] = temp + h;
|
||||||
iflag = Functor::f(x, wa1);
|
iflag = Functor.f(x, wa1);
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
return iflag;
|
return iflag;
|
||||||
x[j] = temp;
|
x[j] = temp;
|
||||||
@ -46,7 +47,7 @@ int ei_fdjac1(
|
|||||||
if (h == 0.) h = eps;
|
if (h == 0.) h = eps;
|
||||||
x[j] = wa2[j] + h;
|
x[j] = wa2[j] + h;
|
||||||
}
|
}
|
||||||
iflag = Functor::f(x, wa1);
|
iflag = Functor.f(x, wa1);
|
||||||
if (iflag < 0) {
|
if (iflag < 0) {
|
||||||
return iflag;
|
return iflag;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_fdjac2(
|
int ei_fdjac2(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
||||||
@ -23,7 +24,7 @@ int ei_fdjac2(
|
|||||||
h = eps;
|
h = eps;
|
||||||
}
|
}
|
||||||
x[j] = temp + h;
|
x[j] = temp + h;
|
||||||
iflag = Functor::f(x, wa);
|
iflag = Functor.f(x, wa);
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
return iflag;
|
return iflag;
|
||||||
x[j] = temp;
|
x[j] = temp;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_hybrd(
|
int ei_hybrd(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
int &nfev,
|
int &nfev,
|
||||||
@ -64,7 +65,7 @@ int ei_hybrd(
|
|||||||
/* evaluate the function at the starting point */
|
/* evaluate the function at the starting point */
|
||||||
/* and calculate its norm. */
|
/* and calculate its norm. */
|
||||||
|
|
||||||
iflag = Functor::f(x, fvec);
|
iflag = Functor.f(x, fvec);
|
||||||
nfev = 1;
|
nfev = 1;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
@ -91,7 +92,7 @@ int ei_hybrd(
|
|||||||
|
|
||||||
/* calculate the jacobian matrix. */
|
/* calculate the jacobian matrix. */
|
||||||
|
|
||||||
iflag = ei_fdjac1<Functor,Scalar>(x, fvec, fjac,
|
iflag = ei_fdjac1(Functor, x, fvec, fjac,
|
||||||
nb_of_subdiagonals, nb_of_superdiagonals, epsfcn, wa1, wa2);
|
nb_of_subdiagonals, nb_of_superdiagonals, epsfcn, wa1, wa2);
|
||||||
nfev += msum;
|
nfev += msum;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
@ -163,12 +164,12 @@ int ei_hybrd(
|
|||||||
/* beginning of the inner loop. */
|
/* beginning of the inner loop. */
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
/* if requested, call Functor::f to enable printing of iterates. */
|
/* if requested, call Functor.f to enable printing of iterates. */
|
||||||
|
|
||||||
if (nprint > 0) {
|
if (nprint > 0) {
|
||||||
iflag = 0;
|
iflag = 0;
|
||||||
if ((iter - 1) % nprint == 0)
|
if ((iter - 1) % nprint == 0)
|
||||||
iflag = Functor::debug(x, fvec);
|
iflag = Functor.debug(x, fvec);
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
}
|
}
|
||||||
@ -191,7 +192,7 @@ int ei_hybrd(
|
|||||||
|
|
||||||
/* evaluate the function at x + p and calculate its norm. */
|
/* evaluate the function at x + p and calculate its norm. */
|
||||||
|
|
||||||
iflag = Functor::f(wa2, wa4);
|
iflag = Functor.f(wa2, wa4);
|
||||||
++nfev;
|
++nfev;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
@ -319,7 +320,7 @@ algo_end:
|
|||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
info = iflag;
|
info = iflag;
|
||||||
if (nprint > 0)
|
if (nprint > 0)
|
||||||
iflag = Functor::debug(x, fvec);
|
iflag = Functor.debug(x, fvec);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_hybrd1(
|
int ei_hybrd1(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Scalar tol = ei_sqrt(epsilon<Scalar>())
|
Scalar tol = ei_sqrt(epsilon<Scalar>())
|
||||||
@ -18,7 +19,8 @@ int ei_hybrd1(
|
|||||||
}
|
}
|
||||||
|
|
||||||
diag.setConstant(n, 1.);
|
diag.setConstant(n, 1.);
|
||||||
info = ei_hybrd<Functor,Scalar>(
|
info = ei_hybrd(
|
||||||
|
Functor,
|
||||||
x, fvec,
|
x, fvec,
|
||||||
nfev,
|
nfev,
|
||||||
fjac,
|
fjac,
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_hybrj(
|
int ei_hybrj(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
int &nfev,
|
int &nfev,
|
||||||
@ -59,7 +60,7 @@ int ei_hybrj(
|
|||||||
/* evaluate the function at the starting point */
|
/* evaluate the function at the starting point */
|
||||||
/* and calculate its norm. */
|
/* and calculate its norm. */
|
||||||
|
|
||||||
iflag = Functor::f(x, fvec);
|
iflag = Functor.f(x, fvec);
|
||||||
nfev = 1;
|
nfev = 1;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
@ -80,7 +81,7 @@ int ei_hybrj(
|
|||||||
|
|
||||||
/* calculate the jacobian matrix. */
|
/* calculate the jacobian matrix. */
|
||||||
|
|
||||||
iflag = Functor::df(x, fjac);
|
iflag = Functor.df(x, fjac);
|
||||||
++njev;
|
++njev;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
break;
|
break;
|
||||||
@ -151,12 +152,12 @@ int ei_hybrj(
|
|||||||
/* beginning of the inner loop. */
|
/* beginning of the inner loop. */
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
/* if requested, call Functor::f to enable printing of iterates. */
|
/* if requested, call Functor.f to enable printing of iterates. */
|
||||||
|
|
||||||
if (nprint > 0) {
|
if (nprint > 0) {
|
||||||
iflag = 0;
|
iflag = 0;
|
||||||
if ((iter - 1) % nprint == 0)
|
if ((iter - 1) % nprint == 0)
|
||||||
iflag = Functor::debug(x, fvec, fjac);
|
iflag = Functor.debug(x, fvec, fjac);
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
}
|
}
|
||||||
@ -179,7 +180,7 @@ int ei_hybrj(
|
|||||||
|
|
||||||
/* evaluate the function at x + p and calculate its norm. */
|
/* evaluate the function at x + p and calculate its norm. */
|
||||||
|
|
||||||
iflag = Functor::f(wa2, wa4);
|
iflag = Functor.f(wa2, wa4);
|
||||||
++nfev;
|
++nfev;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
@ -306,7 +307,7 @@ algo_end:
|
|||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
info = iflag;
|
info = iflag;
|
||||||
if (nprint > 0)
|
if (nprint > 0)
|
||||||
iflag = Functor::debug(x, fvec, fjac);
|
iflag = Functor.debug(x, fvec, fjac);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_hybrj1(
|
int ei_hybrj1(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
||||||
@ -18,7 +19,8 @@ int ei_hybrj1(
|
|||||||
}
|
}
|
||||||
|
|
||||||
diag.setConstant(n, 1.);
|
diag.setConstant(n, 1.);
|
||||||
info = ei_hybrj<Functor,Scalar>(
|
info = ei_hybrj(
|
||||||
|
Functor,
|
||||||
x, fvec,
|
x, fvec,
|
||||||
nfev, njev,
|
nfev, njev,
|
||||||
fjac,
|
fjac,
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_lmdif(
|
int ei_lmdif(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
int &nfev,
|
int &nfev,
|
||||||
@ -54,7 +55,7 @@ int ei_lmdif(
|
|||||||
/* evaluate the function at the starting point */
|
/* evaluate the function at the starting point */
|
||||||
/* and calculate its norm. */
|
/* and calculate its norm. */
|
||||||
|
|
||||||
iflag = Functor::f(x, fvec);
|
iflag = Functor.f(x, fvec);
|
||||||
nfev = 1;
|
nfev = 1;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
@ -71,17 +72,17 @@ int ei_lmdif(
|
|||||||
|
|
||||||
/* calculate the jacobian matrix. */
|
/* calculate the jacobian matrix. */
|
||||||
|
|
||||||
iflag = ei_fdjac2<Functor,Scalar>(x, fvec, fjac, epsfcn, wa4);
|
iflag = ei_fdjac2(Functor, x, fvec, fjac, epsfcn, wa4);
|
||||||
nfev += n;
|
nfev += n;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* if requested, call Functor::f to enable printing of iterates. */
|
/* if requested, call Functor.f to enable printing of iterates. */
|
||||||
|
|
||||||
if (nprint > 0) {
|
if (nprint > 0) {
|
||||||
iflag = 0;
|
iflag = 0;
|
||||||
if ((iter - 1) % nprint == 0)
|
if ((iter - 1) % nprint == 0)
|
||||||
iflag = Functor::debug(x, fvec);
|
iflag = Functor.debug(x, fvec);
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -177,7 +178,7 @@ int ei_lmdif(
|
|||||||
|
|
||||||
/* evaluate the function at x + p and calculate its norm. */
|
/* evaluate the function at x + p and calculate its norm. */
|
||||||
|
|
||||||
iflag = Functor::f(wa2, wa4);
|
iflag = Functor.f(wa2, wa4);
|
||||||
++nfev;
|
++nfev;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
@ -274,7 +275,7 @@ algo_end:
|
|||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
info = iflag;
|
info = iflag;
|
||||||
if (nprint > 0)
|
if (nprint > 0)
|
||||||
iflag = Functor::debug(x, fvec);
|
iflag = Functor.debug(x, fvec);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_lmdif1(
|
int ei_lmdif1(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Scalar tol = ei_sqrt(epsilon<Scalar>())
|
Scalar tol = ei_sqrt(epsilon<Scalar>())
|
||||||
@ -18,7 +19,8 @@ int ei_lmdif1(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
info = ei_lmdif<Functor,Scalar>(
|
info = ei_lmdif(
|
||||||
|
Functor,
|
||||||
x, fvec,
|
x, fvec,
|
||||||
nfev,
|
nfev,
|
||||||
fjac, ipvt, qtf, diag,
|
fjac, ipvt, qtf, diag,
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_lmstr(
|
int ei_lmstr(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
int &nfev,
|
int &nfev,
|
||||||
@ -55,7 +56,7 @@ int ei_lmstr(
|
|||||||
/* evaluate the function at the starting point */
|
/* evaluate the function at the starting point */
|
||||||
/* and calculate its norm. */
|
/* and calculate its norm. */
|
||||||
|
|
||||||
iflag = Functor::f(x, fvec);
|
iflag = Functor.f(x, fvec);
|
||||||
nfev = 1;
|
nfev = 1;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
@ -70,12 +71,12 @@ int ei_lmstr(
|
|||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
||||||
/* if requested, call Functor::f to enable printing of iterates. */
|
/* if requested, call Functor.f to enable printing of iterates. */
|
||||||
|
|
||||||
if (nprint > 0) {
|
if (nprint > 0) {
|
||||||
iflag = 0;
|
iflag = 0;
|
||||||
if ((iter - 1) % nprint == 0)
|
if ((iter - 1) % nprint == 0)
|
||||||
iflag = Functor::debug(x, fvec, wa3);
|
iflag = Functor.debug(x, fvec, wa3);
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -89,7 +90,7 @@ int ei_lmstr(
|
|||||||
fjac.fill(0.);
|
fjac.fill(0.);
|
||||||
iflag = 2;
|
iflag = 2;
|
||||||
for (i = 0; i < m; ++i) {
|
for (i = 0; i < m; ++i) {
|
||||||
if (Functor::df(x, wa3, iflag) < 0)
|
if (Functor.df(x, wa3, iflag) < 0)
|
||||||
break;
|
break;
|
||||||
temp = fvec[i];
|
temp = fvec[i];
|
||||||
ei_rwupdt<Scalar>(n, fjac.data(), fjac.rows(), wa3.data(), qtf.data(), &temp, wa1.data(), wa2.data());
|
ei_rwupdt<Scalar>(n, fjac.data(), fjac.rows(), wa3.data(), qtf.data(), &temp, wa1.data(), wa2.data());
|
||||||
@ -194,7 +195,7 @@ int ei_lmstr(
|
|||||||
|
|
||||||
/* evaluate the function at x + p and calculate its norm. */
|
/* evaluate the function at x + p and calculate its norm. */
|
||||||
|
|
||||||
iflag = Functor::f(wa2, wa4);
|
iflag = Functor.f(wa2, wa4);
|
||||||
++nfev;
|
++nfev;
|
||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
@ -291,7 +292,7 @@ algo_end:
|
|||||||
if (iflag < 0)
|
if (iflag < 0)
|
||||||
info = iflag;
|
info = iflag;
|
||||||
if (nprint > 0)
|
if (nprint > 0)
|
||||||
iflag = Functor::debug(x, fvec, wa3);
|
iflag = Functor.debug(x, fvec, wa3);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
template<typename Functor, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
int ei_lmstr1(
|
int ei_lmstr1(
|
||||||
|
const FunctorType &Functor,
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
VectorXi &ipvt,
|
VectorXi &ipvt,
|
||||||
@ -19,7 +20,8 @@ int ei_lmstr1(
|
|||||||
}
|
}
|
||||||
|
|
||||||
ipvt.resize(n);
|
ipvt.resize(n);
|
||||||
info = ei_lmstr<Functor,Scalar>(
|
info = ei_lmstr(
|
||||||
|
Functor,
|
||||||
x, fvec,
|
x, fvec,
|
||||||
nfev, njev,
|
nfev, njev,
|
||||||
fjac, ipvt, qtf, diag,
|
fjac, ipvt, qtf, diag,
|
||||||
|
@ -266,7 +266,7 @@ void testHybrj1()
|
|||||||
x.setConstant(n, -1.);
|
x.setConstant(n, -1.);
|
||||||
|
|
||||||
// do the computation
|
// do the computation
|
||||||
info = ei_hybrj1<hybrj_functor>(x,fvec, fjac);
|
info = ei_hybrj1(hybrj_functor(), x,fvec, fjac);
|
||||||
|
|
||||||
// check return value
|
// check return value
|
||||||
VERIFY( 1 == info);
|
VERIFY( 1 == info);
|
||||||
@ -298,7 +298,7 @@ void testHybrj()
|
|||||||
diag.setConstant(n, 1.);
|
diag.setConstant(n, 1.);
|
||||||
|
|
||||||
// do the computation
|
// do the computation
|
||||||
info = ei_hybrj<hybrj_functor>(x,fvec, nfev, njev, fjac, R, qtf, diag, mode);
|
info = ei_hybrj(hybrj_functor(), x,fvec, nfev, njev, fjac, R, qtf, diag, mode);
|
||||||
|
|
||||||
// check return value
|
// check return value
|
||||||
VERIFY( 1 == info);
|
VERIFY( 1 == info);
|
||||||
@ -349,7 +349,7 @@ void testHybrd1()
|
|||||||
x.setConstant(n, -1.);
|
x.setConstant(n, -1.);
|
||||||
|
|
||||||
// do the computation
|
// do the computation
|
||||||
info = ei_hybrd1<hybrd_functor>(x, fvec);
|
info = ei_hybrd1(hybrd_functor(), x, fvec);
|
||||||
|
|
||||||
// check return value
|
// check return value
|
||||||
VERIFY( 1 == info);
|
VERIFY( 1 == info);
|
||||||
@ -379,7 +379,7 @@ void testHybrd()
|
|||||||
diag.setConstant(n, 1.);
|
diag.setConstant(n, 1.);
|
||||||
|
|
||||||
// do the computation
|
// do the computation
|
||||||
info = ei_hybrd<hybrd_functor>(x,fvec, nfev, fjac, R, qtf, diag, mode, ml, mu);
|
info = ei_hybrd(hybrd_functor(), x,fvec, nfev, fjac, R, qtf, diag, mode, ml, mu);
|
||||||
|
|
||||||
// check return value
|
// check return value
|
||||||
VERIFY( 1 == info);
|
VERIFY( 1 == info);
|
||||||
@ -447,7 +447,7 @@ void testLmstr1()
|
|||||||
x.setConstant(n, 1.);
|
x.setConstant(n, 1.);
|
||||||
|
|
||||||
// do the computation
|
// do the computation
|
||||||
info = ei_lmstr1<lmstr_functor>(x, fvec, ipvt);
|
info = ei_lmstr1(lmstr_functor(), x, fvec, ipvt);
|
||||||
|
|
||||||
// check return value
|
// check return value
|
||||||
VERIFY( 1 == info);
|
VERIFY( 1 == info);
|
||||||
@ -474,7 +474,7 @@ void testLmstr()
|
|||||||
x.setConstant(n, 1.);
|
x.setConstant(n, 1.);
|
||||||
|
|
||||||
// do the computation
|
// do the computation
|
||||||
info = ei_lmstr<lmstr_functor>(x, fvec, nfev, njev, fjac, ipvt, qtf, diag);
|
info = ei_lmstr(lmstr_functor(), x, fvec, nfev, njev, fjac, ipvt, qtf, diag);
|
||||||
VectorXd wa(n);
|
VectorXd wa(n);
|
||||||
|
|
||||||
// check return values
|
// check return values
|
||||||
@ -529,7 +529,7 @@ void testLmdif1()
|
|||||||
x.setConstant(n, 1.);
|
x.setConstant(n, 1.);
|
||||||
|
|
||||||
// do the computation
|
// do the computation
|
||||||
info = ei_lmdif1<lmdif_functor>(x, fvec);
|
info = ei_lmdif1(lmdif_functor(), x, fvec);
|
||||||
|
|
||||||
// check return value
|
// check return value
|
||||||
VERIFY( 1 == info);
|
VERIFY( 1 == info);
|
||||||
@ -557,7 +557,7 @@ void testLmdif()
|
|||||||
x.setConstant(n, 1.);
|
x.setConstant(n, 1.);
|
||||||
|
|
||||||
// do the computation
|
// do the computation
|
||||||
info = ei_lmdif<lmdif_functor>(x, fvec, nfev, fjac, ipvt, qtf, diag);
|
info = ei_lmdif(lmdif_functor(), x, fvec, nfev, fjac, ipvt, qtf, diag);
|
||||||
|
|
||||||
// check return values
|
// check return values
|
||||||
VERIFY( 1 == info);
|
VERIFY( 1 == info);
|
||||||
|
Loading…
Reference in New Issue
Block a user