9 using namespace ROOT::R;
 
   12    auto &r = ROOT::R::TRInterface::Instance();
 
   16    TRFunctionImport c(
"c");
 
   17    TRFunctionImport rlist(
"list");
 
   18    TRFunctionImport asformula(
"as.formula");
 
   19    TRFunctionImport nls(
"nls");
 
   20    TRFunctionImport confint(
"confint");
 
   21    TRFunctionImport summary(
"summary");
 
   22    TRFunctionImport print(
"print");
 
   23    TRFunctionImport plot(
"plot");
 
   24    TRFunctionImport lines(
"lines");
 
   25    TRFunctionImport devnew(
"dev.new");
 
   26    TRFunctionImport devoff(
"dev.off");
 
   27    TRFunctionImport devcur(
"dev.cur");
 
   28    TRFunctionImport rmin(
"min");
 
   29    TRFunctionImport rmax(
"max");
 
   30    TRFunctionImport seq(
"seq");
 
   31    TRFunctionImport predict(
"predict");
 
   33    r<<
"options(device='pdf')";
 
   36    TRObject xdata = c(-2,-1.64,-1.33,-0.7,0,0.45,1.2,1.64,2.32,2.9);
 
   37    TRObject ydata = c(0.699369,0.700462,0.695354,1.03905,1.97389,2.41143,1.91091,0.919576,-0.730975,-1.42001);
 
   44    TRObject fit = nls(asformula(
"ydata ~ p1*cos(p2*xdata) + p2*sin(p1*xdata)"),Label[
"data"]=data, Label[
"start"]=rlist(Label[
"p1"]=1,Label[
"p2"]=0.2));
 
   49    if (!gROOT->IsBatch()) {
 
   50       devnew(
"Fitting Regression");
 
   53       TRObject xgrid=seq(rmin(xdata),rmax(xdata),Label[
"len"]=10);
 
   54       lines(xgrid,predict(fit,xgrid),Label[
"col"] = 
"green");
 
   55       devoff(Label[
"which"] = devcur() );