Hi, I have a drawSurf3.cxx which is copied from roottalk digest, I assume it should work in both session: First interactive session ========================= Root > .L drawSurf.cxx Root > drawSurf() Second interactive session ========================== Root > .L drawSurf.cxx++ Root > .drawSurf() The Second one works, but the first session gives the following message: root4star [0] .L drawSurf.cxx root4star [1] drawSurf() Error: Ambiguous overload resolution (10400,2) FILE:drawSurf.cxx LINE:19 Calling : TF2::TF2(char*,char*,int,int,int,int,int); Match rank: file line signature ffffffff (compiled) 0 TF2 TF2::TF2(const TF2&); * 10400 (compiled) 0 TF2 TF2::TF2(const char*,Double_t (*)(Double_t*, Double_t*),Float_t,Float_t,Float_t,Float_t,Int_t); * 10400 (compiled) 0 TF2 TF2::TF2(const char*,void*,Float_t,Float_t,Float_t,Float_t,Int_t); ffffffff (compiled) 0 TF2 TF2::TF2(const char*,const char*,Float_t,Float_t,Float_t,Float_t); ffffffff (compiled) 0 TF2 TF2::TF2(); *** Interpreter error recovered *** The file drawSurf.cxx ===================== #include "TF2.h" Double_t gausxy( Double_t* x, Double_t* par ) { Double_t dxds= (x[0]-par[0])/par[2]; Double_t dyds= (x[1]-par[1])/par[3]; Double_t rho= par[4]; return exp( -0.5*( dxds*dxds + dyds*dyds - 2.0*dxds*dyds*rho )/( 1.0-rho*rho) ); } void drawSurf(){ TF2* f2= new TF2( "myfunc2", gausxy, -10, 10, -10, 10, 5 ); f2->SetParameter( 0, 0.0 ); f2->SetParameter( 1, 0.0 ); f2->SetParameter( 2, 2.0 ); f2->SetParameter( 3, 2.0 ); f2->SetParameter( 4, 0.1 ); f2->Draw("surf"); } I am running root 2.24 on Linux. Thanks! Aihong
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:24 MET