1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
template<typename Functor, typename Scalar>
int ei_hybrj1(
Matrix< Scalar, Dynamic, 1 > &x,
Matrix< Scalar, Dynamic, 1 > &fvec,
Matrix< Scalar, Dynamic, Dynamic > &fjac,
Scalar tol = ei_sqrt(epsilon<Scalar>())
)
{
const int n = x.size();
int info, nfev=0, njev=0;
Matrix< Scalar, Dynamic, 1> R, qtf, diag;
/* check the input parameters for errors. */
if (n <= 0 || tol < 0.) {
printf("ei_hybrd1 bad args : n,tol,...");
return 0;
}
diag.setConstant(n, 1.);
info = ei_hybrj<Functor,Scalar>(
x, fvec,
nfev, njev,
fjac,
R, qtf, diag,
2,
(n+1)*100,
100.,
tol
);
return (info==5)?4:info;
}
|