%%cpp -d #include #include #include #include %%cpp -d Double_t GenRosenBrock(const TVectorD xx ) { int length=xx.GetNoElements(); Double_t result=0; for (int i=0;i<(length-1);i++) { result+=pow(1-xx[i],2)+100*pow(xx[i+1]-pow(xx[i],2),2); } return result; } %%cpp -d Double_t Rastrigin(const TVectorD xx) { int length=xx.GetNoElements(); Double_t result=10*length; for (int i=0;iIsBatch()) { r<<"dev.new(title='RosenBrock Convergence')"; r<<"plot(result1,type='o',pch='.')"; r<<"dev.off()"; r<<"dev.new(title='Rastrigin Convergence')"; r<<"plot(result2,type='o',pch='.')"; r<<"dev.off()"; }