Logo ROOT  
Reference Guide
TFormulaPrimitive.h
Go to the documentation of this file.
1// @(#)root/hist:$Id$
2// Author: Marian Ivanov, 2005
3
4/*************************************************************************
5* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6* All rights reserved. *
7* *
8* For the licensing terms see $ROOTSYS/LICENSE. *
9* For the list of contributors see $ROOTSYS/README/CREDITS. *
10*************************************************************************/
11// ---------------------------------- TFormulaPrimitive.h
12
13#ifndef ROOT_v5_TFormulaPrimitive
14#define ROOT_v5_TFormulaPrimitive
15
16
17
18//////////////////////////////////////////////////////////////////////////
19// //
20// TFormulaPrimitive //
21// //
22// The formula primitive base class //
23// //
24//////////////////////////////////////////////////////////////////////////
25
26#include "TNamed.h"
27#include "TBits.h"
28
29class TObjArray;
30
31namespace ROOT {
32
33 namespace v5 {
34
35class TFormula;
36
38{
39 friend class ROOT::v5::TFormula;
40public:
41 typedef Double_t (*GenFuncG)(const Double_t*,const Double_t*);
42 typedef Double_t (*GenFunc0)();
46 typedef Double_t (TObject::*TFuncG)(const Double_t*,const Double_t*) const;
47 typedef Double_t (TObject::*TFunc0)() const;
48 typedef Double_t (TObject::*TFunc10)(Double_t) const;
51protected:
52 static TObjArray * fgListOfFunction; //!list of global primitive formulas
53 static Int_t BuildBasicFormulas(); //build list of basic formulas
54 union {
55 GenFuncG fFuncG; //!pointer to the TFormula generic function
56 GenFunc0 fFunc0; //!pointer to the function
57 GenFunc10 fFunc10; //!pointer to the function
58 GenFunc110 fFunc110; //!pointer to the function
59 GenFunc1110 fFunc1110; //!pointer to the function
60 TFuncG fTFuncG; //!pointer to the TFormula generic function
61 TFunc0 fTFunc0; //! pointer to member function
62 TFunc10 fTFunc10; //! pointer to member function
63 TFunc110 fTFunc110; //! pointer to member function
64 TFunc1110 fTFunc1110; //! pointer to member function
65 };
66 Int_t fType; //type of the function
67 Int_t fNArguments; //number of arguments
68 Int_t fNParameters; //number of parameters
69 Bool_t fIsStatic; // indication if the function is static
70private:
71 TFormulaPrimitive(const TFormulaPrimitive&); // Not implemented
72 TFormulaPrimitive& operator=(const TFormulaPrimitive&); // Not implemented
73public:
75 TFormulaPrimitive(const char *name,const char *formula, GenFunc0 fpointer);
76 TFormulaPrimitive(const char *name,const char *formula, GenFunc10 fpointer);
77 TFormulaPrimitive(const char *name,const char *formula, GenFunc110 fpointer);
78 TFormulaPrimitive(const char *name,const char *formula, GenFunc1110 fpointer);
79 TFormulaPrimitive(const char *name,const char *formula, GenFuncG fpointer,Int_t npar);
80 TFormulaPrimitive(const char *name,const char *formula, TFunc0 fpointer);
81 TFormulaPrimitive(const char *name,const char *formula, TFunc10 fpointer);
82 TFormulaPrimitive(const char *name,const char *formula, TFunc110 fpointer);
83 TFormulaPrimitive(const char *name,const char *formula, TFunc1110 fpointer);
84 TFormulaPrimitive(const char *name,const char *formula, TFuncG fpointer);
85 static Int_t AddFormula(TFormulaPrimitive * formula);
86 static TFormulaPrimitive* FindFormula(const char* name);
87 static TFormulaPrimitive* FindFormula(const char* name, const char *args);
88 static TFormulaPrimitive* FindFormula(const char* name, UInt_t nargs);
89 Double_t Eval(Double_t* x); //eval primitive function
90 Double_t Eval(TObject *o, Double_t *x); //eval member function
91 Double_t Eval(Double_t *x, Double_t *param); //eval primitive parametric function
92
93 ClassDef(ROOT::v5::TFormulaPrimitive,0) //The primitive formula
94};
95
96 } // end namespace v5
97
98} // end namespace ROOT
99
100
101#endif
int Int_t
Definition: RtypesCore.h:45
unsigned int UInt_t
Definition: RtypesCore.h:46
bool Bool_t
Definition: RtypesCore.h:63
double Double_t
Definition: RtypesCore.h:59
#define ClassDef(name, id)
Definition: Rtypes.h:325
char name[80]
Definition: TGX11.cxx:110
The Formula Primitive class.
GenFunc1110 fFunc1110
pointer to the function
TFuncG fTFuncG
pointer to the function
static Int_t AddFormula(TFormulaPrimitive *formula)
Add formula to the list of primitive formulas.
Double_t(* GenFuncG)(const Double_t *, const Double_t *)
TFormulaPrimitive()
Default constructor.
Double_t(TObject::* TFunc0)() const
TFunc110 fTFunc110
pointer to member function
GenFunc10 fFunc10
pointer to the function
Double_t(* GenFunc1110)(Double_t, Double_t, Double_t)
Double_t(* GenFunc10)(Double_t)
static TFormulaPrimitive * FindFormula(const char *name)
Find the formula in the list of formulas.
TFunc10 fTFunc10
pointer to member function
TFormulaPrimitive(const TFormulaPrimitive &)
Double_t(TObject::* TFuncG)(const Double_t *, const Double_t *) const
GenFunc110 fFunc110
pointer to the function
Double_t(TObject::* TFunc10)(Double_t) const
Double_t(TObject::* TFunc1110)(Double_t, Double_t, Double_t) const
TFunc0 fTFunc0
pointer to the TFormula generic function
static Int_t BuildBasicFormulas()
list of global primitive formulas
GenFunc0 fFunc0
pointer to the TFormula generic function
Double_t Eval(Double_t *x)
Eval primitive function at point x.
Double_t(* GenFunc110)(Double_t, Double_t)
TFunc1110 fTFunc1110
pointer to member function
static TObjArray * fgListOfFunction
Double_t(TObject::* TFunc110)(Double_t, Double_t) const
TFormulaPrimitive & operator=(const TFormulaPrimitive &)
The FORMULA class (ROOT version 5)
Definition: TFormula.h:65
The Formula class.
Definition: TFormula.h:87
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
An array of TObjects.
Definition: TObjArray.h:37
Mother of all ROOT objects.
Definition: TObject.h:37
Double_t x[n]
Definition: legend1.C:17
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.