Logo ROOT   6.18/05
Reference Guide
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TSpline5 Class Reference

Class to create quintic natural splines to interpolate knots Arbitrary conditions can be introduced for first and second derivatives using double knots (see BuildCoeff) for more on this.

Double knots are automatically introduced at ending points

Definition at line 247 of file TSpline.h.

Public Member Functions

 TSpline5 ()
 
 TSpline5 (const char *title, const TGraph *g, const char *opt=0, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given a TGraph with abscissa in increasing order and possibly end point conditions. More...
 
 TSpline5 (const char *title, Double_t x[], const TF1 *func, Int_t n, const char *opt=0, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given an array of arbitrary abscissas in increasing order and a function to interpolate and possibly end point conditions. More...
 
 TSpline5 (const char *title, Double_t x[], Double_t y[], Int_t n, const char *opt=0, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given an array of arbitrary knots in increasing abscissa order and possibly end point conditions. More...
 
 TSpline5 (const char *title, Double_t xmin, Double_t xmax, const TF1 *func, Int_t n, const char *opt=0, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given a function to be evaluated on n equidistant abscissa points between xmin and xmax and possibly end point conditions. More...
 
 TSpline5 (const char *title, Double_t xmin, Double_t xmax, Double_t y[], Int_t n, const char *opt=0, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given an array of arbitrary function values on equidistant n abscissa values from xmin to xmax and possibly end point conditions. More...
 
 TSpline5 (const TH1 *h, const char *opt=0, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given a TH1. More...
 
 TSpline5 (const TSpline5 &)
 Copy constructor. More...
 
virtual ~TSpline5 ()
 
Double_t Derivative (Double_t x) const
 Derivative. More...
 
Double_t Eval (Double_t x) const
 Eval this spline at x. More...
 
Int_t FindX (Double_t x) const
 Find X. More...
 
void GetCoeff (Int_t i, Double_t &x, Double_t &y, Double_t &b, Double_t &c, Double_t &d, Double_t &e, Double_t &f)
 
void GetKnot (Int_t i, Double_t &x, Double_t &y) const
 
TSpline5operator= (const TSpline5 &)
 Assignment operator. More...
 
virtual void SaveAs (const char *filename, Option_t *option="") const
 Write this spline as a C++ function that can be executed without ROOT the name of the function is the name of the file up to the "." if any. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save primitive as a C++ statement(s) on output stream out. More...
 
virtual void SetPoint (Int_t i, Double_t x, Double_t y)
 Set point number i. More...
 
virtual void SetPointCoeff (Int_t i, Double_t b, Double_t c, Double_t d, Double_t e, Double_t f)
 Set point coefficient number i. More...
 
- Public Member Functions inherited from TSpline
 TSpline ()
 
 TSpline (const char *title, Double_t delta, Double_t xmin, Double_t xmax, Int_t np, Bool_t step)
 
virtual ~TSpline ()
 Destructor. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Compute distance from point px,py to a spline. More...
 
virtual void Draw (Option_t *option="")
 Draw this function with its current attributes. More...
 
virtual Double_t Eval (Double_t x) const =0
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to one event. More...
 
virtual Double_t GetDelta () const
 
TH1FGetHistogram () const
 
virtual void GetKnot (Int_t i, Double_t &x, Double_t &y) const =0
 
virtual Int_t GetNp () const
 
virtual Int_t GetNpx () const
 
virtual Double_t GetXmax () const
 
virtual Double_t GetXmin () const
 
virtual void Paint (Option_t *option="")
 Paint this function with its current attributes. More...
 
virtual void SaveAs (const char *, Option_t *) const
 Save this object in the file specified by filename. More...
 
void SetNpx (Int_t n)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor. More...
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings (""). More...
 
virtual TObjectClone (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 Copy (TObject &named) const
 Copy this to obj. 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 ls (Option_t *option="") const
 List TNamed name and title. More...
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual void Print (Option_t *option="") const
 Print TNamed name and title. More...
 
virtual void SetName (const char *name)
 Set the name of the TNamed. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed. 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...
 
virtual ~TObject ()
 TObject destructor. 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...
 
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...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. 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 TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. 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 void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. 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...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. 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...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. 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 void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. 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...
 
void ResetBit (UInt_t f)
 
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...
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. 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 SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
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 void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. 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...
 
- Public Member Functions inherited from TAttLine
 TAttLine ()
 AttLine default constructor. More...
 
 TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth)
 AttLine normal constructor. More...
 
virtual ~TAttLine ()
 AttLine destructor. More...
 
void Copy (TAttLine &attline) const
 Copy this line attributes to a new TAttLine. More...
 
Int_t DistancetoLine (Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
 Compute distance from point px,py to a line. More...
 
virtual Color_t GetLineColor () const
 Return the line color. More...
 
virtual Style_t GetLineStyle () const
 Return the line style. More...
 
virtual Width_t GetLineWidth () const
 Return the line width. More...
 
virtual void Modify ()
 Change current line attributes if necessary. More...
 
virtual void ResetAttLine (Option_t *option="")
 Reset this line attributes to default values. More...
 
virtual void SaveLineAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
 Save line attributes as C++ statement(s) on output stream out. More...
 
virtual void SetLineAttributes ()
 Invoke the DialogCanvas Line attributes. More...
 
virtual void SetLineColor (Color_t lcolor)
 Set the line color. More...
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color. More...
 
virtual void SetLineStyle (Style_t lstyle)
 Set the line style. More...
 
virtual void SetLineWidth (Width_t lwidth)
 Set the line width. More...
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 AttFill default constructor. More...
 
 TAttFill (Color_t fcolor, Style_t fstyle)
 AttFill normal constructor. More...
 
virtual ~TAttFill ()
 AttFill destructor. More...
 
void Copy (TAttFill &attfill) const
 Copy this fill attributes to a new TAttFill. More...
 
virtual Color_t GetFillColor () const
 Return the fill area color. More...
 
virtual Style_t GetFillStyle () const
 Return the fill area style. More...
 
virtual Bool_t IsTransparent () const
 
virtual void Modify ()
 Change current fill area attributes if necessary. More...
 
virtual void ResetAttFill (Option_t *option="")
 Reset this fill attributes to default values. More...
 
virtual void SaveFillAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
 Save fill attributes as C++ statement(s) on output stream out. More...
 
virtual void SetFillAttributes ()
 Invoke the DialogCanvas Fill attributes. More...
 
virtual void SetFillColor (Color_t fcolor)
 Set the fill area color. More...
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color. More...
 
virtual void SetFillStyle (Style_t fstyle)
 Set the fill area style. More...
 
- Public Member Functions inherited from TAttMarker
 TAttMarker ()
 TAttMarker default constructor. More...
 
 TAttMarker (Color_t color, Style_t style, Size_t msize)
 TAttMarker normal constructor. More...
 
virtual ~TAttMarker ()
 TAttMarker destructor. More...
 
void Copy (TAttMarker &attmarker) const
 Copy this marker attributes to a new TAttMarker. More...
 
virtual Color_t GetMarkerColor () const
 Return the marker color. More...
 
virtual Size_t GetMarkerSize () const
 Return the marker size. More...
 
virtual Style_t GetMarkerStyle () const
 Return the marker style. More...
 
virtual void Modify ()
 Change current marker attributes if necessary. More...
 
virtual void ResetAttMarker (Option_t *toption="")
 Reset this marker attributes to the default values. More...
 
virtual void SaveMarkerAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1)
 Save line attributes as C++ statement(s) on output stream out. More...
 
virtual void SetMarkerAttributes ()
 Invoke the DialogCanvas Marker attributes. More...
 
virtual void SetMarkerColor (Color_t mcolor=1)
 Set the marker color. More...
 
virtual void SetMarkerColorAlpha (Color_t mcolor, Float_t malpha)
 Set a transparent marker color. More...
 
virtual void SetMarkerSize (Size_t msize=1)
 Set the marker size. More...
 
virtual void SetMarkerStyle (Style_t mstyle=1)
 Set the marker style. More...
 

Static Public Member Functions

static void Test ()
 Test method for TSpline5. More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Member Functions

void BoundaryConditions (const char *opt, Int_t &beg, Int_t &end, const char *&cb1, const char *&ce1, const char *&cb2, const char *&ce2)
 Check the boundary conditions and the amount of extra double knots needed. More...
 
void BuildCoeff ()
 Algorithm 600, collected algorithms from acm. More...
 
void SetBoundaries (Double_t b1, Double_t e1, Double_t b2, Double_t e2, const char *cb1, const char *ce1, const char *cb2, const char *ce2)
 Set the boundary conditions at double/triple knots. More...
 
- Protected Member Functions inherited from TSpline
 TSpline (const TSpline &)
 Copy constructor. More...
 
virtual void BuildCoeff ()=0
 
TSplineoperator= (const TSpline &)
 Assignment operator. More...
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Protected Attributes

TSplinePoly5fPoly
 
- Protected Attributes inherited from TSpline
Double_t fDelta
 
TGraphfGraph
 
TH1FfHistogram
 
Bool_t fKstep
 
Int_t fNp
 
Int_t fNpx
 
Double_t fXmax
 
Double_t fXmin
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TAttLine
Color_t fLineColor
 Line color. More...
 
Style_t fLineStyle
 Line style. More...
 
Width_t fLineWidth
 Line width. More...
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 Fill area color. More...
 
Style_t fFillStyle
 Fill area style. More...
 
- Protected Attributes inherited from TAttMarker
Color_t fMarkerColor
 Marker color. More...
 
Size_t fMarkerSize
 Marker size. More...
 
Style_t fMarkerStyle
 Marker style. More...
 

Additional Inherited Members

- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) ,
  kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13)
}
 

#include <TSpline.h>

Inheritance diagram for TSpline5:
[legend]

Constructor & Destructor Documentation

◆ TSpline5() [1/8]

TSpline5::TSpline5 ( )
inline

Definition at line 260 of file TSpline.h.

◆ TSpline5() [2/8]

TSpline5::TSpline5 ( const char *  title,
Double_t  x[],
Double_t  y[],
Int_t  n,
const char *  opt = 0,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given an array of arbitrary knots in increasing abscissa order and possibly end point conditions.

Definition at line 1209 of file TSpline.cxx.

◆ TSpline5() [3/8]

TSpline5::TSpline5 ( const char *  title,
Double_t  xmin,
Double_t  xmax,
Double_t  y[],
Int_t  n,
const char *  opt = 0,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given an array of arbitrary function values on equidistant n abscissa values from xmin to xmax and possibly end point conditions.

Definition at line 1242 of file TSpline.cxx.

◆ TSpline5() [4/8]

TSpline5::TSpline5 ( const char *  title,
Double_t  x[],
const TF1 func,
Int_t  n,
const char *  opt = 0,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given an array of arbitrary abscissas in increasing order and a function to interpolate and possibly end point conditions.

Definition at line 1276 of file TSpline.cxx.

◆ TSpline5() [5/8]

TSpline5::TSpline5 ( const char *  title,
Double_t  xmin,
Double_t  xmax,
const TF1 func,
Int_t  n,
const char *  opt = 0,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given a function to be evaluated on n equidistant abscissa points between xmin and xmax and possibly end point conditions.

Definition at line 1309 of file TSpline.cxx.

◆ TSpline5() [6/8]

TSpline5::TSpline5 ( const char *  title,
const TGraph g,
const char *  opt = 0,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given a TGraph with abscissa in increasing order and possibly end point conditions.

Definition at line 1345 of file TSpline.cxx.

◆ TSpline5() [7/8]

TSpline5::TSpline5 ( const TH1 h,
const char *  opt = 0,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given a TH1.

Definition at line 1380 of file TSpline.cxx.

◆ TSpline5() [8/8]

TSpline5::TSpline5 ( const TSpline5 sp5)

Copy constructor.

Definition at line 1412 of file TSpline.cxx.

◆ ~TSpline5()

virtual TSpline5::~TSpline5 ( )
inlinevirtual

Definition at line 291 of file TSpline.h.

Member Function Documentation

◆ BoundaryConditions()

void TSpline5::BoundaryConditions ( const char *  opt,
Int_t beg,
Int_t end,
const char *&  cb1,
const char *&  ce1,
const char *&  cb2,
const char *&  ce2 
)
protected

Check the boundary conditions and the amount of extra double knots needed.

Definition at line 1442 of file TSpline.cxx.

◆ BuildCoeff()

void TSpline5::BuildCoeff ( void  )
protectedvirtual

Algorithm 600, collected algorithms from acm.

algorithm appeared in acm-trans. math. software, vol.9, no. 2, jun., 1983, p. 258-259.

TSpline5 computes the coefficients of a quintic natural quintic spli
s(x) with knots x(i) interpolating there to given function values:
s(x(i)) = y(i) for i = 1,2, ..., n.
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
const Int_t n
Definition: legend1.C:16
static constexpr double s

in each interval (x(i),x(i+1)) the spline function s(xx) is a polynomial of fifth degree:

s(xx) = ((((f(i)*p+e(i))*p+d(i))*p+c(i))*p+b(i))*p+y(i) (*)
= ((((-f(i)*q+e(i+1))*q-d(i+1))*q+c(i+1))*q-b(i+1))*q+y(i+1)
#define d(i)
Definition: RSha256.hxx:102
#define b(i)
Definition: RSha256.hxx:100
#define f(i)
Definition: RSha256.hxx:104
#define c(i)
Definition: RSha256.hxx:101
#define e(i)
Definition: RSha256.hxx:103
float * q
Definition: THbookFile.cxx:87

where p = xx - x(i) and q = x(i+1) - xx. (note the first subscript in the second expression.) the different polynomials are pieced together so that s(x) and its derivatives up to s"" are continuous.

input:

n          number of data points, (at least three, i.e. n > 2)
x(1:n)     the strictly increasing or decreasing sequence of
           knots.  the spacing must be such that the fifth power
           of x(i+1) - x(i) can be formed without overflow or
           underflow of exponents.
y(1:n)     the prescribed function values at the knots.

output:

b,c,d,e,f  the computed spline coefficients as in (*).
    (1:n)  specifically
           b(i) = s'(x(i)), c(i) = s"(x(i))/2, d(i) = s"'(x(i))/6,
           e(i) = s""(x(i))/24,  f(i) = s""'(x(i))/120.
           f(n) is neither used nor altered.  the five arrays
           b,c,d,e,f must always be distinct.

option:

it is possible to specify values for the first and second
derivatives of the spline function at arbitrarily many knots.
this is done by relaxing the requirement that the sequence of
knots be strictly increasing or decreasing.  specifically:
if x(j) = x(j+1) then s(x(j)) = y(j) and s'(x(j)) = y(j+1),
if x(j) = x(j+1) = x(j+2) then in addition s"(x(j)) = y(j+2).
note that s""(x) is discontinuous at a double knot and, in
addition, s"'(x) is discontinuous at a triple knot.  the
subroutine assigns y(i) to y(i+1) in these cases and also to
y(i+2) at a triple knot.  the representation (*) remains
valid in each open interval (x(i),x(i+1)).  at a double knot,
x(j) = x(j+1), the output coefficients have the following values:
y(j) = s(x(j)) = y(j+1)
b(j) = s'(x(j)) = b(j+1)
c(j) = s"(x(j))/2 = c(j+1)
d(j) = s"'(x(j))/6 = d(j+1)
e(j) = s""(x(j)-0)/24 e(j+1) = s""(x(j)+0)/24
f(j) = s""'(x(j)-0)/120 f(j+1) = s""'(x(j)+0)/120

at a triple knot, x(j) = x(j+1) = x(j+2), the output coefficients have the following values:

y(j) = s(x(j)) = y(j+1) = y(j+2)
b(j) = s'(x(j)) = b(j+1) = b(j+2)
c(j) = s"(x(j))/2 = c(j+1) = c(j+2)
d(j) = s"'((x(j)-0)/6 d(j+1) = 0 d(j+2) = s"'(x(j)+0)/6
e(j) = s""(x(j)-0)/24 e(j+1) = 0 e(j+2) = s""(x(j)+0)/24
f(j) = s""'(x(j)-0)/120 f(j+1) = 0 f(j+2) = s""'(x(j)+0)/120

Implements TSpline.

Definition at line 1900 of file TSpline.cxx.

◆ Derivative()

Double_t TSpline5::Derivative ( Double_t  x) const

Derivative.

Definition at line 1567 of file TSpline.cxx.

◆ Eval()

Double_t TSpline5::Eval ( Double_t  x) const
virtual

Eval this spline at x.

Implements TSpline.

Definition at line 1558 of file TSpline.cxx.

◆ FindX()

Int_t TSpline5::FindX ( Double_t  x) const

Find X.

Definition at line 1522 of file TSpline.cxx.

◆ GetCoeff()

void TSpline5::GetCoeff ( Int_t  i,
Double_t x,
Double_t y,
Double_t b,
Double_t c,
Double_t d,
Double_t e,
Double_t f 
)
inline

Definition at line 292 of file TSpline.h.

◆ GetKnot()

void TSpline5::GetKnot ( Int_t  i,
Double_t x,
Double_t y 
) const
inlinevirtual

Implements TSpline.

Definition at line 297 of file TSpline.h.

◆ operator=()

TSpline5 & TSpline5::operator= ( const TSpline5 sp5)

Assignment operator.

Definition at line 1425 of file TSpline.cxx.

◆ SaveAs()

void TSpline5::SaveAs ( const char *  filename,
Option_t option = "" 
) const
virtual

Write this spline as a C++ function that can be executed without ROOT the name of the function is the name of the file up to the "." if any.

Reimplemented from TSpline.

Definition at line 1577 of file TSpline.cxx.

◆ SavePrimitive()

void TSpline5::SavePrimitive ( std::ostream &  out,
Option_t option = "" 
)
virtual

Save primitive as a C++ statement(s) on output stream out.

Reimplemented from TObject.

Definition at line 1768 of file TSpline.cxx.

◆ SetBoundaries()

void TSpline5::SetBoundaries ( Double_t  b1,
Double_t  e1,
Double_t  b2,
Double_t  e2,
const char *  cb1,
const char *  ce1,
const char *  cb2,
const char *  ce2 
)
protected

Set the boundary conditions at double/triple knots.

Definition at line 1473 of file TSpline.cxx.

◆ SetPoint()

void TSpline5::SetPoint ( Int_t  i,
Double_t  x,
Double_t  y 
)
virtual

Set point number i.

Definition at line 1801 of file TSpline.cxx.

◆ SetPointCoeff()

void TSpline5::SetPointCoeff ( Int_t  i,
Double_t  b,
Double_t  c,
Double_t  d,
Double_t  e,
Double_t  f 
)
virtual

Set point coefficient number i.

Definition at line 1812 of file TSpline.cxx.

◆ Test()

void TSpline5::Test ( )
static

Test method for TSpline5.

n number of data points.
m 2*m-1 is order of spline.
m = 3 always for quintic spline.
nn,nm1,mm,
mm1,i,k,
j,jj temporary integer variables.
z,p temporary double precision variables.
x[n] the sequence of knots.
y[n] the prescribed function values at the knots.
a[200][6] two dimensional array whose columns are
the computed spline coefficients
diff[5] maximum values of differences of values and
derivatives to right and left of knots.
com[5] maximum values of coefficients.
point * points
Definition: X3DBuffer.c:22
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
Definition: RExports.h:151
static constexpr double mm
void variables(TString dataset, TString fin="TMVA.root", TString dirName="InputVariables_Id", TString title="TMVA Input Variables", Bool_t isRegression=kFALSE, Bool_t useTMVAStyle=kTRUE)
auto * m
Definition: textangle.C:8

test of TSpline5 with non equidistant knots and equidistant knots follows.

Definition at line 2078 of file TSpline.cxx.

Member Data Documentation

◆ fPoly

TSplinePoly5* TSpline5::fPoly
protected

Definition at line 250 of file TSpline.h.

Libraries for TSpline5:
[legend]

The documentation for this class was generated from the following files: