Logo ROOT   6.16/01
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#include "TObjArray.h"
29
30namespace ROOT {
31
32 namespace v5 {
33
34class TFormula;
35
37{
38 friend class ROOT::v5::TFormula;
39public:
40 typedef Double_t (*GenFuncG)(const Double_t*,const Double_t*);
41 typedef Double_t (*GenFunc0)();
45 typedef Double_t (TObject::*TFuncG)(const Double_t*,const Double_t*) const;
46 typedef Double_t (TObject::*TFunc0)() const;
47 typedef Double_t (TObject::*TFunc10)(Double_t) const;
50protected:
51 static TObjArray * fgListOfFunction; //!list of global primitive formulas
52 static Int_t BuildBasicFormulas(); //build list of basic formulas
53 union {
54 GenFuncG fFuncG; //!pointer to the TFormula generic function
55 GenFunc0 fFunc0; //!pointer to the function
56 GenFunc10 fFunc10; //!pointer to the function
57 GenFunc110 fFunc110; //!pointer to the function
58 GenFunc1110 fFunc1110; //!pointer to the function
59 TFuncG fTFuncG; //!pointer to the TFormula generic function
60 TFunc0 fTFunc0; //! pointer to member function
61 TFunc10 fTFunc10; //! pointer to member function
62 TFunc110 fTFunc110; //! pointer to member function
63 TFunc1110 fTFunc1110; //! pointer to member function
64 };
65 Int_t fType; //type of the function
66 Int_t fNArguments; //number of arguments
67 Int_t fNParameters; //number of parameters
68 Bool_t fIsStatic; // indication if the function is static
69private:
70 TFormulaPrimitive(const TFormulaPrimitive&); // Not implemented
71 TFormulaPrimitive& operator=(const TFormulaPrimitive&); // Not implemented
72public:
74 TFormulaPrimitive(const char *name,const char *formula, GenFunc0 fpointer);
75 TFormulaPrimitive(const char *name,const char *formula, GenFunc10 fpointer);
76 TFormulaPrimitive(const char *name,const char *formula, GenFunc110 fpointer);
77 TFormulaPrimitive(const char *name,const char *formula, GenFunc1110 fpointer);
78 TFormulaPrimitive(const char *name,const char *formula, GenFuncG fpointer,Int_t npar);
79 TFormulaPrimitive(const char *name,const char *formula, TFunc0 fpointer);
80 TFormulaPrimitive(const char *name,const char *formula, TFunc10 fpointer);
81 TFormulaPrimitive(const char *name,const char *formula, TFunc110 fpointer);
82 TFormulaPrimitive(const char *name,const char *formula, TFunc1110 fpointer);
83 TFormulaPrimitive(const char *name,const char *formula, TFuncG fpointer);
84 static Int_t AddFormula(TFormulaPrimitive * formula);
85 static TFormulaPrimitive* FindFormula(const char* name);
86 static TFormulaPrimitive* FindFormula(const char* name, const char *args);
87 static TFormulaPrimitive* FindFormula(const char* name, UInt_t nargs);
88 Double_t Eval(Double_t* x); //eval primitive function
89 Double_t Eval(TObject *o, Double_t *x); //eval member function
90 Double_t Eval(Double_t *x, Double_t *param); //eval primitive parametric function
91
92 ClassDef(ROOT::v5::TFormulaPrimitive,0) //The primitive formula
93};
94
95 } // end namespace v5
96
97} // end namespace ROOT
98
99
100#endif
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
#define ClassDef(name, id)
Definition: Rtypes.h:324
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:84
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
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21