library: libHist
#include "TFormulaPrimitive.h"

TFormulaPrimitive


class description - header file - source file - inheritance tree (.pdf)

class TFormulaPrimitive : public TNamed

Inheritance Chart:
TObject
<-
TNamed
<-
TFormulaPrimitive

    protected:
static Int_t BuildBasicFormulas() public:
TFormulaPrimitive() TFormulaPrimitive(const char* name, const char* formula, TFormulaPrimitive::GenFunc0 fpointer) TFormulaPrimitive(const char* name, const char* formula, TFormulaPrimitive::GenFuncG fpointer, Int_t npar) TFormulaPrimitive(const char* name, const char* formula, TFormulaPrimitive::TFunc0 fpointer) TFormulaPrimitive(const TFormulaPrimitive&) ~TFormulaPrimitive() static Int_t AddFormula(TFormulaPrimitive* formula) static TClass* Class() Double_t Eval(Double_t* x) Double_t Eval(TObject* o, Double_t* x) Double_t Eval(Double_t* x, Double_t* param) static TFormulaPrimitive* FindFormula(const char* name) virtual TClass* IsA() const TFormulaPrimitive& operator=(const TFormulaPrimitive&) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
static TObjArray* fgListOfFunction !list of global primitive formulas void* fFuncG //!pointer to the TFormula generic function void* fFunc0 //!pointer to the function void* fFunc10 //!pointer to the function void* fFunc110 //!pointer to the function void* fFunc1110 //!pointer to the function G__p2memfunc fTFuncG !pointer to the TFormula generic function G__p2memfunc fTFunc0 //! pointer to member function G__p2memfunc fTFunc10 //! pointer to member function G__p2memfunc fTFunc110 //! pointer to member function G__p2memfunc fTFunc1110 //! pointer to member function Int_t fType type of the function Int_t fNArguments number of arguments Int_t fNParameters number of parameters Bool_t fIsStatic indication if the function is static

Class Description

______________________________________________________________________________
 The Formula Primitive class

    Helper class for TFormula to speed up TFormula evaluation
    TFormula can use all functions registered in the list of TFormulaPrimitives
    User can add new function to the list of primitives
    if FormulaPrimitive with given name is already defined new primitive is ignored
    Example:
      TFormulaPrimitive::AddFormula(new TFormulaPrimitive("Pow2","Pow2",TFastFun::Pow2));
      TF1 f1("f1","Pow2(x)");



    TFormulaPrimitive is used to get direct acces to the function pointers
    GenFunc     -  pointers  to the static function
    TFunc       -  pointers  to the data member functions

    The following sufixes are currently used, to describe function arguments:
    ------------------------------------------------------------------------
    G     - generic layout - pointer to double (arguments), pointer to double (parameters)
    10    - double
    110   - double, double
    1110  - double, double, double
TFormulaPrimitive()
 Default constructor.
TFormulaPrimitive(const char *name,const char *formula, GenFunc0 fpointer)
 Constructor.
TFormulaPrimitive(const char *name,const char *formula, GenFunc10 fpointer)
 Constructor.
TFormulaPrimitive(const char *name,const char *formula, GenFunc110 fpointer)
 Constructor.
TFormulaPrimitive(const char *name,const char *formula, GenFunc1110 fpointer)
 Constructor.
TFormulaPrimitive* FindFormula(const char* name)
 Find the formula in the list of formulas.
Int_t AddFormula(TFormulaPrimitive * formula)
 Add formula to the list of primitive formulas.
 If primitive formula already defined do nothing.
Double_t Eval(Double_t* x)
 Eval primitive function at point x.
Double_t Eval(TObject *o, Double_t *x)
 Eval member function of object o at point x.
Double_t Eval(Double_t *x, Double_t *param)
 Eval primitive parametric function.
Int_t BuildBasicFormulas()
 Built-in functions.

Author: Marian Ivanov, 2005
Last update: root/hist:$Name: $:$Id: TFormulaPrimitive.cxx,v 1.4 2006/05/17 16:37:25 couet Exp $


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.