Thanks for your answers,
here is my code :
Logvrais1 log1(&mystat,0.001);
ReparametrizationFunctionWrapper rpf1(&log1,false);
ParameterList pl1 = rpf1.getParameters();
ThreePointsNumericalDerivative tpnd1(&rpf1);
tpnd1.setParametersToDerivate(pl1.getParameterNames());
BfgsMultiDimensions optim1(&tpnd1);
optim1.setVerbose(0);
optim1.setProfiler(0);
optim1.setMessageHandler(0);
optim1.setConstraintPolicy(AutoParameter::CONSTRAINTS_AUTO);
pl1.setParameterValue("xi",0.8028201);
pl1.setParameterValue("p1",0.999);
pl1.setParameterValue("p2",0.001);
optim1.init(pl1);
double ml1 = optim1.optimize();
cerr << "ml1=" << ml1 << "\tin R : 105.8411"
<< endl;
cerr << "p1=" <<
optim1.getFunction()->getParameterValue("p1")<< "\tin R :
0.5999006" << endl;
cerr << "p2=" <<
optim1.getFunction()->getParameterValue("p2")<< "\tin R :
0.6335156" << endl;
cerr << "xi=" <<
optim1.getFunction()->getParameterValue("xi")<< "\tin R :
0.8031929" << endl;
//calcul of likelihood whith R returned parameters values
cerr << "logvrais1=" <<
mystat.logvrais1(0.5999006, 0.6335156, 0.8031929) << " in R
: 105.8411" << endl;
It returns :
ml1=112.064 in R : 105.8411
p1=-10.115 in R : 0.5999006
p2=8.7112 in R : 0.6335156
xi=-48.6576 in R : 0.8031929
logvrais1=105.841 in R : 105.8411
According to parameters constraints, p1, p2 and xi can't be
negatives :
addParameter_(Parameter("p1", prec, new IncludingInterval(prec,
1-prec, prec)));
addParameter_(Parameter("p2", 1-prec, new IncludingInterval(prec,
1-prec, prec)));
addParameter_(Parameter("xi", 0.5, new IncludingInterval(0.5,
1-prec, prec)));
PseudoNewtonOptimizer return the good value for ml1, but not for
parameters, in addition with a fourth parameter it also return a
wrong result.
Vincent