19 std::vector<Double_t> BreitWignerVectorized(std::vector<Double_t> xx)
21 std::vector<Double_t> result(xx.size());
22 for(Int_t i=0;i<xx.size();i++)
24 result[i]=TMath::BreitWigner(xx[i]);
29 double BreitWignerWrap(
double x){
30 return TMath::BreitWigner(x);
36 ROOT::R::TRInterface &r=ROOT::R::TRInterface::Instance();
38 r[
"BreitWigner"]=ROOT::R::TRFunctionExport(BreitWignerVectorized);
40 Double_t value=r.Eval(
"integrate(BreitWigner, lower = -2, upper = 2)$value");
42 std::cout.precision(18);
43 std::cout<<
"Integral of the BreitWigner Function in the interval [-2, 2] R = "<<value<<std::endl;
46 ROOT::Math::WrappedFunction<> wf(BreitWignerWrap);
47 ROOT::Math::Integrator i(wf);
48 value=i.Integral(-2,2);
49 std::cout<<
"Integral of the BreitWigner Function in the interval [-2, 2] MathMore = "<<value<<std::endl;
52 TF1 f1(
"BreitWigner",
"BreitWignerWrap(x)");
53 value=f1.Integral(-2,2);
54 std::cout<<
"Integral of the BreitWigner Function in the interval [-2, 2] TF1 = "<<value<<std::endl;
57 value=r.Eval(
"integrate(BreitWigner, lower = -Inf, upper = Inf)$value");
58 std::cout<<
"Integral of BreitWigner Function in the interval [-Inf, Inf] R = "<<value<<std::endl;