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 
29 class TObjArray;
30 
31 namespace ROOT {
32 
33  namespace v5 {
34 
35 class TFormula;
36 
37 class TFormulaPrimitive : public TNamed
38 {
39  friend class ROOT::v5::TFormula;
40 public:
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;
51 protected:
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
70 private:
71  TFormulaPrimitive(const TFormulaPrimitive&); // Not implemented
72  TFormulaPrimitive& operator=(const TFormulaPrimitive&); // Not implemented
73 public:
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
ROOT::v5::TFormulaPrimitive::AddFormula
static Int_t AddFormula(TFormulaPrimitive *formula)
Add formula to the list of primitive formulas.
Definition: TFormulaPrimitive_v5.cxx:194
ROOT::v5::TFormulaPrimitive::fFunc10
GenFunc10 fFunc10
pointer to the function
Definition: TFormulaPrimitive.h:57
TObjArray
Definition: TObjArray.h:37
TFormula
Definition: TFormula.h:85
ROOT::v5::TFormulaPrimitive::GenFunc10
Double_t(* GenFunc10)(Double_t)
Definition: TFormulaPrimitive.h:43
TNamed.h
ROOT::v5::TFormulaPrimitive::fTFunc10
TFunc10 fTFunc10
pointer to member function
Definition: TFormulaPrimitive.h:62
x
Double_t x[n]
Definition: legend1.C:17
ROOT::v5::TFormulaPrimitive::TFormulaPrimitive
TFormulaPrimitive()
Default constructor.
Definition: TFormulaPrimitive_v5.cxx:84
ROOT::v5::TFormulaPrimitive::GenFunc0
Double_t(* GenFunc0)()
Definition: TFormulaPrimitive.h:42
ROOT::v5::TFormulaPrimitive::GenFunc1110
Double_t(* GenFunc1110)(Double_t, Double_t, Double_t)
Definition: TFormulaPrimitive.h:45
bool
ROOT::v5::TFormulaPrimitive::fNArguments
Int_t fNArguments
Definition: TFormulaPrimitive.h:67
ROOT::v5::TFormulaPrimitive::FindFormula
static TFormulaPrimitive * FindFormula(const char *name)
Find the formula in the list of formulas.
Definition: TFormulaPrimitive_v5.cxx:309
ROOT::v5::TFormulaPrimitive::fTFunc110
TFunc110 fTFunc110
pointer to member function
Definition: TFormulaPrimitive.h:63
ROOT::v5::TFormulaPrimitive::TFunc0
Double_t(TObject::* TFunc0)() const
Definition: TFormulaPrimitive.h:47
ROOT::v5::TFormulaPrimitive::fTFunc0
TFunc0 fTFunc0
pointer to the TFormula generic function
Definition: TFormulaPrimitive.h:61
ROOT::v5::TFormulaPrimitive::GenFuncG
Double_t(* GenFuncG)(const Double_t *, const Double_t *)
Definition: TFormulaPrimitive.h:41
ROOT::v5::TFormulaPrimitive::fNParameters
Int_t fNParameters
Definition: TFormulaPrimitive.h:68
TNamed
Definition: TNamed.h:29
ROOT::v5::TFormulaPrimitive::GenFunc110
Double_t(* GenFunc110)(Double_t, Double_t)
Definition: TFormulaPrimitive.h:44
ROOT::v5::TFormulaPrimitive::fIsStatic
Bool_t fIsStatic
Definition: TFormulaPrimitive.h:69
ROOT::v5::TFormulaPrimitive::fFunc110
GenFunc110 fFunc110
pointer to the function
Definition: TFormulaPrimitive.h:58
ROOT::v5::TFormulaPrimitive::fTFuncG
TFuncG fTFuncG
pointer to the function
Definition: TFormulaPrimitive.h:60
ROOT::v5::TFormulaPrimitive::TFunc1110
Double_t(TObject::* TFunc1110)(Double_t, Double_t, Double_t) const
Definition: TFormulaPrimitive.h:50
ROOT::v5::TFormulaPrimitive::fType
Int_t fType
Definition: TFormulaPrimitive.h:66
unsigned int
ROOT::v5::TFormulaPrimitive::fFuncG
GenFuncG fFuncG
Definition: TFormulaPrimitive.h:55
Double_t
double Double_t
Definition: RtypesCore.h:59
ROOT::v5::TFormula
Definition: TFormula.h:65
ROOT::v5::TFormulaPrimitive::BuildBasicFormulas
static Int_t BuildBasicFormulas()
list of global primitive formulas
Definition: TFormulaPrimitive_v5.cxx:407
ROOT::v5::TFormulaPrimitive::fTFunc1110
TFunc1110 fTFunc1110
pointer to member function
Definition: TFormulaPrimitive.h:64
ROOT::v5::TFormulaPrimitive::operator=
TFormulaPrimitive & operator=(const TFormulaPrimitive &)
TBits.h
ROOT::v5::TFormulaPrimitive::Eval
Double_t Eval(Double_t *x)
Eval primitive function at point x.
Definition: TFormulaPrimitive_v5.cxx:209
ROOT::v5::TFormulaPrimitive::TFunc110
Double_t(TObject::* TFunc110)(Double_t, Double_t) const
Definition: TFormulaPrimitive.h:49
TObject
Definition: TObject.h:37
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
ROOT::v5::TFormulaPrimitive::fgListOfFunction
static TObjArray * fgListOfFunction
Definition: TFormulaPrimitive.h:52
ROOT::v5::TFormulaPrimitive::fFunc0
GenFunc0 fFunc0
pointer to the TFormula generic function
Definition: TFormulaPrimitive.h:56
name
char name[80]
Definition: TGX11.cxx:110
ROOT::v5::TFormulaPrimitive::TFuncG
Double_t(TObject::* TFuncG)(const Double_t *, const Double_t *) const
Definition: TFormulaPrimitive.h:46
ROOT::v5::TFormulaPrimitive::TFunc10
Double_t(TObject::* TFunc10)(Double_t) const
Definition: TFormulaPrimitive.h:48
ROOT::v5::TFormulaPrimitive::fFunc1110
GenFunc1110 fFunc1110
pointer to the function
Definition: TFormulaPrimitive.h:59
ROOT
VSD Structures.
Definition: StringConv.hxx:21
ROOT::v5::TFormulaPrimitive
Definition: TFormulaPrimitive.h:37
int