Re: [ROOT] Drawing a function

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue May 20 2003 - 21:44:22 MEST


Hi Kalen,

You have the wrong signature for your function.
see example below

//file f1ex.C
double testfunc(double *x, double *par) {
   double s;
   s = sin(x[0]);
   return s;
}
void f1ex() {
   TF1 *f1 = new TF1("f1",testfunc,-6,6,0);
   f1->Draw();
}

root > .x f1ex.C


Rene Brun

On Tue, 20 May 2003, Kalen 
Martens wrote:

> Hi,
> 
> I am having some difficulty in drawing a function that I have in a file.
> Here is a simple function, for example:
> 
> >cat testfunc.C 
> 
> double testfunc(double x)
> {
>   double s;
> 
>   s=sin(x);
> 
>   return s;
> }
> 
> I have a more complicated function in mind, but this is simple and I get
> the same behavior. 
> 
> In ROOT (3.04/02), I do the following:
> 
> >root
> 
> Compiled for linux with thread support.
> 
> CINT/ROOT C/C++ Interpreter version 5.15.68, Dec 12 2002
> Type ? for help. Commands must be C++ statements.
> Enclose multiple statements between { }.
> root [0] .L testfunc.C                                        
> root [1] TF1 *testf1 = new TF1("testf1", testfunc, 3., 8., 0);
> root [2] testf1 -> Draw();                                    
> <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
> Error: G__CallFunc::SetArgArray() must be initialized with 
> 'G__CallFunc::SetFunc(G__ClassInfo* cls,char* fname,char* args,long*
> poffset)' first
> root [3] 
> 
> I don't understand this error. I've really tried to get this to work, but
> with no avail. Can someone show me the error of my ways?
> 
> Thanks,
> 	-Kalen
> 
> -----------------------------------------------------------------
> - Kalen Martens			 	     Ph:(416)-978-6632  -
> - Dept. of Physics						-
> - University of Toronto, Toronto, Canada			-
> -----------------------------------------------------------------
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET