![]() |
ROOT
6.06/08
Reference Guide
|
Definition at line 71 of file TFormula.h.
Public Types | |
| enum | { kNotGlobal = BIT(10), kNormalized = BIT(14), kLinear = BIT(16) } |
Public Types inherited from TObject | |
| enum | EStatusBits { kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13) } |
| enum | { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff } |
| enum | { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) } |
Public Member Functions | |
| TFormula () | |
| Formula default constructor. More... | |
| TFormula (const char *name, const char *formula) | |
| Normal Formula constructor. More... | |
| TFormula (const TFormula &formula) | |
| Default constructor. More... | |
| TFormula & | operator= (const TFormula &rhs) |
| Operator =. More... | |
| virtual | ~TFormula () |
| Formula default destructor. More... | |
| void | Optimize () |
| MI include. More... | |
| virtual void | Analyze (const char *schain, Int_t &err, Int_t offset=0) |
| Analyze a sub-expression in one formula. More... | |
| virtual Bool_t | AnalyzeFunction (TString &chaine, Int_t &err, Int_t offset=0) |
| Check if the chain as function call. More... | |
| virtual Int_t | Compile (const char *expression="") |
| Compile expression already stored in fTitle. More... | |
| virtual void | Copy (TObject &formula) const |
| Copy this formula. More... | |
| virtual void | Clear (Option_t *option="") |
| Resets the objects. More... | |
| virtual char * | DefinedString (Int_t code) |
| Return address of string corresponding to special code. More... | |
| virtual Double_t | DefinedValue (Int_t code) |
| Return value corresponding to special code. More... | |
| virtual Int_t | DefinedVariable (TString &variable, Int_t &action) |
| Check if expression is in the list of defined variables. More... | |
| virtual Double_t | Eval (Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const |
| Evaluate this formula. More... | |
| virtual Double_t | EvalParOld (const Double_t *x, const Double_t *params=0) |
| Evaluate this formula. More... | |
| virtual Double_t | EvalPar (const Double_t *x, const Double_t *params=0) |
| virtual const TObject * | GetLinearPart (Int_t i) |
| Return linear part. More... | |
| virtual Int_t | GetNdim () const |
| virtual Int_t | GetNpar () const |
| virtual Int_t | GetNumber () const |
| virtual TString | GetExpFormula (Option_t *option="") const |
| Reconstruct the formula expression from the internal TFormula member variables. More... | |
| Double_t | GetParameter (Int_t ipar) const |
| Return value of parameter number ipar. More... | |
| Double_t | GetParameter (const char *name) const |
| Return value of parameter named parName. More... | |
| virtual Double_t * | GetParameters () const |
| virtual void | GetParameters (Double_t *params) |
| virtual const char * | GetParName (Int_t ipar) const |
| Return name of one parameter. More... | |
| virtual Int_t | GetParNumber (const char *name) const |
| Return parameter number by name. More... | |
| virtual Bool_t | IsLinear () const |
| virtual Bool_t | IsNormalized () const |
| virtual void | Print (Option_t *option="") const |
| Dump this formula with its attributes. More... | |
| virtual void | ProcessLinear (TString &replaceformula) |
| If the formula is for linear fitting, change the title to normal and fill the LinearParts array. More... | |
| virtual void | SetNumber (Int_t number) |
| virtual void | SetParameter (const char *name, Double_t parvalue) |
| Initialize parameter number ipar. More... | |
| virtual void | SetParameter (Int_t ipar, Double_t parvalue) |
| Initialize parameter number ipar. More... | |
| virtual void | SetParameters (const Double_t *params) |
| Initialize array of all parameters. More... | |
| virtual void | SetParameters (Double_t p0, Double_t p1, Double_t p2=0, Double_t p3=0, Double_t p4=0, Double_t p5=0, Double_t p6=0, Double_t p7=0, Double_t p8=0, Double_t p9=0, Double_t p10=0) |
| Initialize up to 11 parameters All arguments except THE FIRST TWO are optional In case of a function with only one parameter, call this function with p1=0. More... | |
| virtual void | SetParName (Int_t ipar, const char *name) |
| Set name of parameter number ipar. More... | |
| virtual void | SetParNames (const char *name0="p0", const char *name1="p1", const char *name2="p2", const char *name3="p3", const char *name4="p4", const char *name5="p5", const char *name6="p6", const char *name7="p7", const char *name8="p8", const char *name9="p9", const char *name10="p10") |
| Set up to 11 parameter names. More... | |
| virtual void | Update () |
| void | Streamer (TBuffer &b, const TClass *onfile_class) |
| Stream a class object. More... | |
| void | Streamer (TBuffer &b, Int_t version, UInt_t start, UInt_t count, const TClass *onfile_class=0) |
| specialized streamer function being able to read old TF1 versions as TF1Old in memory More... | |
Public Member Functions inherited from TNamed | |
| TNamed () | |
| TNamed (const char *name, const char *title) | |
| TNamed (const TString &name, const TString &title) | |
| TNamed (const TNamed &named) | |
| TNamed copy ctor. More... | |
| TNamed & | operator= (const TNamed &rhs) |
| TNamed assignment operator. More... | |
| virtual | ~TNamed () |
| virtual TObject * | Clone (const char *newname="") const |
| Make a clone of an object using the Streamer facility. More... | |
| virtual Int_t | Compare (const TObject *obj) const |
| Compare two TNamed objects. More... | |
| virtual void | FillBuffer (char *&buffer) |
| Encode TNamed into output buffer. More... | |
| virtual const char * | GetName () const |
| Returns name of object. More... | |
| virtual const char * | GetTitle () const |
| Returns title of object. More... | |
| virtual ULong_t | Hash () const |
| Return hash value for this object. More... | |
| virtual Bool_t | IsSortable () const |
| virtual void | SetName (const char *name) |
| Change (i.e. More... | |
| virtual void | SetNameTitle (const char *name, const char *title) |
| Change (i.e. set) all the TNamed parameters (name and title). More... | |
| virtual void | SetTitle (const char *title="") |
| Change (i.e. set) the title of the TNamed. More... | |
| virtual void | ls (Option_t *option="") const |
| List TNamed name and title. More... | |
| virtual Int_t | Sizeof () const |
| Return size of the TNamed part of the TObject. More... | |
Public Member Functions inherited from TObject | |
| TObject () | |
| TObject constructor. More... | |
| TObject (const TObject &object) | |
| TObject copy ctor. More... | |
| TObject & | operator= (const TObject &rhs) |
| TObject assignment operator. More... | |
| virtual | ~TObject () |
| TObject destructor. More... | |
| virtual void | AppendPad (Option_t *option="") |
| Append graphics object to current pad. More... | |
| virtual void | Browse (TBrowser *b) |
| Browse object. May be overridden for another default action. More... | |
| virtual const char * | ClassName () const |
| Returns name of class to which the object belongs. More... | |
| virtual void | Delete (Option_t *option="") |
| Delete this object. More... | |
| virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
| Computes distance from point (px,py) to the object. More... | |
| virtual void | Draw (Option_t *option="") |
| Default Draw method for all objects. More... | |
| virtual void | DrawClass () const |
| Draw class inheritance tree of the class to which this object belongs. More... | |
| virtual TObject * | DrawClone (Option_t *option="") const |
| Draw a clone of this object in the current pad. More... | |
| virtual void | Dump () const |
| Dump contents of object on stdout. More... | |
| virtual void | Execute (const char *method, const char *params, Int_t *error=0) |
| Execute method on this object with the given parameter string, e.g. More... | |
| virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
| Execute method on this object with parameters stored in the TObjArray. More... | |
| virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
| Execute action corresponding to an event at (px,py). More... | |
| virtual TObject * | FindObject (const char *name) const |
| Must be redefined in derived classes. More... | |
| virtual TObject * | FindObject (const TObject *obj) const |
| Must be redefined in derived classes. More... | |
| virtual Option_t * | GetDrawOption () const |
| Get option used by the graphics system to draw this object. More... | |
| virtual UInt_t | GetUniqueID () const |
| Return the unique object id. More... | |
| virtual const char * | GetIconName () const |
| Returns mime type name of object. More... | |
| virtual Option_t * | GetOption () const |
| virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
| Returns string containing info about the object at position (px,py). More... | |
| virtual Bool_t | HandleTimer (TTimer *timer) |
| Execute action in response of a timer timing out. More... | |
| virtual Bool_t | InheritsFrom (const char *classname) const |
| Returns kTRUE if object inherits from class "classname". More... | |
| virtual Bool_t | InheritsFrom (const TClass *cl) const |
| Returns kTRUE if object inherits from TClass cl. More... | |
| virtual void | Inspect () const |
| Dump contents of this object in a graphics canvas. More... | |
| virtual Bool_t | IsFolder () const |
| Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More... | |
| virtual Bool_t | IsEqual (const TObject *obj) const |
| Default equal comparison (objects are equal if they have the same address in memory). More... | |
| Bool_t | IsOnHeap () const |
| Bool_t | IsZombie () const |
| virtual Bool_t | Notify () |
| This method must be overridden to handle object notification. More... | |
| virtual void | Paint (Option_t *option="") |
| This method must be overridden if a class wants to paint itself. More... | |
| virtual void | Pop () |
| Pop on object drawn in a pad to the top of the display list. More... | |
| virtual Int_t | Read (const char *name) |
| Read contents of object with specified name from the current directory. More... | |
| virtual void | RecursiveRemove (TObject *obj) |
| Recursively remove this object from a list. More... | |
| virtual void | SaveAs (const char *filename="", Option_t *option="") const |
| Save this object in the file specified by filename. More... | |
| virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
| Save a primitive as a C++ statement(s) on output stream "out". More... | |
| virtual void | SetDrawOption (Option_t *option="") |
| Set drawing option for object. More... | |
| virtual void | SetUniqueID (UInt_t uid) |
| Set the unique object id. More... | |
| virtual void | UseCurrentStyle () |
| Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More... | |
| virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
| Write this object to the current directory. More... | |
| virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
| Write this object to the current directory. More... | |
| void * | operator new (size_t sz) |
| void * | operator new[] (size_t sz) |
| void * | operator new (size_t sz, void *vp) |
| void * | operator new[] (size_t sz, void *vp) |
| void | operator delete (void *ptr) |
| Operator delete. More... | |
| void | operator delete[] (void *ptr) |
| Operator delete []. More... | |
| void | SetBit (UInt_t f, Bool_t set) |
| Set or unset the user status bits as specified in f. More... | |
| void | SetBit (UInt_t f) |
| void | ResetBit (UInt_t f) |
| Bool_t | TestBit (UInt_t f) const |
| Int_t | TestBits (UInt_t f) const |
| void | InvertBit (UInt_t f) |
| virtual void | Info (const char *method, const char *msgfmt,...) const |
| Issue info message. More... | |
| virtual void | Warning (const char *method, const char *msgfmt,...) const |
| Issue warning message. More... | |
| virtual void | Error (const char *method, const char *msgfmt,...) const |
| Issue error message. More... | |
| virtual void | SysError (const char *method, const char *msgfmt,...) const |
| Issue system error message. More... | |
| virtual void | Fatal (const char *method, const char *msgfmt,...) const |
| Issue fatal error message. More... | |
| void | AbstractMethod (const char *method) const |
| Use this method to implement an "abstract" method that you don't want to leave purely abstract. More... | |
| void | MayNotUse (const char *method) const |
| Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More... | |
| void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
| Use this method to declare a method obsolete. More... | |
Static Public Member Functions | |
| static void | SetMaxima (Int_t maxop=1000, Int_t maxpar=1000, Int_t maxconst=1000) |
| static function to set the maximum value of 3 parameters -maxop : maximum number of operations -maxpar : maximum number of parameters -maxconst : maximum number of constants None of these parameters cannot be less than 10 (default is 1000) call this function to increase one or all maxima when processing very complex formula, eg TFormula::SetMaxima(100000,1000,1000000); If you process many functions with a small number of operations/parameters you may gain some memory and performance by decreasing these values. More... | |
| static void | GetMaxima (Int_t &maxop, Int_t &maxpar, Int_t &maxconst) |
| static function to get the maximum value of 3 parameters -maxop : maximum number of operations -maxpar : maximum number of parameters -maxconst : maximum number of constants More... | |
Static Public Member Functions inherited from TObject | |
| static Long_t | GetDtorOnly () |
| Return destructor only flag. More... | |
| static void | SetDtorOnly (void *obj) |
| Set destructor only flag. More... | |
| static Bool_t | GetObjectStat () |
| Get status of object stat flag. More... | |
| static void | SetObjectStat (Bool_t stat) |
| Turn on/off tracking of objects in the TObjectTable. More... | |
Protected Types | |
| enum | { kEnd = 0, kAdd = 1, kSubstract = 2, kMultiply = 3, kDivide = 4, kModulo = 5, kcos = 10, ksin = 11, ktan = 12, kacos = 13, kasin = 14, katan = 15, katan2 = 16, kfmod = 17, kpow = 20, ksq = 21, ksqrt = 22, kstrstr = 23, kmin = 24, kmax = 25, klog = 30, kexp = 31, klog10 = 32, kpi = 40, kabs = 41, ksign = 42, kint = 43, kSignInv = 44, krndm = 50, kAnd = 60, kOr = 61, kEqual = 62, kNotEqual = 63, kLess = 64, kGreater = 65, kLessThan = 66, kGreaterThan = 67, kNot = 68, kcosh = 70, ksinh = 71, ktanh = 72, kacosh = 73, kasinh = 74, katanh = 75, kStringEqual = 76, kStringNotEqual = 77, kBitAnd = 78, kBitOr = 79, kLeftShift = 80, kRightShift = 81, kJumpIf = 82, kJump = 83, kexpo = 100, kxexpo = 100, kyexpo = 101, kzexpo = 102, kxyexpo = 105, kgaus = 110, kxgaus = 110, kygaus = 111, kzgaus = 112, kxygaus = 115, klandau = 120, kxlandau = 120, kylandau = 121, kzlandau = 122, kxylandau = 125, kpol = 130, kxpol = 130, kypol = 131, kzpol = 132, kParameter = 140, kConstant = 141, kBoolOptimize = 142, kStringConst = 143, kVariable = 144, kFunctionCall = 145, kData = 146, kUnary = 147, kBinary = 148, kThree = 149, kDefinedVariable = 150, kDefinedString = 151, kPlusD = 152, kPlusDD = 153, kMultD = 154, kMultDD = 155, kBoolOptimizeOr = 156, kBoolOptimizeAnd = 157, kBoolSet = 158, kFDM = 159, kFD0 = 160, kFD1 = 161, kFD2 = 162, kFD3 = 163 } |
| typedef Double_t(TObject::* | TFuncG) (const Double_t *, const Double_t *) const |
Protected Member Functions | |
| Int_t | PreCompile () |
| pointer to optimal function More... | |
| virtual Bool_t | CheckOperands (Int_t operation, Int_t &err) |
| Check whether the operand at 'oper-1' is compatible with the operation at 'oper'. More... | |
| virtual Bool_t | CheckOperands (Int_t leftoperand, Int_t rightoperartion, Int_t &err) |
| Check whether the operands at 'leftoper' and 'oper-1' are compatible with the operation at 'oper'. More... | |
| virtual Bool_t | StringToNumber (Int_t code) |
| Try to 'demote' a string into an array bytes. More... | |
| void | MakePrimitive (const char *expr, Int_t pos) |
| MakePrimitive find TFormulaPrimitive replacement for some operands. More... | |
| Int_t * | GetOper () const |
| Short_t | GetAction (Int_t code) const |
| Int_t | GetActionParam (Int_t code) const |
| void | SetAction (Int_t code, Int_t value, Int_t param=0) |
| Int_t * | GetOperOptimized () const |
| Short_t | GetActionOptimized (Int_t code) const |
| Int_t | GetActionParamOptimized (Int_t code) const |
| void | SetActionOptimized (Int_t code, Int_t value, Int_t param=0) |
| void | ClearFormula (Option_t *option="") |
| Resets the objects. More... | |
| virtual Bool_t | IsString (Int_t oper) const |
| Return true if the expression at the index 'oper' has to be treated as a string. More... | |
| virtual void | Convert (UInt_t fromVersion) |
| Double_t | EvalParFast (const Double_t *x, const Double_t *params) |
| Evaluate this formula. More... | |
| Double_t | EvalPrimitive (const Double_t *x, const Double_t *params) |
| Evaluate primitive formula. More... | |
| Double_t | EvalPrimitive0 (const Double_t *x, const Double_t *params) |
| Evaluate primitive formula. More... | |
| Double_t | EvalPrimitive1 (const Double_t *x, const Double_t *params) |
| Evaluate primitive formula. More... | |
| Double_t | EvalPrimitive2 (const Double_t *x, const Double_t *params) |
| Evaluate primitive formula. More... | |
| Double_t | EvalPrimitive3 (const Double_t *x, const Double_t *params) |
| Evaluate primitive formula. More... | |
| Double_t | EvalPrimitive4 (const Double_t *x, const Double_t *params) |
| Evaluate primitive formula. More... | |
Protected Member Functions inherited from TObject | |
| void | MakeZombie () |
| virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
| Interface to ErrorHandler (protected). More... | |
Protected Attributes | |
| Int_t | fNdim |
| Int_t | fNpar |
| Int_t | fNoper |
| Int_t | fNconst |
| Int_t | fNumber |
| Int_t | fNval |
| Int_t | fNstring |
| TString * | fExpr |
| Double_t * | fConst |
| Double_t * | fParams |
| TString * | fNames |
| TObjArray | fFunctions |
| TObjArray | fLinearParts |
| TBits | fAlreadyFound |
| Int_t | fNOperOptimized |
| cache for information More... | |
| TString * | fExprOptimized |
| Number of operators after optimization. More... | |
| Int_t * | fOperOptimized |
| [fNOperOptimized] List of expressions More... | |
| TOperOffset * | fOperOffset |
| [fNOperOptimized] List of operators. (See documentation for changes made at version 7) More... | |
| TFormulaPrimitive ** | fPredefined |
| [fNOperOptimized] Offsets of operrands More... | |
| TFuncG | fOptimal |
| [fNPar] predefined function More... | |
Protected Attributes inherited from TNamed | |
| TString | fName |
| TString | fTitle |
Private Attributes | |
| Int_t * | fOper |
#include <v5/TFormula.h>
Inheritance diagram for ROOT::v5::TFormula:
Collaboration diagram for ROOT::v5::TFormula:
|
protected |
Definition at line 75 of file TFormula.h.
|
protected |
Definition at line 141 of file TFormula.h.
| anonymous enum |
| Enumerator | |
|---|---|
| kNotGlobal | |
| kNormalized | |
| kLinear | |
Definition at line 217 of file TFormula.h.
| TFormula::TFormula | ( | ) |
Formula default constructor.
Definition at line 130 of file TFormula_v5.cxx.
Referenced by ProcessLinear().
| TFormula::TFormula | ( | const char * | name, |
| const char * | formula | ||
| ) |
Normal Formula constructor.
Definition at line 158 of file TFormula_v5.cxx.
| TFormula::TFormula | ( | const TFormula & | formula | ) |
Default constructor.
Definition at line 272 of file TFormula_v5.cxx.
|
virtual |
Formula default destructor.
Definition at line 311 of file TFormula_v5.cxx.
Analyze a sub-expression in one formula.
Expressions in one formula are recursively analyzed. Result of analysis is stored in the object tables.
Table of function codes and errors
==================================
functions :
cosh 70 acosh 73 sinh 71 asinh 74 tanh 72 atanh 75
expo 100 gaus 110 gausn (see note below) expo(0) 100 0 gaus(0) 110 0 gausn(0) expo(1) 100 1 gaus(1) 110 1 gausn(1) xexpo 100 x xgaus 110 x xgausn yexpo 101 x ygaus 111 x ygausn zexpo 102 x zgaus 112 x zgausn xyexpo 105 x xygaus 115 x xygausn yexpo(5) 102 5 ygaus(5) 111 5 ygausn(5) xyexpo(2) 105 2 xygaus(2) 115 2 xygausn(2)
landau 120 x landaun (see note below) landau(0) 120 0 landaun(0) landau(1) 120 1 landaun(1) xlandau 120 x xlandaun ylandau 121 x ylandaun zlandau 122 x zlandaun xylandau 125 x xylandaun ylandau(5) 121 5 ylandaun(5) xylandau(2) 125 2 xylandaun(2)
pol0 130 x pol1 130 1xx pol0(0) 130 0 pol1(0) 130 100 pol0(1) 130 1 pol1(1) 130 101 xpol0 130 x xpol1 130 101 ypol0 131 x ypol1 131 101 zpol0 132 x zpol1 132 1xx ypol0(5) 131 5 ypol1(5) 131 105
pi 40
&& 60 < 64 || 61 > 65 == 62 <= 66 != 63 => 67 ! 68 ==(string) 76 & 78 !=(string) 77 | 79 <<(shift) 80 >>(shift) 81 ? : 82
constants (kConstants) :
c0 141 1 c1 141 2 etc..
strings (kStringConst):
sX 143 x
variables (kFormulaVar) :
x 144 0 y 144 1 z 144 2 t 144 3
parameters :
[1] 140 1 [2] 140 2 etc.
the expression "gaus" is a substitute for [0]*exp(-0.5*((x-[1])/[2])**2) to obtain a standard normalized gaussian, use "gausn" instead of "gaus" the expression "gausn" is a substitute for [0]*exp(-0.5*((x-[1])/[2])**2)/(sqrt(2*pi)*[2])) WARNING: gaus and gausn are mutually exclusive in the same expression.
In the same way the expression "landau" is a substitute for [0]*TMath::Landau(x,[1],[2],kFALSE) to obtain a standard normalized landau, use "landaun" instead of "landau" the expression "landaun" is a substitute for [0]*TMath::Landau(x,[1],[2],kTRUE) WARNING: landau and landaun are mutually exclusive in the same expression.
Those pseudo operation are used to implement lazy evaluation of && and ||. When the left hand of the expression if false (respectively true), the evaluation of the right is entirely skipped (since it would not change the value of the expreession).
&& 142 11 (one operation on right) 142 21 (2 operations on right) || 142 12 (one operation on right) 142 22 (2 operations on right)
functions calls (kFunctionCall) :
f0 145 0 f1 145 1 etc..
1 : Division By Zero 2 : Invalid Floating Point Operation 4 : Empty String 5 : invalid syntax 6 : Too many operators 7 : Too many parameters 10 : z specified but not x and y 11 : z and y specified but not x 12 : y specified but not x 13 : z and x specified but not y 20 : non integer value for parameter number 21 : atan2 requires two arguments 22 : pow requires two arguments 23 : degree of polynomial not specified 24 : Degree of polynomial must be positive 25 : Degree of polynomial must be less than 20 26 : Unknown name 27 : Too many constants in expression 28 : strstr requires two arguments 29 : interpreted or compiled function have to return a numerical type 30 : Bad numerical expression 31 : Part of the variable exist but some of it is not accessible or useable 40 : '(' is expected 41 : ')' is expected 42 : '[' is expected 43 : ']' is expected Begin_Html
Definition at line 664 of file TFormula_v5.cxx.
Referenced by AnalyzeFunction(), and Compile().
Check if the chain as function call.
If you overload this member function, you also HAVE TO never call the constructor:
TFormula::TFormula(const char *name,const char *expression)
and write your own constructor
MyClass::MyClass(const char *name,const char *expression) : TFormula()
which has to call the TFormula default constructor and whose implementation should be similar to the implementation of the normal TFormula constructor
This is necessary because the normal TFormula constructor call indirectly the virtual member functions Analyze, DefaultString, DefaultValue and DefaultVariable.
Definition at line 341 of file TFormula_v5.cxx.
Referenced by Analyze().
Check whether the operand at 'oper-1' is compatible with the operation at 'oper'.
Definition at line 2153 of file TFormula_v5.cxx.
Referenced by Analyze().
Check whether the operands at 'leftoper' and 'oper-1' are compatible with the operation at 'oper'.
Definition at line 2168 of file TFormula_v5.cxx.
Resets the objects.
Resets the object to its state before compilation.
Reimplemented from TNamed.
Definition at line 2201 of file TFormula_v5.cxx.
Resets the objects.
Resets the object to its state before compilation.
Definition at line 2212 of file TFormula_v5.cxx.
Referenced by Clear(), Compile(), and ~TFormula().
|
virtual |
Compile expression already stored in fTitle.
Loop on all subexpressions of formula stored in fTitle
If you overload this member function, you also HAVE TO never call the constructor:
TFormula::TFormula(const char *name,const char *expression)
and write your own constructor
MyClass::MyClass(const char *name,const char *expression) : TFormula()
which has to call the TFormula default constructor and whose implementation should be similar to the implementation of the normal TFormula constructor
This is necessary because the normal TFormula constructor call indirectly the virtual member functions Analyze, DefaultString, DefaultValue and DefaultVariable.
Begin_Html
Definition at line 2277 of file TFormula_v5.cxx.
Referenced by RooFormula::eval(), TTreeFormula::Init(), RooFormula::reCompile(), RooFormula::RooFormula(), Streamer(), and TFormula().
Reimplemented in TTreeFormula.
Definition at line 3566 of file TFormula_v5.cxx.
Referenced by TTreeFormula::Convert(), and Streamer().
Copy this formula.
Reimplemented from TNamed.
Definition at line 2452 of file TFormula_v5.cxx.
Referenced by operator=().
|
virtual |
Return address of string corresponding to special code.
This member function is inactive in the TFormula class. It may be redefined in derived classes.
If you overload this member function, you also HAVE TO never call the constructor:
TFormula::TFormula(const char *name,const char *expression)
and write your own constructor
MyClass::MyClass(const char *name,const char *expression) : TFormula()
which has to call the TFormula default constructor and whose implementation should be similar to the implementation of the normal TFormula constructor
This is necessary because the normal TFormula constructor call indirectly the virtual member functions Analyze, DefaultString, DefaultValue and DefaultVariable.
Definition at line 2543 of file TFormula_v5.cxx.
Referenced by EvalParFast(), and EvalParOld().
Return value corresponding to special code.
This member function is inactive in the TFormula class. It may be redefined in derived classes.
If you overload this member function, you also HAVE TO never call the constructor:
TFormula::TFormula(const char *name,const char *expression)
and write your own constructor
MyClass::MyClass(const char *name,const char *expression) : TFormula()
which has to call the TFormula default constructor and whose implementation should be similar to the implementation of the normal TFormula constructor
This is necessary because the normal TFormula constructor call indirectly the virtual member functions Analyze, DefaultString, DefaultValue and DefaultVariable.
Reimplemented in RooFormula.
Definition at line 2571 of file TFormula_v5.cxx.
Referenced by EvalParFast(), and EvalParOld().
Check if expression is in the list of defined variables.
This member function can be overloaded in derived classes
If you overload this member function, you also HAVE TO never call the constructor:
TFormula::TFormula(const char *name,const char *expression)
and write your own constructor
MyClass::MyClass(const char *name,const char *expression) : TFormula()
which has to call the TFormula default constructor and whose implementation should be similar to the implementation of the normal TFormula constructor
This is necessary because the normal TFormula constructor call indirectly the virtual member functions Analyze, DefaultString, DefaultValue and DefaultVariable.
The expected returns values are -2 : the name has been recognized but won't be usable -1 : the name has not been recognized >=0 : the name has been recognized, return the action parameter.
Reimplemented in TTreeFormula, and RooFormula.
Definition at line 2603 of file TFormula_v5.cxx.
Referenced by Analyze().
|
virtual |
Evaluate this formula.
The current value of variables x,y,z,t is passed through x, y, z and t. The parameters used will be the ones in the array params if params is given otherwise parameters will be taken from the stored data members fParams
Definition at line 2651 of file TFormula_v5.cxx.
Referenced by RooFormula::DefinedVariable(), and RooFormula::eval().
|
inlinevirtual |
Definition at line 241 of file TFormula.h.
Referenced by RooFormula::eval().
Evaluate this formula.
The current value of variables x,y,z,t is passed through the pointer x. The parameters used will be the ones in the array params if params is given otherwise parameters will be taken from the stored data members fParams Begin_Html
Definition at line 4200 of file TFormula_v5.cxx.
Referenced by Optimize().
Evaluate this formula.
The current value of variables x,y,z,t is passed through the pointer x. The parameters used will be the ones in the array params if params is given otherwise parameters will be taken from the stored data members fParams Begin_Html
Definition at line 2670 of file TFormula_v5.cxx.
Referenced by TFormula().
Evaluate primitive formula.
Definition at line 4120 of file TFormula_v5.cxx.
Evaluate primitive formula.
Definition at line 4142 of file TFormula_v5.cxx.
Referenced by Optimize().
Evaluate primitive formula.
Definition at line 4152 of file TFormula_v5.cxx.
Referenced by Optimize().
Evaluate primitive formula.
Definition at line 4162 of file TFormula_v5.cxx.
Referenced by Optimize().
Evaluate primitive formula.
Definition at line 4173 of file TFormula_v5.cxx.
Referenced by Optimize().
Evaluate primitive formula.
Definition at line 4184 of file TFormula_v5.cxx.
Referenced by Optimize().
Definition at line 110 of file TFormula.h.
Referenced by Analyze(), GetExpFormula(), TTreeFormula::Init(), TTreeFormula::IsInteger(), IsString(), TTreeFormula::IsString(), Print(), TTreeFormula::PrintValue(), TTreeFormula::ResetDimensions(), TTreeFormula::SetAxis(), and TTreeFormula::StringToNumber().
Definition at line 118 of file TFormula.h.
Referenced by MakePrimitive(), Optimize(), and Print().
Definition at line 111 of file TFormula.h.
Referenced by Analyze(), GetExpFormula(), TTreeFormula::Init(), Print(), TTreeFormula::StringToNumber(), and TTreeFormula::UpdateFormulaLeaves().
Definition at line 119 of file TFormula.h.
Referenced by Optimize(), and Print().
Reconstruct the formula expression from the internal TFormula member variables.
This function uses the internal member variables of TFormula to construct the mathematical expression associated with the TFormula instance. This function can be used to get an expanded version of the expression originally assigned to the TFormula instance, i.e. that the string returned by GetExpFormula() doesn't depend on other TFormula object names.
if option contains "p" the returned string will contain the formula expression with symbolic parameters, eg [0] replaced by the actual value of the parameter. Example: if expression in formula is: "[0]*(x>-[1])+[2]*exp(-[3]*x)" and parameters are 3.25,-4.01,4.44,-0.04, GetExpFormula("p") will return: "(3.25*(x>+4.01))+(4.44*exp(+0.04*x))"
Definition at line 3010 of file TFormula_v5.cxx.
Referenced by Analyze(), TFormula::Print(), and TF1::SetTitle().
Return linear part.
Definition at line 3201 of file TFormula_v5.cxx.
static function to get the maximum value of 3 parameters -maxop : maximum number of operations -maxpar : maximum number of parameters -maxconst : maximum number of constants
Definition at line 4556 of file TFormula_v5.cxx.
Referenced by TMultiLayerPerceptron::AttachData().
|
inlinevirtual |
Definition at line 243 of file TFormula.h.
Referenced by TSpider::AddVariable(), TMVA::DataSetFactory::CheckTTreeFormula(), TSelectorDraw::CompileVariables(), TTreePlayer::CopyTree(), TTreeFormula::DefinedVariable(), TTreeIndex::GetEntryNumberFriend(), TChainIndex::GetEntryNumberFriend(), TTreePlayer::Principal(), TTreePlayer::Query(), TTreePlayer::Scan(), TF1::SetTitle(), TSPlot::SetTreeSelection(), TSelectorEntries::SlaveBegin(), and TTreeIndex::TTreeIndex().
Definition at line 244 of file TFormula.h.
Referenced by Analyze(), and TF1::SetTitle().
|
inlinevirtual |
Definition at line 245 of file TFormula.h.
Referenced by Compile().
|
inlineprotected |
Definition at line 109 of file TFormula.h.
Referenced by TTreeFormula::Convert(), TTreeFormula::EvalInstance(), TTreeFormula::GetConstant(), and TTreeFormula::UpdateFormulaLeaves().
|
inlineprotected |
Definition at line 117 of file TFormula.h.
Return value of parameter number ipar.
Definition at line 3212 of file TFormula_v5.cxx.
Referenced by Analyze(), and GetParameter().
| Double_t TFormula::GetParameter | ( | const char * | name | ) | const |
Return value of parameter named parName.
Definition at line 3222 of file TFormula_v5.cxx.
|
inlinevirtual |
Definition at line 249 of file TFormula.h.
Referenced by TFormula::Print(), and TF1::SetTitle().
Definition at line 250 of file TFormula.h.
|
virtual |
Return name of one parameter.
Definition at line 3237 of file TFormula_v5.cxx.
Referenced by GetParNumber(), and Print().
|
virtual |
Return parameter number by name.
Definition at line 3248 of file TFormula_v5.cxx.
Referenced by GetParameter(), and SetParameter().
|
inlinevirtual |
Definition at line 253 of file TFormula.h.
|
inlinevirtual |
Definition at line 254 of file TFormula.h.
Referenced by Analyze(), EvalParFast(), and EvalParOld().
Return true if the expression at the index 'oper' has to be treated as a string.
Reimplemented in TTreeFormula.
Definition at line 3263 of file TFormula_v5.cxx.
Referenced by Analyze(), CheckOperands(), and TTreeFormula::IsString().
MakePrimitive find TFormulaPrimitive replacement for some operands.
Definition at line 3753 of file TFormula_v5.cxx.
Referenced by Optimize().
Operator =.
Definition at line 299 of file TFormula_v5.cxx.
| void TFormula::Optimize | ( | ) |
MI include.
Optimize formula 1.) Minimize the number of operands a.) several operanands are glued togther b.) some primitive functions glued together - exemp. (x+y) => PlusXY(x,y) c.) maximize number of standard calls minimizing number of jumps in Eval cases d.) variables, parameters and constants are mapped - using fOperOfssets0 Eval procedure use direct acces to data (only one corresponding case statement in eval procedure)
pdata[operand={Var,Par,Const}][offset] pdata[fOperOffsets0[i]][fOperOffset1[i+1]] 2.) The fastest evaluation function is chosen at the end a.) fOptimal := pointer to the fastest function for given evaluation string switch(GetActionOptimized(0)){ case kData : {fOptimal= (TFormulaPrimitive::TFuncG)&TFormula::EvalPrimitive0; break;} case kUnary : {fOptimal= (TFormulaPrimitive::TFuncG)&TFormula::EvalPrimitive1; break;} case kBinary : {fOptimal= (TFormulaPrimitive::TFuncG)&TFormula::EvalPrimitive2; break;} case kThree : {fOptimal= (TFormulaPrimitive::TFuncG)&TFormula::EvalPrimitive3; break;} case kFDM : {fOptimal= (TFormulaPrimitive::TFuncG)&TFormula::EvalPrimitive4; break;} } b.) ex. fOptimal = ::EvalPrimitive0 - if it return only variable, constant or parameter = ::EvalParameter1 - if only one unary operation = ::EvalPrimitive2 - if only one binary operation .......
Definition at line 3823 of file TFormula_v5.cxx.
Referenced by Compile(), and Streamer().
|
protected |
Dump this formula with its attributes.
Reimplemented from TNamed.
Reimplemented in RooFormula.
Definition at line 3272 of file TFormula_v5.cxx.
If the formula is for linear fitting, change the title to normal and fill the LinearParts array.
Definition at line 3302 of file TFormula_v5.cxx.
Referenced by Compile().
Definition at line 113 of file TFormula.h.
Referenced by Analyze(), AnalyzeFunction(), Convert(), TTreeFormula::Convert(), TTreeFormula::DefineAlternate(), and TTreeFormula::StringToNumber().
|
inlineprotected |
Definition at line 121 of file TFormula.h.
Referenced by MakePrimitive(), and Optimize().
static function to set the maximum value of 3 parameters -maxop : maximum number of operations -maxpar : maximum number of parameters -maxconst : maximum number of constants None of these parameters cannot be less than 10 (default is 1000) call this function to increase one or all maxima when processing very complex formula, eg TFormula::SetMaxima(100000,1000,1000000); If you process many functions with a small number of operations/parameters you may gain some memory and performance by decreasing these values.
Definition at line 4543 of file TFormula_v5.cxx.
Referenced by TMultiLayerPerceptron::AttachData().
Definition at line 257 of file TFormula.h.
Initialize parameter number ipar.
Definition at line 3372 of file TFormula_v5.cxx.
Initialize parameter number ipar.
Definition at line 3384 of file TFormula_v5.cxx.
Initialize array of all parameters.
See also the next function with the same name.
Definition at line 3396 of file TFormula_v5.cxx.
|
virtual |
Initialize up to 11 parameters All arguments except THE FIRST TWO are optional In case of a function with only one parameter, call this function with p1=0.
Minimum two arguments are required to differentiate this function from the SetParameters(cont Double_t *params)
Definition at line 3412 of file TFormula_v5.cxx.
Set name of parameter number ipar.
Definition at line 3433 of file TFormula_v5.cxx.
Referenced by Compile().
|
virtual |
Set up to 11 parameter names.
Definition at line 3443 of file TFormula_v5.cxx.
Stream a class object.
Definition at line 3462 of file TFormula_v5.cxx.
Referenced by TFormula::Print(), TTreeFormula::SetAxis(), ROOT::v5::TF1Data::Streamer(), and Streamer().
| void TFormula::Streamer | ( | TBuffer & | b, |
| Int_t | version, | ||
| UInt_t | start, | ||
| UInt_t | count, | ||
| const TClass * | onfile_class = 0 |
||
| ) |
specialized streamer function being able to read old TF1 versions as TF1Old in memory
Definition at line 3500 of file TFormula_v5.cxx.
Try to 'demote' a string into an array bytes.
If this is not possible, return false.
Reimplemented in TTreeFormula.
Definition at line 2189 of file TFormula_v5.cxx.
Referenced by CheckOperands().
|
inlinevirtual |
Definition at line 269 of file TFormula.h.
Referenced by SetParameter(), and SetParameters().
|
protected |
Definition at line 94 of file TFormula.h.
Referenced by Analyze().
|
protected |
Definition at line 88 of file TFormula.h.
Referenced by Analyze(), ClearFormula(), Compile(), Copy(), EvalParFast(), EvalParOld(), EvalPrimitive(), EvalPrimitive0(), EvalPrimitive1(), EvalPrimitive2(), EvalPrimitive3(), TTreeFormula::GetConstant(), MakePrimitive(), Optimize(), Streamer(), and TFormula().
|
protected |
Definition at line 84 of file TFormula.h.
Referenced by Analyze(), AnalyzeFunction(), CheckOperands(), ClearFormula(), Compile(), Convert(), Copy(), TTreeFormula::DefineAlternate(), TTreeFormula::EvalInstance(), EvalParOld(), TTreeFormula::GetConstant(), GetExpFormula(), Optimize(), Print(), TTreeFormula::PrintValue(), Streamer(), and TFormula().
|
protected |
Number of operators after optimization.
Definition at line 98 of file TFormula.h.
Referenced by ClearFormula(), Copy(), EvalParFast(), Optimize(), Print(), and TFormula().
|
protected |
Definition at line 91 of file TFormula.h.
Referenced by AnalyzeFunction(), ClearFormula(), Copy(), TTreeFormula::EvalInstance(), EvalParFast(), EvalParOld(), and Streamer().
|
protected |
Definition at line 92 of file TFormula.h.
Referenced by ClearFormula(), GetLinearPart(), and ProcessLinear().
|
protected |
Definition at line 90 of file TFormula.h.
Referenced by ClearFormula(), Compile(), Copy(), GetParName(), Print(), SetParName(), SetParNames(), Streamer(), and TFormula().
|
protected |
Definition at line 80 of file TFormula.h.
Referenced by Analyze(), ClearFormula(), Compile(), Copy(), TTreeFormula::GetConstant(), MakePrimitive(), Streamer(), and TFormula().
|
protected |
Definition at line 77 of file TFormula.h.
Referenced by Analyze(), ClearFormula(), Compile(), Copy(), DefinedVariable(), TTreeFormula::Init(), Print(), Streamer(), and TFormula().
|
protected |
Definition at line 79 of file TFormula.h.
Referenced by Analyze(), AnalyzeFunction(), ClearFormula(), Compile(), Convert(), TTreeFormula::Convert(), Copy(), TTreeFormula::DefineAlternate(), TTreeFormula::DefinedVariable(), TTreeFormula::EvalClass(), TTreeFormula::EvalInstance(), TTreeFormula::EvalObject(), EvalParOld(), TTreeFormula::EvalStringInstance(), TTreeFormula::GetConstant(), GetExpFormula(), TTreeFormula::Init(), TTreeFormula::IsInteger(), TTreeFormula::LoadBranches(), Optimize(), Print(), TTreeFormula::PrintValue(), TTreeFormula::RegisterDimensions(), TTreeFormula::ResetDimensions(), TTreeFormula::ResetLoading(), TTreeFormula::SetAxis(), Streamer(), TFormula(), and TTreeFormula::UpdateFormulaLeaves().
|
protected |
cache for information
Definition at line 97 of file TFormula.h.
Referenced by Copy(), EvalParFast(), Optimize(), Print(), and TFormula().
|
protected |
Definition at line 78 of file TFormula.h.
Referenced by Analyze(), AnalyzeFunction(), ClearFormula(), Compile(), Copy(), TTreeFormula::DefinedVariable(), GetExpFormula(), GetParameter(), GetParName(), GetParNumber(), Optimize(), Print(), SetParameter(), SetParameters(), SetParName(), SetParNames(), ROOT::v5::TF1Data::Streamer(), Streamer(), and TFormula().
|
protected |
Definition at line 83 of file TFormula.h.
Referenced by Analyze(), ClearFormula(), EvalParFast(), EvalParOld(), TTreeFormula::PrintValue(), Streamer(), TTreeFormula::StringToNumber(), and TFormula().
|
protected |
Definition at line 81 of file TFormula.h.
Referenced by ClearFormula(), Copy(), Streamer(), and TFormula().
|
protected |
Definition at line 82 of file TFormula.h.
Referenced by Analyze(), ClearFormula(), Copy(), EvalParFast(), EvalParOld(), TTreeFormula::PrintValue(), RooFormula::reCompile(), Streamer(), TTreeFormula::StringToNumber(), TFormula(), and TTreeFormula::UpdateFormulaLeaves().
|
private |
Definition at line 86 of file TFormula.h.
Referenced by ClearFormula(), Compile(), Convert(), Copy(), EvalParOld(), GetExpFormula(), Optimize(), Streamer(), and TFormula().
|
protected |
[fNOperOptimized] List of operators. (See documentation for changes made at version 7)
Definition at line 100 of file TFormula.h.
Referenced by ClearFormula(), Copy(), EvalParFast(), EvalPrimitive(), EvalPrimitive0(), EvalPrimitive1(), EvalPrimitive2(), EvalPrimitive3(), EvalPrimitive4(), Optimize(), and TFormula().
|
protected |
[fNOperOptimized] List of expressions
Definition at line 99 of file TFormula.h.
Referenced by ClearFormula(), Copy(), EvalParFast(), EvalPrimitive(), Optimize(), and TFormula().
|
protected |
[fNPar] predefined function
Definition at line 102 of file TFormula.h.
Referenced by Copy(), Optimize(), and TFormula().
|
protected |
Definition at line 89 of file TFormula.h.
Referenced by Analyze(), ClearFormula(), Compile(), Copy(), EvalParFast(), EvalParOld(), EvalPrimitive(), EvalPrimitive0(), EvalPrimitive1(), EvalPrimitive2(), EvalPrimitive3(), EvalPrimitive4(), GetExpFormula(), GetParameter(), Print(), SetParameter(), SetParameters(), Streamer(), and TFormula().
|
protected |
[fNOperOptimized] Offsets of operrands
Definition at line 101 of file TFormula.h.
Referenced by ClearFormula(), Copy(), EvalParFast(), EvalPrimitive(), EvalPrimitive1(), EvalPrimitive2(), EvalPrimitive3(), EvalPrimitive4(), MakePrimitive(), Optimize(), and TFormula().