13 typedef Double_t (*Function)(Double_t);
23 void setFunction(Function fun) {
28 Bool_t getStatus(){
return status;}
30 Double_t doEval(Double_t x) {
41 ROOTR_EXPOSED_CLASS(MyFunctor)
44 ROOTR_MODULE(MyFunctorModule) {
45 ROOT::R::class_<MyFunctor>(
"MyFunctor" )
49 .method(
"doEval", &MyFunctor::doEval )
50 .method(
"getStatus", &MyFunctor::getStatus)
56 ROOT::R::TRInterface &r=ROOT::R::TRInterface::Instance();
61 r[
"MyFunctorModule"]<<LOAD_ROOTR_MODULE(MyFunctorModule);
64 r<<
"MyFunctor <- MyFunctorModule$MyFunctor";
66 r<<
"u <- new(MyFunctor)";
69 r<<
"print(u$getStatus())";
72 r<<
"print(sprintf('value in R = %f',u$doEval( 1 )))";
73 std::cout<<
"value in ROOT = "<<TMath::BesselY1(1)<<std::endl;
79 functor.setFunction(TMath::Erf);
80 r[
"functor"]<<functor;
83 r<<
"print(functor$getStatus())";
84 r<<
"print(sprintf('value in R = %f',functor$doEval( 1 )))";
85 std::cout<<
"value in ROOT = "<<TMath::Erf(1)<<std::endl;